diff --git a/01-TestCase/tsg_bfapi/dashboard_data_compare_new_case/TrafficStatistics.robot b/01-TestCase/tsg_bfapi/dashboard_data_compare_new_case/TrafficStatistics.robot index ae5c0c2..3a7ecd2 100644 --- a/01-TestCase/tsg_bfapi/dashboard_data_compare_new_case/TrafficStatistics.robot +++ b/01-TestCase/tsg_bfapi/dashboard_data_compare_new_case/TrafficStatistics.robot @@ -4,6 +4,14 @@ Library Collections Resource ../../../03-Variable/BifangApiVariable.txt Resource ../../../02-Keyword/tsg_bfapi/dashboard_keywords/TrafficStatistics.robot Library GetTimeLibrary +Library REST +Resource ../../../02-Keyword/tsg_bfapi/dashboard_data_compare/PolicyActionHitStatistics.robot + + + + + + *** Test Cases *** @@ -14,7 +22,91 @@ Trafffics-001 #结束时间 ${endtime} time1 s Dashboard-Traffic-new ${startTime} ${endTime} lyf-trafffics-001 - + +NewLive-002 + #开始时间 + ${starttime} time1 5m + #结束时间 + ${endtime} time1 m + Dashboard-Traffic-new ${startTime} ${endTime} NewLive-002 + +SecurityEventActionHit-003 + # dashboard界面 安全策略默认动作命中计数 bifang和report对比 + #开始时间 + #结束时间格式Y-M-D h:i:s + ${Time} get current date + ${endTime}= add time to date ${Time} -00:05:00 + ${endTime} Get Substring ${endTime} \ -4 + ${startTime}= add time to date ${endTime}= -01:00:00 + ${startTime} Get Substring ${startTime} \ -4 + SecurityEventActionHit-new ${startTime} ${endTime} 300 5 SecurityEventActionHit-003 1 + +ClientIPTopN-new-004 + + #开始时间 + ${starttime} time1 5m + #结束时间 + ${endtime} time1 m + #dashboard 源IP统计 bifang和report对比 + ClientIPTopN-new ${starttime} ${endtime} sessions 10 ClientIPTopN-new-004 sessions + +ServiceIPTopN-new-005 + + #开始时间 + ${starttime} time1 5m + #结束时间 + ${endtime} time1 m + #dashboard 源IP统计 bifang和report对比 + ServiceIPTopN-new ${starttime} ${endtime} sessions 10 ServiceIPTopN-new-005 sessions + +SecurityEventpolicyidtopHit-new-006 + + #开始时间 + ${starttime} time1 5m + #结束时间 + ${endtime} time1 m + #dashboard 源IP统计 bifang和report对比 + SecurityEventpolicyidtopHit-new ${starttime} ${endtime} 10 SecurityEventpolicyidtopHit-006 +SubscriberIDTopN-new-007 + + #开始时间 + ${starttime} time1 5m + #结束时间 + ${endtime} time1 m + #dashboard 源IP统计 bifang和report对比 + SubscriberIDTopN-new ${starttime} ${endtime} sessions 10 SubscriberIDTopN-new-007 sessions + + +DomainsTopN-new-008 + + #开始时间 + ${starttime} time1 5m + #结束时间 + ${endtime} time1 m + #dashboard 源IP统计 bifang和report对比 + DomainsTopN-new ${starttime} ${endtime} sessions 10 DomainsTopN-new-008 sessions + +ProxyEventActionHit-009 + + #开始时间 + ${starttime} time1 5m + #结束时间 + ${endtime} time1 m + #dashboard 源IP统计 bifang和report对比 + ProxyEventActionHit-new ${starttime} ${endtime} 300 5 Proxy Event allow + +ProxyPolicytopHit-new-010 + + #开始时间 + ${starttime} time1 5m + #结束时间 + ${endtime} time1 m + #dashboard 源IP统计 bifang和report对比 + ProxyPolicytopHit-new ${starttime} ${endtime} 10 Proxy Event-2 + + + + diff --git a/02-Keyword/tsg_bfapi/dashboard_keywords/TrafficStatistics.robot b/02-Keyword/tsg_bfapi/dashboard_keywords/TrafficStatistics.robot index 0cec89b..07c67a5 100644 --- a/02-Keyword/tsg_bfapi/dashboard_keywords/TrafficStatistics.robot +++ b/02-Keyword/tsg_bfapi/dashboard_keywords/TrafficStatistics.robot @@ -5,12 +5,13 @@ Library OperatingSystem Resource ../../../03-Variable/BifangApiVariable.txt Resource ../Common.robot Resource ../offline_stat_report/ApiRequest1.robot - +Library DateTime Library Collections Library RequestsLibrary Library String Resource ../../../03-Variable/Bifangapivariable.txt -Resource ForTwoKeywords_new.robot + + *** Variables *** ${dataset_url} /${version}/report/dataset ${datasetId} ${EMPTY} @@ -22,6 +23,15 @@ ${result_url} /${version}/report/offlinejob/result ${resultId} ${EMPTY} *** Keywords *** +TrafficBFRequest + [Arguments] ${url} ${data} + ${header} Create Dictionary Content-Type=application/x-www-form-urlencoded Authorization=${token} + Create Session api http://${host}:${port}/${version} headers=${header} + ${bfRemoteResponse} Get Request api ${url}?${data} headers=${header} + ${bfResponse} to json ${bfRemoteResponse.content} + Should Be Equal As Strings ${bfRemoteResponse.status_code} 200 + Should Be Equal As Strings ${bfResponse['code']} 200 + [Return] ${bfResponse} Time-granularity [Arguments] ${starttime} ${endtime} ${1} ${4} str2sec ${starttime} @@ -44,7 +54,7 @@ Dashboard-Traffic-new [Arguments] ${starttime} ${endtime} ${name} ${data} Set Variable startTime=${startTime}&endTime=${endTime} ${url1} Set Variable report/traffic/statisticsbyunit - ${bfResponse} ForTwoKeywords_new.Traffic BF Request ${url1} ${data} + ${bfResponse} TrafficStatistics.trafficBFRequest ${url1} ${data} ${trafficpackets} Set Variable ${bfResponse['data']['trafficTotalPackets']} ${trafficbytes} Set Variable ${bfResponse['data']['trafficTotalBytes']} ${trafficsession} Set Variable ${bfResponse['data']['sessions']} @@ -99,10 +109,10 @@ SessionStatistics-NewLive-new ... 参数:starttime(必传,开始时间紧) ... endtime(必传,结束时间 ... 返回:对比结果 - [Arguments] ${starttime} ${endtime} + [Arguments] ${starttime} ${endtime} ${name} ${data} Set Variable startTime=${startTime}&endTime=${endTime} ${url1} Set Variable report/traffic/sessions/statisticsbytype - ${bfResponse} trafficBFRequest ${url1} ${data} + ${bfResponse} TrafficStatistics.trafficBFRequest ${url1} ${data} ${newCount} Set Variable ${bfResponse['data']['newCount']} ${liveCount} Set Variable ${bfResponse['data']['liveCount']} #新建DataSet @@ -139,146 +149,643 @@ SessionStatistics-NewLive-new ${endTime1} Set Variable ${response1}[data][list][0][endTime] ${response2} BaseGetRequestOK /v1/report/offlinejob/result/traffic startTime=${startTime1}&endTime=${endTime1} ${sessions} Set Variable ${response2}[data][list][0][total_new_sessions] - ${bytes} Set Variable ${response2}[data][list][0][average_bytes_per_second] - ${packets} Set Variable ${response2}[data][list][0][average_packets_per_second] - log ${sessions} + ${number} evaluate (int(${sessions})-int(${newCount}))/int(${sessions}) + Should Be True ${number}<=${contrast} [Return] OK - -Dashboard-Traffic-packets - # Traffics-带宽统计 统计类型:packets bifang和bigData对比 Traffic IN/OUT +SecurityEventActionHit-new + # dashboard界面 安全策略各动作命中计数 bytes packets sessions bifang和report对比 [Documentation] - ... 描述:Traffic-packets统计 + ... 描述:Security-Action-packets ... 参数:starttime(必传,开始时间紧) - ... endtime(必传,结束时间 - ... 返回:对比结果 - [Arguments] ${starttime} ${endtime} - ${data} Set Variable startTime=${startTime}&endTime=${endTime}&statisticsUnit=packets - ${url1} Set Variable report/traffic/statisticsbyunit - ${bfResponse} TrafficBFRequest ${url1} ${data} - ${trafficInPackets} Set Variable ${bfResponse['data']['trafficInPackets']} - ${trafficOutPackets} Set Variable ${bfResponse['data']['trafficOutPackets']} - Create Session bdapi http://${bigDataIP}:${bigDataPort} - ${sql} Set Variable select sum(total_in_packets) as traffic_in_packets, sum(total_out_packets) as traffic_out_packets from traffic_metrics_log where __time >= '${startTime}' and __time < '${endTime}' - ${remoteResponse} Get Request bdapi ?query=${sql} - ${response} to json ${remoteResponse.content} - Should Be Equal As Strings ${remoteResponse.status_code} 200 - Should Be Equal As Strings ${response['status']} 200 - ${traffic_in_packets1} Set Variable ${response['data'][0]['traffic_in_packets']} - ${traffic_out_packets1} Set Variable ${response['data'][0]['traffic_out_packets']} - Should Be True ${trafficInPackets}==${traffic_in_packets1} - Should Be True ${trafficOutPackets}==${traffic_out_packets1} + ... timeGranularity(必传,时间粒度 ) + ... limit(必传,限制条数) + ... endtime(必传,结束时间) + ... logType(必填,日志类型。) + ... name 名字 + ... action 动作,0为none,128为allow,16为deny,2为intercept,1为monitor + [Arguments] ${starttime} ${endtime} ${timeGranularity} ${limit} ${name} ${action} + ${logType} Set Variable security_event_hits_log + ${data} Set Variable startTime=${startTime}&endTime=${endTime}&logType=${logType}&timeGranularity=${timeGranularity}&limit=${limit} + ${url1} Set Variable report/policyevent/hit/action + ${bfResponse} TrafficStatistics.trafficBFRequest ${url1} ${data} + ${actionCountList} Set Variable ${bfResponse['data']['actionCount']} + #新建DataSet + #${name} Set Variable Report_Result-001 + BasePostRequestOK ${dataset_url} {"list":{"name":"${name}","logType":"security_event_log","filterConnector":"and","havingConnector":"and","groupColumnList":[{"name":"common_action"}],"queryColumnList":[{"name":"common_action","expression":"","label":"Action"},{"name":"common_c2s_pkt_num,common_s2c_pkt_num","expression":"sum","label":"Packets Sent+Packets Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_byte_num,common_s2c_byte_num","expression":"sum","label":"Bytes Sent+Bytes Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_log_id","expression":"count","label":"sessions","expressionList":[]}],"filterConditionList":[{"name":"common_action","expression":"=","expressionList":["=","!=",">","<",">=","<="],"value":[${action}],"type":"int"}],"havingConditionList":[]}} + ${response} BaseGetRequestOK ${dataset_url} pageSize=20&pageNo=1&id=&name=${name}&logType=&opStartTime=&opEndTime=&opUser= + ${datasetId} Set Variable ${response}[data][list][0][id] + #根据DataSet的id,新建Chart,Lien图形表 + BasePostRequestOK ${chart_url} {"list":{"id":null,"name":"${name}","description":"","datasetId":${datasetId},"chartType":"table","dataTop":10,"orderBy":"","orderDesc":"","drilldownTop":null,"includeOther":false,"tableType":"Regular","columns":[{"title":"Action","width":20,"dataBindings":[{"dataType":"","dataBinding":"Action","format":"Default","legend":"","name":"common_action"}]},{"title":"Packets Sent+Packets Received","width":20,"dataBindings":[{"dataType":"","dataBinding":"Packets Sent+Packets Received","format":"Default","legend":"","name":"common_c2s_pkt_num,common_s2c_pkt_num"}]},{"title":"Bytes Sent+Bytes Received","width":20,"dataBindings":[{"dataType":"","dataBinding":"Bytes Sent+Bytes Received","format":"Default","legend":"","name":"common_c2s_byte_num,common_s2c_byte_num"}]},{"title":"sessions","width":20,"dataBindings":[{"dataType":"","dataBinding":"sessions","format":"Default","legend":"","name":"common_log_id"}]}]}} + #根据name查询出该Chart的id + ${response1} BaseGetRequestOK ${chart_url} pageSize=20&pageNo=1&id=&name=${name}&opUser= + ${chartId} Set Variable ${response1}[data][list][0][id] + #新建Report,时间计划为Today,图表引用Line。 + BasePostRequestOK ${report_url} {"reportJobList":{"rangeType":"customize","rangeInterval":"","rangeUnit":"","jobName":"${name}","scheduleId":"","chartList":[{"chartId":${chartId},"timeGranulartiy":1,"timeUnit":"","disabled":true}],"isNotice":0,"noticeMethod":"","receivers":[""],"receiver":"","startTime":"${starttime}","endTime":"${endtime}","filterConnector":"and","filterCondition":[]}} + #查询Report的id + ${response1} BaseGetRequestOK ${report_url} pageSize=20&pageNo=1&jobIds=&jobName=${name}&opStartTime=&opEndTime=&opUser=&scheduleId= + ${reportId} Set Variable ${response1}[data][list][0][jobId] + #查询Report结果的状态,并判断状态结果,如果状态是执行成功,查看report结果内容 + FOR ${i} IN RANGE 50 + sleep 10 + #report执行状态查询 + ${response1} BaseGetRequestOK ${result_url} jobId=${reportId} + ${status} Set Variable ${response1}[data][list][0][status] + ${resultId} Set Variable ${response1}[data][list][0][resultId] + run keyword if "${status}"=="0" log non-execution + ... ELSE IF "${status}"=="1" log executing + ... ELSE IF "${status}"=="2" Exit For Loop + ... ELSE log Exec failure + END + #Report报表详情查询 + ${response1} BaseGetRequestOK ${result_url} jobId=${reportId} + #判断resultRows字段 + ${resultRows} Set Variable ${response1}[data][list][0][resultRows] + ${responselist} run keyword if '${resultRows}'=='0' SecurityEventActionHit-if ELSE SecurityEventActionHit-else ${reportId} ${resultId} + ${responselist1} run keyword if '${action}'=='0' action-0 ${actionCountList} + ... ELSE IF '${action}'=='128' action-128 ${actionCountList} + ... ELSE IF '${action}'=='16' action-16 ${actionCountList} + ... ELSE IF '${action}'=='1' action-1 ${actionCountList} + ... ELSE IF '${action}'=='2' action-2 ${actionCountList} + ${number} run keyword if '${responselist1}[0]'=='0' SecurityEventActionHit-if-1 ELSE evaluate int(${responselist}[0])/int(${responselist1}[0])-1 + ${number1} run keyword if '${responselist1}[1]'=='0' SecurityEventActionHit-if-1 ELSE evaluate int(${responselist}[1])/int(${responselist1}[1])-1 + ${number2} run keyword if '${responselist1}[2]'=='0' SecurityEventActionHit-if-1 ELSE evaluate int(${responselist}[1])/int(${responselist1}[2])-1 + Should Be True ${number}<=${contrast} + Should Be True ${number1}<=${contrast} + Should Be True ${number2}<=${contrast} [Return] OK +SecurityEventActionHit-if + ${responselist} create list 0 0 0 + [Return] ${responselist} -Dashboard-Traffic-sessions - # Traffics-带宽统计 统计类型:sessions bifang和bigData对比 Traffic IN/OUT +SecurityEventActionHit-if-1 + ${number} Set Variable 0 + [Return] ${number} + +SecurityEventActionHit-else + [Arguments] ${reportId} ${resultId} + ${response1} BaseGetRequestOK /v1/report/offlinejob/result/detail jobId=${reportId}&resultId=${resultId} + ${packets} Set Variable ${response1}[data][list][0][tableData][columns][1][dataBindings][0][data][0] + ${bytes} Set Variable ${response1}[data][list][0][tableData][columns][2][dataBindings][0][data][0] + ${sessions} Set Variable ${response1}[data][list][0][tableData][columns][3][dataBindings][0][data][0] + ${responselist} create list ${bytes} ${packets} ${sessions} + [Return] ${responselist} + +action-0 + [Arguments] ${actionCountList} + ${packets} Set Variable ${actionCountList}[0][packets] + ${bytes} Set Variable ${actionCountList}[0][bytes] + ${sessions} Set Variable ${actionCountList}[0][sessions] + ${responselist1} create list ${bytes} ${packets} ${sessions} + [Return] ${responselist1} + +action-128 + [Arguments] ${actionCountList} + ${packets} Set Variable ${actionCountList}[1][packets] + ${bytes} Set Variable ${actionCountList}[1][bytes] + ${sessions} Set Variable ${actionCountList}[1][sessions] + ${responselist1} create list ${bytes} ${packets} ${sessions} + [Return] ${responselist1} + + +action-16 + [Arguments] ${actionCountList} + ${packets} Set Variable ${actionCountList}[2][packets] + ${bytes} Set Variable ${actionCountList}[2][bytes] + ${sessions} Set Variable ${actionCountList}[2][sessions] + ${responselist1} create list ${bytes} ${packets} ${sessions} + [Return] ${responselist1} + +action-1 + [Arguments] ${actionCountList} + ${packets} Set Variable ${actionCountList}[3][packets] + ${bytes} Set Variable ${actionCountList}[3][bytes] + ${sessions} Set Variable ${actionCountList}[3][sessions] + ${responselist1} create list ${bytes} ${packets} ${sessions} + [Return] ${responselist1} + +action-2 + [Arguments] ${actionCountList} + ${packets} Set Variable ${actionCountList}[4][packets] + ${bytes} Set Variable ${actionCountList}[4][bytes] + ${sessions} Set Variable ${actionCountList}[4][sessions] + ${responselist1} create list ${bytes} ${packets} ${sessions} + [Return] ${responselist1} + +ClientIPTopN-new + #dashboard 源IP统计 bifang和bigData对比 + [Documentation] + ... 描述:ProxyPinning + ... 参数:starttime(必传,开始时间) + ... orderBy(必传,排序 sessions、bytes、packets 从这三个中选择) + ... limit(必传,限制条数) + ... endtime(必传,结束时间) + [Arguments] ${starttime} ${endtime} ${orderBy} ${limit} ${name} ${char-orderby} + ${data} Set Variable startTime=${startTime}&endTime=${endTime}&orderBy=${orderBy}&limit=${limit} + ${url1} Set Variable report/traffic/topn/clientip + ${bfResponse} TrafficStatistics.TrafficBFRequest ${url1} ${data} + @{List1} Set Variable ${bfResponse['data']['list']} + #新建DataSet + #${name} Set Variable Report_Result-001 + BasePostRequestOK ${dataset_url} {"list":{"name":"${name}","logType":"connection_record_log","filterConnector":"and","havingConnector":"and","groupColumnList":[{"name":"common_client_ip"}],"queryColumnList":[{"name":"common_client_ip","expression":"","label":"Client IP"},{"name":"common_log_id","expression":"count","label":"sessions","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_byte_num","expression":"sum","label":"Bytes Sent","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_s2c_byte_num","expression":"sum","label":"Bytes Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_byte_num,common_s2c_byte_num","expression":"sum","label":"Bytes Sent+Bytes Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_pkt_num","expression":"sum","label":"Packets Sent","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_s2c_pkt_num","expression":"sum","label":"Packets Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_pkt_num,common_s2c_pkt_num","expression":"sum","label":"Packets Sent+Packets Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]}],"filterConditionList":[],"havingConditionList":[]}} + ${response} BaseGetRequestOK ${dataset_url} pageSize=20&pageNo=1&id=&name=${name}&logType=&opStartTime=&opEndTime=&opUser= + ${datasetId} Set Variable ${response}[data][list][0][id] + #根据DataSet的id,新建Chart,Lien图形表 + BasePostRequestOK ${chart_url} {"list":{"id":null,"name":"${name}","description":"","datasetId":${datasetId},"chartType":"table","dataTop":${limit},"orderBy":"${char-orderby}","orderDesc":0,"drilldownTop":null,"includeOther":false,"tableType":"Regular","columns":[{"title":"Client IP","width":10,"dataBindings":[{"dataType":"","dataBinding":"Client IP","format":"Default","legend":"","name":"common_client_ip"}]},{"title":"sessions","width":10,"dataBindings":[{"dataType":"","dataBinding":"sessions","format":"Default","legend":"","name":"common_log_id"}]},{"title":"Bytes Sent","width":10,"dataBindings":[{"dataType":"","dataBinding":"Bytes Sent","format":"Default","legend":"","name":"common_c2s_byte_num"}]},{"title":"Bytes Received","width":10,"dataBindings":[{"dataType":"","dataBinding":"Bytes Received","format":"Default","legend":"","name":"common_s2c_byte_num"}]},{"title":"Bytes Sent+Bytes Received","width":10,"dataBindings":[{"dataType":"","dataBinding":"Bytes Sent+Bytes Received","format":"Default","legend":"","name":"common_c2s_byte_num,common_s2c_byte_num"}]},{"title":"Packets Sent","width":10,"dataBindings":[{"dataType":"","dataBinding":"Packets Sent","format":"Default","legend":"","name":"common_c2s_pkt_num"}]},{"title":"Packets Received","width":10,"dataBindings":[{"dataType":"","dataBinding":"Packets Received","format":"Default","legend":"","name":"common_s2c_pkt_num"}]},{"title":"Packets Sent+Packets Received","width":10,"dataBindings":[{"dataType":"","dataBinding":"Packets Sent+Packets Received","format":"Default","legend":"","name":"common_c2s_pkt_num,common_s2c_pkt_num"}]}]}} + #根据name查询出该Chart的id + ${response1} BaseGetRequestOK ${chart_url} pageSize=20&pageNo=1&id=&name=${name}&opUser= + ${chartId} Set Variable ${response1}[data][list][0][id] + #新建Report,时间计划为Today,图表引用Line。 + BasePostRequestOK ${report_url} {"reportJobList":{"rangeType":"customize","rangeInterval":"","rangeUnit":"","jobName":"${name}","scheduleId":"","chartList":[{"chartId":${chartId},"timeGranulartiy":1,"timeUnit":"","disabled":true}],"isNotice":0,"noticeMethod":"","receivers":[""],"receiver":"","startTime":"${starttime}","endTime":"${endtime}","filterConnector":"and","filterCondition":[]}} + #查询Report的id + ${response1} BaseGetRequestOK ${report_url} pageSize=20&pageNo=1&jobIds=&jobName=${name}&opStartTime=&opEndTime=&opUser=&scheduleId= + ${reportId} Set Variable ${response1}[data][list][0][jobId] + #查询Report结果的状态,并判断状态结果,如果状态是执行成功,查看report结果内容 + FOR ${i} IN RANGE 50 + sleep 10 + #report执行状态查询 + ${response1} BaseGetRequestOK ${result_url} jobId=${reportId} + ${status} Set Variable ${response1}[data][list][0][status] + ${resultId} Set Variable ${response1}[data][list][0][resultId] + run keyword if "${status}"=="0" log non-execution + ... ELSE IF "${status}"=="1" log executing + ... ELSE IF "${status}"=="2" Exit For Loop + ... ELSE log Exec failure + END + #Report报表详情查询 + ${response1} BaseGetRequestOK ${result_url} jobId=${reportId} + #判断resultRows字段 + ${resultRows} Set Variable ${response1}[data][list][0][resultRows] + ${responselist} run keyword if '${resultRows}'=='0' ClientIPTopN-new-if ELSE ClientIPTopN-new-else ${reportId} ${resultId} + ${list2} create list + ${list3} create list + ${list4} create list + ${list5} create list + ${list6} create list + ${list7} create list + ${list8} create list + ${list9} create list + FOR ${j} IN @{List1} + ClientIPTopN-new-for ${j} ${list2} ${list3} ${list4} ${list5} ${list6} ${list7} ${list8} ${list9} + END + ${responselist1} create list ${list2} ${list3} ${list4} ${list5} ${list6} ${list7} ${list8} ${list9} + ${retourn} intersection ${responselist} ${responselist1} + Should Be True "${retourn}"=="ture" +ClientIPTopN-new-if + ${responselist} create list 0 0 0 0 0 0 0 0 + [Return] ${responselist} + +ClientIPTopN-new-else + [Arguments] ${reportId} ${resultId} + ${response1} BaseGetRequestOK /v1/report/offlinejob/result/detail jobId=${reportId}&resultId=${resultId} + ${Client IP} Set Variable ${response1}[data][list][0][tableData][columns][0][dataBindings][0][data] + ${sessions} Set Variable ${response1}[data][list][0][tableData][columns][1][dataBindings][0][data] + ${Bytes Sent} Set Variable ${response1}[data][list][0][tableData][columns][2][dataBindings][0][data] + ${Bytes Received} Set Variable ${response1}[data][list][0][tableData][columns][3][dataBindings][0][data] + ${Bytes Sent+Bytes Received} Set Variable ${response1}[data][list][0][tableData][columns][4][dataBindings][0][data] + ${Packets Sent} Set Variable ${response1}[data][list][0][tableData][columns][5][dataBindings][0][data] + ${Packets Received} Set Variable ${response1}[data][list][0][tableData][columns][6][dataBindings][0][data] + ${Packets Sent+Packets Received} Set Variable ${response1}[data][list][0][tableData][columns][7][dataBindings][0][data] + ${responselist} create list ${Client IP} ${sessions} ${Bytes Sent} ${Bytes Received} ${Bytes Sent+Bytes Received} ${Packets Sent} ${Packets Received} ${Packets Sent+Packets Received} + [Return] ${responselist} + +ClientIPTopN-new-for + [Arguments] ${j} ${listclientIp} ${listsessions} ${listsentBytes} ${listreceivedBytes} ${listtotalBytes} ${listsentPackets} ${listreceivedPackets} ${listtotalPackets} + FOR ${v} ${k} IN ENUMERATE @{j} + run keyword if '${k}'=='clientIp' or '${k}'=='serverIp' or '${k}'=='subscriberid' or '${k}'=='domain' append to list ${listclientIp} ${j}[${k}] + ${str1} run keyword if '${k}'=='sessions' evaluate str(${j}[${k}]) + run keyword if ${str1}!=None append to list ${listsessions} ${str1} + ${str2} run keyword if '${k}'=='sentBytes' evaluate str(${j}[${k}]) + run keyword if ${str2}!=None append to list ${listsentBytes} ${str2} + ${str3} run keyword if '${k}'=='receivedBytes' evaluate str(${j}[${k}]) + run keyword if ${str3}!=None append to list ${listreceivedBytes} ${str3} + ${str4} run keyword if '${k}'=='totalBytes' evaluate str(${j}[${k}]) + run keyword if ${str4}!=None append to list ${listtotalBytes} ${str4} + ${str5} run keyword if '${k}'=='sentPackets' evaluate str(${j}[${k}]) + run keyword if ${str5}!=None append to list ${listsentPackets} ${str5} + ${str6} run keyword if '${k}'=='receivedPackets' evaluate str(${j}[${k}]) + run keyword if ${str6}!=None append to list ${listreceivedPackets} ${str6} + ${str7} run keyword if '${k}'=='totalPackets' evaluate str(${j}[${k}]) + run keyword if ${str7}!=None append to list ${listtotalPackets} ${str7} + END + +ServiceIPTopN-new + #dashboard 目的IP统计 bifang和bigData对比 [Documentation] - ... 描述:Traffic-sessions统计 + ... 描述:ProxyPinning ... 参数:starttime(必传,开始时间紧) + ... orderBy(必传,排序 sessions、bytes、packets 从这三个中选择) + ... limit(必传,限制条数) ... endtime(必传,结束时间 - ... 返回:对比结果 - [Arguments] ${starttime} ${endtime} - - ${data} Set Variable startTime=${startTime}&endTime=${endTime}&statisticsUnit=sessions - ${url1} Set Variable report/traffic/statisticsbyunit - ${bfResponse} trafficBFRequest ${url1} ${data} - ${sessions} Set Variable ${bfResponse['data']['sessions']} - Create Session bdapi http://${bigDataIP}:${bigDataPort} - ${sql} Set Variable select sum(new_conn_num) as sessions from traffic_metrics_log where __time >= '${startTime}' and __time < '${endTime}' - ${remoteResponse} Get Request bdapi ?query=${sql} - ${response} to json ${remoteResponse.content} - Should Be Equal As Strings ${remoteResponse.status_code} 200 - Should Be Equal As Strings ${response['status']} 200 - ${sessions1} Set Variable ${response['data'][0]['sessions']} - Should Be True ${sessions}==${sessions1} - [Return] OK + [Arguments] ${starttime} ${endtime} ${orderBy} ${limit} ${name} ${char-orderby} + ${data} Set Variable startTime=${startTime}&endTime=${endTime}&orderBy=${orderBy}&limit=${limit} + ${url1} Set Variable report/traffic/topn/serverip + ${bfResponse} TrafficStatistics.trafficBFRequest ${url1} ${data} + @{List1} Set Variable ${bfResponse['data']['list']} + #新建DataSet + #${name} Set Variable Report_Result-001 + BasePostRequestOK ${dataset_url} {"list":{"name":"${name}","logType":"connection_record_log","filterConnector":"and","havingConnector":"and","groupColumnList":[{"name":"common_server_ip"}],"queryColumnList":[{"name":"common_server_ip","expression":"","label":"Server IP"},{"name":"common_log_id","expression":"count","label":"sessions","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_byte_num","expression":"sum","label":"Bytes Sent","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_s2c_byte_num","expression":"sum","label":"Bytes Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_byte_num,common_s2c_byte_num","expression":"sum","label":"Bytes Sent+Bytes Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_pkt_num","expression":"sum","label":"Packets Sent","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_s2c_pkt_num","expression":"sum","label":"Packets Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_pkt_num,common_s2c_pkt_num","expression":"sum","label":"Packets Sent+Packets Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]}],"filterConditionList":[],"havingConditionList":[]}} + ${response} BaseGetRequestOK ${dataset_url} pageSize=20&pageNo=1&id=&name=${name}&logType=&opStartTime=&opEndTime=&opUser= + ${datasetId} Set Variable ${response}[data][list][0][id] + #根据DataSet的id,新建Chart,Lien图形表 + BasePostRequestOK ${chart_url} {"list":{"id":null,"name":"${name}","description":"","datasetId":${datasetId},"chartType":"table","dataTop":${limit},"orderBy":"${char-orderby}","orderDesc":0,"drilldownTop":null,"includeOther":false,"tableType":"Regular","columns":[{"title":"Server IP","width":10,"dataBindings":[{"dataType":"","dataBinding":"Server IP","format":"Default","legend":"","name":"common_server_ip"}]},{"title":"sessions","width":10,"dataBindings":[{"dataType":"","dataBinding":"sessions","format":"Default","legend":"","name":"common_log_id"}]},{"title":"Bytes Sent","width":10,"dataBindings":[{"dataType":"","dataBinding":"Bytes Sent","format":"Default","legend":"","name":"common_c2s_byte_num"}]},{"title":"Bytes Received","width":10,"dataBindings":[{"dataType":"","dataBinding":"Bytes Received","format":"Default","legend":"","name":"common_s2c_byte_num"}]},{"title":"Bytes Sent+Bytes Received","width":10,"dataBindings":[{"dataType":"","dataBinding":"Bytes Sent+Bytes Received","format":"Default","legend":"","name":"common_c2s_byte_num,common_s2c_byte_num"}]},{"title":"Packets Sent","width":10,"dataBindings":[{"dataType":"","dataBinding":"Packets Sent","format":"Default","legend":"","name":"common_c2s_pkt_num"}]},{"title":"Packets Received","width":10,"dataBindings":[{"dataType":"","dataBinding":"Packets Received","format":"Default","legend":"","name":"common_s2c_pkt_num"}]},{"title":"Packets Sent+Packets Received","width":10,"dataBindings":[{"dataType":"","dataBinding":"Packets Sent+Packets Received","format":"Default","legend":"","name":"common_c2s_pkt_num,common_s2c_pkt_num"}]}]}} + #根据name查询出该Chart的id + ${response1} BaseGetRequestOK ${chart_url} pageSize=20&pageNo=1&id=&name=${name}&opUser= + ${chartId} Set Variable ${response1}[data][list][0][id] + #新建Report,时间计划为Today,图表引用Line。 + BasePostRequestOK ${report_url} {"reportJobList":{"rangeType":"customize","rangeInterval":"","rangeUnit":"","jobName":"${name}","scheduleId":"","chartList":[{"chartId":${chartId},"timeGranulartiy":1,"timeUnit":"","disabled":true}],"isNotice":0,"noticeMethod":"","receivers":[""],"receiver":"","startTime":"${starttime}","endTime":"${endtime}","filterConnector":"and","filterCondition":[]}} + #查询Report的id + ${response1} BaseGetRequestOK ${report_url} pageSize=20&pageNo=1&jobIds=&jobName=${name}&opStartTime=&opEndTime=&opUser=&scheduleId= + ${reportId} Set Variable ${response1}[data][list][0][jobId] + #查询Report结果的状态,并判断状态结果,如果状态是执行成功,查看report结果内容 + FOR ${i} IN RANGE 50 + sleep 10 + #report执行状态查询 + ${response1} BaseGetRequestOK ${result_url} jobId=${reportId} + ${status} Set Variable ${response1}[data][list][0][status] + ${resultId} Set Variable ${response1}[data][list][0][resultId] + run keyword if "${status}"=="0" log non-execution + ... ELSE IF "${status}"=="1" log executing + ... ELSE IF "${status}"=="2" Exit For Loop + ... ELSE log Exec failure + END + #Report报表详情查询 + ${response1} BaseGetRequestOK ${result_url} jobId=${reportId} + #判断resultRows字段 + ${resultRows} Set Variable ${response1}[data][list][0][resultRows] + ${responselist} run keyword if '${resultRows}'=='0' ClientIPTopN-new-if ELSE ClientIPTopN-new-else ${reportId} ${resultId} + ${list2} create list + ${list3} create list + ${list4} create list + ${list5} create list + ${list6} create list + ${list7} create list + ${list8} create list + ${list9} create list + FOR ${j} IN @{List1} + ClientIPTopN-new-for ${j} ${list2} ${list3} ${list4} ${list5} ${list6} ${list7} ${list8} ${list9} + END + ${responselist1} create list ${list2} ${list3} ${list4} ${list5} ${list6} ${list7} ${list8} ${list9} + ${retourn} intersection ${responselist} ${responselist1} + Should Be True "${retourn}"=="ture" -Dashboard-Traffic-trend-bytes - # Traffics-带宽趋势 统计类型:bytes bifang和bigData对比 Traffic IN/OUT +SecurityEventpolicyidtopHit-new + # dashboard界面 安全策略各动作命中计数 bifang和report对比 [Documentation] - ... 描述:Traffic-trend-bytes + ... 描述:Security-Action-packets ... 参数:starttime(必传,开始时间紧) - ... endtime(必传,结束时间 - ... timeGranularity(非必传,时间粒度 ) - ... limit(非必传,限制条数) - ... 返回:对比结果 - [Arguments] ${starttime} ${endtime} ${timeGranularity} ${limit} - - ${data} Set Variable startTime=${startTime}&endTime=${endTime}&statisticsUnit=bytes&timeGranularity=${timeGranularity}&limit=${limit} - ${url1} Set Variable report/traffic/statisticsbyunit - ${bfResponse} trafficBFRequest ${url1} ${data} - @{bytesOutList1} Set Variable ${bfResponse['data']['trafficOutBytesList']} - @{bytesInList1} Set Variable ${bfResponse['data']['trafficInBytesList']} - Create Session bdapi http://${bigDataIP}:${bigDataPort} - ${sql} Set Variable (select DATE_FORMAT(FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(__time)/${timeGranularity})*${timeGranularity}),'%Y-%m-%d %H:%i:%s') as stat_time, 'traffic_in_bytes' as type, sum(total_in_bytes) as bytes from traffic_metrics_log where \ __time >= '${startTime}' \ and __time < '${endTime}' \ group by DATE_FORMAT(FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(__time)/${timeGranularity})*${timeGranularity}),'%Y-%m-%d %H:%i:%s') limit ${limit}) union all (select DATE_FORMAT(FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(__time)/${timeGranularity})*${timeGranularity}),'%Y-%m-%d %H:%i:%s') as stat_time, 'traffic_out_bytes' as type, sum(total_out_bytes) as bytes from traffic_metrics_log where \ __time >= '${startTime}' and __time < '${endTime}' group by DATE_FORMAT(FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(__time)/${timeGranularity})*${timeGranularity}),'%Y-%m-%d %H:%i:%s') limit ${limit}) - ${remoteResponse} Get Request bdapi ?query=${sql} - ${response} to json ${remoteResponse.content} - Should Be Equal As Strings ${remoteResponse.status_code} 200 - Should Be Equal As Strings ${response['status']} 200 - @{bytesList2} Set Variable ${response['data']} - ${typeIn} Set Variable traffic_in_bytes - ${typeOut} Set Variable traffic_out_bytes - ${types} Set Variable bytes - Run Keyword If ${bytesOutList1}!=[] and ${bytesList2}!=[] ForToTrafficTrend ${bytesOutList1} ${typeOut} ${types} ${bytesList2} - Run Keyword If ${bytesInList1}!=[] and ${bytesList2}!=[] ForToTrafficTrend ${bytesInList1} ${typeIn} ${types} ${bytesList2} - -Dashboard-Traffic-trend-packets - # Traffics-带宽趋势 统计类型:packets bifang和bigData对比 Traffic IN/OUT + ... limit(必传,限制条数) + ... endtime(必传,结束时间) + ... logType(必填,日志类型。) + [Arguments] ${starttime} ${endtime} ${limit} ${name} + ${logType} Set Variable security_event_hits_log + ${data} Set Variable startTime=${startTime}&endTime=${endTime}&logType=${logType}&limit=${limit} + ${url1} Set Variable report/policyevent/hit/topn + ${bfResponse} TrafficStatistics.trafficBFRequest ${url1} ${data} + @{List1} Set Variable ${bfResponse['data']['list']} + #新建DataSet + #${name} Set Variable Report_Result-001 + BasePostRequestOK ${dataset_url} {"list":{"name":"${name}","logType":"security_event_log","filterConnector":"and","havingConnector":"and","groupColumnList":[{"name":"common_policy_id"}],"queryColumnList":[{"name":"common_policy_id","expression":"","label":"Policy ID"},{"name":"common_log_id","expression":"count","label":"sessions","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]}],"filterConditionList":[],"havingConditionList":[]}} + ${response} BaseGetRequestOK ${dataset_url} pageSize=20&pageNo=1&id=&name=${name}&logType=&opStartTime=&opEndTime=&opUser= + ${datasetId} Set Variable ${response}[data][list][0][id] + #根据DataSet的id,新建Chart,Lien图形表 + BasePostRequestOK ${chart_url} {"list":{"id":null,"name":"${name}","description":"","datasetId":${datasetId},"chartType":"table","dataTop":${limit},"orderBy":"sessions","orderDesc":0,"drilldownTop":null,"includeOther":false,"tableType":"Regular","columns":[{"title":"Policy ID","width":20,"dataBindings":[{"dataType":"","dataBinding":"Policy ID","format":"Default","legend":"","name":"common_policy_id"}]},{"title":"sessions","width":20,"dataBindings":[{"dataType":"","dataBinding":"sessions","format":"Default","legend":"","name":"common_log_id"}]}]}} + #根据name查询出该Chart的id + ${response1} BaseGetRequestOK ${chart_url} pageSize=20&pageNo=1&id=&name=${name}&opUser= + ${chartId} Set Variable ${response1}[data][list][0][id] + #新建Report,时间计划为Today,图表引用Line。 + BasePostRequestOK ${report_url} {"reportJobList":{"rangeType":"customize","rangeInterval":"","rangeUnit":"","jobName":"${name}","scheduleId":"","chartList":[{"chartId":${chartId},"timeGranulartiy":1,"timeUnit":"","disabled":true}],"isNotice":0,"noticeMethod":"","receivers":[""],"receiver":"","startTime":"${starttime}","endTime":"${endtime}","filterConnector":"and","filterCondition":[]}} + #查询Report的id + ${response1} BaseGetRequestOK ${report_url} pageSize=20&pageNo=1&jobIds=&jobName=${name}&opStartTime=&opEndTime=&opUser=&scheduleId= + ${reportId} Set Variable ${response1}[data][list][0][jobId] + #查询Report结果的状态,并判断状态结果,如果状态是执行成功,查看report结果内容 + FOR ${i} IN RANGE 50 + sleep 10 + #report执行状态查询 + ${response1} BaseGetRequestOK ${result_url} jobId=${reportId} + ${status} Set Variable ${response1}[data][list][0][status] + ${resultId} Set Variable ${response1}[data][list][0][resultId] + run keyword if "${status}"=="0" log non-execution + ... ELSE IF "${status}"=="1" log executing + ... ELSE IF "${status}"=="2" Exit For Loop + ... ELSE log Exec failure + END + #Report报表详情查询 + ${response1} BaseGetRequestOK ${result_url} jobId=${reportId} + #判断resultRows字段 + ${resultRows} Set Variable ${response1}[data][list][0][resultRows] + ${responselist} run keyword if '${resultRows}'=='0' SecurityEventpolicyidtopHit-new-if ELSE SecurityEventpolicyidtopHit-new-else ${reportId} ${resultId} + ${list2} create list + ${list3} create list + FOR ${j} IN @{List1} + SecurityEventpolicyidtopHit-new-for ${j} ${list2} ${list3} + END + ${responselist1} create list ${list2} ${list3} + ${retourn} intersection ${responselist} ${responselist1} + Should Be True "${retourn}"=="ture" +SecurityEventpolicyidtopHit-new-if + ${responselist} create list 0 0 0 + [Return] ${responselist} + +SecurityEventpolicyidtopHit-new-else + [Arguments] ${reportId} ${resultId} + ${response1} BaseGetRequestOK /v1/report/offlinejob/result/detail jobId=${reportId}&resultId=${resultId} + ${policyId} Set Variable ${response1}[data][list][0][tableData][columns][0][dataBindings][0][data] + ${sessions} Set Variable ${response1}[data][list][0][tableData][columns][1][dataBindings][0][data] + ${responselist} create list ${policyId} ${sessions} + [Return] ${responselist} +SecurityEventpolicyidtopHit-new-for + [Arguments] ${j} ${listpolicyId} ${listsessions} + + FOR ${v} ${k} IN ENUMERATE @{j} + + ${str} run keyword if '${k}'=='policyId' evaluate str(${j}[${k}]) + run keyword if ${str}!=None append to list ${listpolicyId} ${str} + ${str1} run keyword if '${k}'=='sessions' evaluate str(${j}[${k}]) + run keyword if ${str1}!=None append to list ${listsessions} ${str1} + END + +SubscriberIDTopN-new + #dashboard SubscriberIDP统计 bifang和report对比 [Documentation] - ... 描述:Traffic-trend-packets + ... 描述:ProxyPinning ... 参数:starttime(必传,开始时间紧) + ... orderBy(必传,排序 sessions、bytes、packets 从这三个中选择) + ... limit(必传,限制条数) ... endtime(必传,结束时间 - ... timeGranularity(非必传,时间粒度 ) - ... limit(非必传,限制条数) - ... 返回:对比结果 - [Arguments] ${starttime} ${endtime} ${timeGranularity} ${limit} - - ${data} Set Variable startTime=${startTime}&endTime=${endTime}&statisticsUnit=packets&timeGranularity=${timeGranularity}&limit=${limit} - ${url1} Set Variable report/traffic/statisticsbyunit - ${bfResponse} trafficBFRequest ${url1} ${data} - @{packetsOutList1} Set Variable ${bfResponse['data']['trafficOutPacketsList']} - @{packetsInList1} Set Variable ${bfResponse['data']['trafficInPacketsList']} - Create Session bdapi http://${bigDataIP}:${bigDataPort} - #${sql} Set Variable (select DATE_FORMAT(FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(__time)/${timeGranularity})*${timeGranularity}),'%Y-%m-%d %H:%i:%s') as stat_time, 'traffic_in_packets' as type, sum(total_in_packets) as packets from traffic_metrics_log where \ __time >= '${startTime}' and __time < '${endTime}' group by DATE_FORMAT(FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(__time)/${timeGranularity})*${timeGranularity}),'%Y-%m-%d %H:%i:%s') union all select DATE_FORMAT(FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(__time)/${timeGranularity})*${timeGranularity}),'%Y-%m-%d %H:%i:%s') as stat_time, 'traffic_out_packets' as type, sum(total_out_packets) as packets from traffic_metrics_log where __time >= '${startTime}' and __time < '${endTime}' group by DATE_FORMAT(FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(__time)/${timeGranularity})*${timeGranularity}),'%Y-%m-%d %H:%i:%s')) - #${remoteResponse} Get Request bdapi ?query=${sql} - ${sql} Set Variable (select DATE_FORMAT(FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(__time)/${timeGranularity})*${timeGranularity}),'%Y-%m-%d %H:%i:%s') as stat_time, 'traffic_in_packets' as type, sum(total_in_packets) as packets from traffic_metrics_log where \ __time >= '${startTime}' and __time < '${endTime}' group by DATE_FORMAT(FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(__time)/${timeGranularity})*${timeGranularity}),'%Y-%m-%d %H:%i:%s') limit ${limit}) union all (select DATE_FORMAT(FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(__time)/${timeGranularity})*${timeGranularity}),'%Y-%m-%d %H:%i:%s') as stat_time, 'traffic_out_packets' as type, sum(total_out_packets) as packets from traffic_metrics_log where __time >= '${startTime}' and __time < '${endTime}' group by DATE_FORMAT(FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(__time)/${timeGranularity})*${timeGranularity}),'%Y-%m-%d %H:%i:%s') limit ${limit}) - ${remoteResponse} Get Request bdapi ?query=${sql} - ${response} to json ${remoteResponse.content} - Should Be Equal As Strings ${remoteResponse.status_code} 200 - Should Be Equal As Strings ${response['status']} 200 - @{packetsList2} Set Variable ${response['data']} - ${typeIn} Set Variable traffic_in_packets - ${typeOut} Set Variable traffic_out_packets - ${types} Set Variable packets - Run Keyword If ${packetsOutList1}!=[] and ${packetsList2}!=[] ForToTrafficTrend ${packetsOutList1} ${typeOut} ${types} ${packetsList2} - Run Keyword If ${packetsInList1}!=[] and ${packetsList2}!=[] ForToTrafficTrend ${packetsInList1} ${typeIn} ${types} ${packetsList2} + [Arguments] ${starttime} ${endtime} ${orderBy} ${limit} ${name} ${char-orderby} + ${data} Set Variable startTime=${startTime}&endTime=${endTime}&orderBy=${orderBy}&limit=${limit} + ${url1} Set Variable report/traffic/topn/subscriberid + ${bfResponse} TrafficStatistics.trafficBFRequest ${url1} ${data} + @{List1} Set Variable ${bfResponse['data']['list']} + #新建DataSet + #${name} Set Variable Report_Result-001 + BasePostRequestOK ${dataset_url} {"list":{"name":"${name}","logType":"connection_record_log","filterConnector":"and","havingConnector":"and","groupColumnList":[{"name":"common_subscriber_id"}],"queryColumnList":[{"name":"common_subscriber_id","expression":"","label":"Subscriber ID"},{"name":"common_log_id","expression":"count","label":"sessions","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_byte_num","expression":"sum","label":"Bytes Sent","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_s2c_byte_num","expression":"sum","label":"Bytes Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_byte_num,common_s2c_byte_num","expression":"sum","label":"Bytes Sent+Bytes Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_pkt_num","expression":"sum","label":"Packets Sent","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_s2c_pkt_num","expression":"sum","label":"Packets Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_pkt_num,common_s2c_pkt_num","expression":"sum","label":"Packets Sent+Packets Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]}],"filterConditionList":[],"havingConditionList":[]}} + ${response} BaseGetRequestOK ${dataset_url} pageSize=20&pageNo=1&id=&name=${name}&logType=&opStartTime=&opEndTime=&opUser= + ${datasetId} Set Variable ${response}[data][list][0][id] + #根据DataSet的id,新建Chart,Lien图形表 + BasePostRequestOK ${chart_url} {"list":{"id":null,"name":"${name}","description":"","datasetId":${datasetId},"chartType":"table","dataTop":${limit},"orderBy":"${char-orderby}","orderDesc":0,"drilldownTop":null,"includeOther":false,"tableType":"Regular","columns":[{"title":"Subscriber ID","width":10,"dataBindings":[{"dataType":"","dataBinding":"Subscriber ID","format":"Default","legend":"","name":"common_subscriber_id"}]},{"title":"sessions","width":10,"dataBindings":[{"dataType":"","dataBinding":"sessions","format":"Default","legend":"","name":"common_log_id"}]},{"title":"Bytes Sent","width":10,"dataBindings":[{"dataType":"","dataBinding":"Bytes Sent","format":"Default","legend":"","name":"common_c2s_byte_num"}]},{"title":"Bytes Received","width":10,"dataBindings":[{"dataType":"","dataBinding":"Bytes Received","format":"Default","legend":"","name":"common_s2c_byte_num"}]},{"title":"Bytes Sent+Bytes Received","width":10,"dataBindings":[{"dataType":"","dataBinding":"Bytes Sent+Bytes Received","format":"Default","legend":"","name":"common_c2s_byte_num,common_s2c_byte_num"}]},{"title":"Packets Sent","width":10,"dataBindings":[{"dataType":"","dataBinding":"Packets Sent","format":"Default","legend":"","name":"common_c2s_pkt_num"}]},{"title":"Packets Received","width":10,"dataBindings":[{"dataType":"","dataBinding":"Packets Received","format":"Default","legend":"","name":"common_s2c_pkt_num"}]},{"title":"Packets Sent+Packets Received","width":10,"dataBindings":[{"dataType":"","dataBinding":"Packets Sent+Packets Received","format":"Default","legend":"","name":"common_c2s_pkt_num,common_s2c_pkt_num"}]}]}} + #根据name查询出该Chart的id + ${response1} BaseGetRequestOK ${chart_url} pageSize=20&pageNo=1&id=&name=${name}&opUser= + ${chartId} Set Variable ${response1}[data][list][0][id] + #新建Report,时间计划为Today,图表引用Line。 + BasePostRequestOK ${report_url} {"reportJobList":{"rangeType":"customize","rangeInterval":"","rangeUnit":"","jobName":"${name}","scheduleId":"","chartList":[{"chartId":${chartId},"timeGranulartiy":1,"timeUnit":"","disabled":true}],"isNotice":0,"noticeMethod":"","receivers":[""],"receiver":"","startTime":"${starttime}","endTime":"${endtime}","filterConnector":"and","filterCondition":[]}} + #查询Report的id + ${response1} BaseGetRequestOK ${report_url} pageSize=20&pageNo=1&jobIds=&jobName=${name}&opStartTime=&opEndTime=&opUser=&scheduleId= + ${reportId} Set Variable ${response1}[data][list][0][jobId] + #查询Report结果的状态,并判断状态结果,如果状态是执行成功,查看report结果内容 + FOR ${i} IN RANGE 50 + sleep 10 + #report执行状态查询 + ${response1} BaseGetRequestOK ${result_url} jobId=${reportId} + ${status} Set Variable ${response1}[data][list][0][status] + ${resultId} Set Variable ${response1}[data][list][0][resultId] + run keyword if "${status}"=="0" log non-execution + ... ELSE IF "${status}"=="1" log executing + ... ELSE IF "${status}"=="2" Exit For Loop + ... ELSE log Exec failure + END + #Report报表详情查询 + ${response1} BaseGetRequestOK ${result_url} jobId=${reportId} + #判断resultRows字段 + ${resultRows} Set Variable ${response1}[data][list][0][resultRows] + ${responselist} run keyword if '${resultRows}'=='0' ClientIPTopN-new-if ELSE ClientIPTopN-new-else ${reportId} ${resultId} + ${list2} create list + ${list3} create list + ${list4} create list + ${list5} create list + ${list6} create list + ${list7} create list + ${list8} create list + ${list9} create list + FOR ${j} IN @{List1} + ClientIPTopN-new-for ${j} ${list2} ${list3} ${list4} ${list5} ${list6} ${list7} ${list8} ${list9} + END + ${responselist1} create list ${list2} ${list3} ${list4} ${list5} ${list6} ${list7} ${list8} ${list9} + ${retourn} intersection ${responselist} ${responselist1} + Should Be True "${retourn}"=="ture" -Dashboard-Traffic-trend-sessions - # Traffics-带宽趋势 统计类型:sessions bifang和bigData对比 Traffic IN/OUT +DomainsTopN-new + #dashboard 目的IP统计 bifang和bigData对比 [Documentation] - ... 描述:Traffic-trend-sessions + ... 描述:ProxyPinning ... 参数:starttime(必传,开始时间紧) + ... orderBy(必传,排序 sessions、bytes、packets 从这三个中选择) + ... limit(必传,限制条数) ... endtime(必传,结束时间 - ... timeGranularity(非必传,时间粒度 ) - ... limit(非必传,限制条数) - [Arguments] ${starttime} ${endtime} ${timeGranularity} ${limit} - ${data} Set Variable startTime=${startTime}&endTime=${endTime}&statisticsUnit=sessions&timeGranularity=${timeGranularity}&limit=${limit} - ${url1} Set Variable report/traffic/statisticsbyunit - ${bfResponse} trafficBFRequest ${url1} ${data} - @{sessionsList1} Set Variable ${bfResponse['data']['sessionsList']} - Create Session bdapi http://${bigDataIP}:${bigDataPort} - #${sql} Set Variable select DATE_FORMAT(FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(__time)/${timeGranularity}) *${timeGranularity}),'%Y-%m-%d %H:%i:%s') as stat_time, 'total_conn_num' as type, \ sum(new_conn_num) as sessions from traffic_metrics_log where __time >= \ '${startTime}' and __time < '${endTime}' group by DATE_FORMAT(FROM_UNIXTIME(FLOOR (UNIX_TIMESTAMP(__time)/${timeGranularity})*${timeGranularity}),'%Y-%m-%d %H:%i: %s') - #${remoteResponse} Get Request bdapi ?query=${sql} - ${sql} Set Variable select DATE_FORMAT(FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(__time)/${timeGranularity}) *${timeGranularity}),'%Y-%m-%d %H:%i:%s') as stat_time, 'total_conn_num' as type, \ sum(new_conn_num) as sessions from traffic_metrics_log where __time >= \ '${startTime}' and __time < '${endTime}' group by DATE_FORMAT(FROM_UNIXTIME(FLOOR (UNIX_TIMESTAMP(__time)/${timeGranularity})*${timeGranularity}),'%Y-%m-%d %H:%i: %s') limit ${limit} - ${remoteResponse} Get Request bdapi ?query=${sql} - ${response} to json ${remoteResponse.content} - Should Be Equal As Strings ${remoteResponse.status_code} 200 - Should Be Equal As Strings ${response['status']} 200 - @{sessionsList2} Set Variable ${response['data']} - ${type} Set Variable total_conn_num - ${types} Set Variable sessions - Run Keyword If ${sessionsList1}!=[] and ${sessionsList2}!=[] ForToTrafficTrend ${sessionsList1} ${type} ${types} ${sessionsList2} - - + [Arguments] ${starttime} ${endtime} ${orderBy} ${limit} ${name} ${char-orderby} + ${data} Set Variable startTime=${startTime}&endTime=${endTime}&orderBy=${orderBy}&limit=${limit} + ${url1} Set Variable report/traffic/topn/domain + ${bfResponse} TrafficStatistics.trafficBFRequest ${url1} ${data} + @{List1} Set Variable ${bfResponse['data']['list']} + #新建DataSet + #${name} Set Variable Report_Result-001 + BasePostRequestOK ${dataset_url} {"list":{"name":"${name}","logType":"connection_record_log","filterConnector":"and","havingConnector":"and","groupColumnList":[{"name":"http_domain"}],"queryColumnList":[{"name":"http_domain","expression":"","label":"Http.Domain"},{"name":"common_log_id","expression":"count","label":"sessions","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_byte_num","expression":"sum","label":"Bytes Sent","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_s2c_byte_num","expression":"sum","label":"Bytes Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_byte_num,common_s2c_byte_num","expression":"sum","label":"Bytes Sent+Bytes Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_pkt_num","expression":"sum","label":"Packets Sent","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_s2c_pkt_num","expression":"sum","label":"Packets Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]},{"name":"common_c2s_pkt_num,common_s2c_pkt_num","expression":"sum","label":"Packets Sent+Packets Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]}],"filterConditionList":[],"havingConditionList":[]}} + ${response} BaseGetRequestOK ${dataset_url} pageSize=20&pageNo=1&id=&name=${name}&logType=&opStartTime=&opEndTime=&opUser= + ${datasetId} Set Variable ${response}[data][list][0][id] + #根据DataSet的id,新建Chart,Lien图形表 + BasePostRequestOK ${chart_url} {"list":{"id":null,"name":"${name}","description":"","datasetId":${datasetId},"chartType":"table","dataTop":${limit},"orderBy":"${char-orderby}","orderDesc":0,"drilldownTop":null,"includeOther":false,"tableType":"Regular","columns":[{"title":"Http.Domain","width":10,"dataBindings":[{"dataType":"","dataBinding":"Http.Domain","format":"Default","legend":"","name":"http_domain"}]},{"title":"sessions","width":10,"dataBindings":[{"dataType":"","dataBinding":"sessions","format":"Default","legend":"","name":"common_log_id"}]},{"title":"Bytes Sent","width":10,"dataBindings":[{"dataType":"","dataBinding":"Bytes Sent","format":"Default","legend":"","name":"common_c2s_byte_num"}]},{"title":"Bytes Received","width":10,"dataBindings":[{"dataType":"","dataBinding":"Bytes Received","format":"Default","legend":"","name":"common_s2c_byte_num"}]},{"title":"Bytes Sent+Bytes Received","width":10,"dataBindings":[{"dataType":"","dataBinding":"Bytes Sent+Bytes Received","format":"Default","legend":"","name":"common_c2s_byte_num,common_s2c_byte_num"}]},{"title":"Packets Sent","width":10,"dataBindings":[{"dataType":"","dataBinding":"Packets Sent","format":"Default","legend":"","name":"common_c2s_pkt_num"}]},{"title":"Packets Received","width":10,"dataBindings":[{"dataType":"","dataBinding":"Packets Received","format":"Default","legend":"","name":"common_s2c_pkt_num"}]},{"title":"Packets Sent+Packets Received","width":10,"dataBindings":[{"dataType":"","dataBinding":"Packets Sent+Packets Received","format":"Default","legend":"","name":"common_c2s_pkt_num,common_s2c_pkt_num"}]}]}} + #根据name查询出该Chart的id + ${response1} BaseGetRequestOK ${chart_url} pageSize=20&pageNo=1&id=&name=${name}&opUser= + ${chartId} Set Variable ${response1}[data][list][0][id] + #新建Report,时间计划为Today,图表引用Line。 + BasePostRequestOK ${report_url} {"reportJobList":{"rangeType":"customize","rangeInterval":"","rangeUnit":"","jobName":"${name}","scheduleId":"","chartList":[{"chartId":${chartId},"timeGranulartiy":1,"timeUnit":"","disabled":true}],"isNotice":0,"noticeMethod":"","receivers":[""],"receiver":"","startTime":"${starttime}","endTime":"${endtime}","filterConnector":"and","filterCondition":[]}} + #查询Report的id + ${response1} BaseGetRequestOK ${report_url} pageSize=20&pageNo=1&jobIds=&jobName=${name}&opStartTime=&opEndTime=&opUser=&scheduleId= + ${reportId} Set Variable ${response1}[data][list][0][jobId] + #查询Report结果的状态,并判断状态结果,如果状态是执行成功,查看report结果内容 + FOR ${i} IN RANGE 50 + sleep 10 + #report执行状态查询 + ${response1} BaseGetRequestOK ${result_url} jobId=${reportId} + ${status} Set Variable ${response1}[data][list][0][status] + ${resultId} Set Variable ${response1}[data][list][0][resultId] + run keyword if "${status}"=="0" log non-execution + ... ELSE IF "${status}"=="1" log executing + ... ELSE IF "${status}"=="2" Exit For Loop + ... ELSE log Exec failure + END + #Report报表详情查询 + ${response1} BaseGetRequestOK ${result_url} jobId=${reportId} + #判断resultRows字段 + ${resultRows} Set Variable ${response1}[data][list][0][resultRows] + ${responselist} run keyword if '${resultRows}'=='0' ClientIPTopN-new-if ELSE ClientIPTopN-new-else ${reportId} ${resultId} + ${list2} create list + ${list3} create list + ${list4} create list + ${list5} create list + ${list6} create list + ${list7} create list + ${list8} create list + ${list9} create list + FOR ${j} IN @{List1} + ClientIPTopN-new-for ${j} ${list2} ${list3} ${list4} ${list5} ${list6} ${list7} ${list8} ${list9} + END + ${responselist1} create list ${list2} ${list3} ${list4} ${list5} ${list6} ${list7} ${list8} ${list9} + ${retourn} intersection ${responselist} ${responselist1} + Should Be True "${retourn}"=="ture" +ProxyEventActionHit-new + # dashboard界面 安全策略各动作命中计数 bytes packets sessions bifang和report对比 + [Documentation] + ... 描述:Security-Action-packets + ... 参数:starttime(必传,开始时间紧) + ... timeGranularity(必传,时间粒度 ) + ... limit(必传,限制条数) + ... endtime(必传,结束时间) + ... logType(必填,日志类型。) + ... name 名字 + ... action 动作,0为none,128为allow,16为deny,2为intercept,1为monitor + [Arguments] ${starttime} ${endtime} ${timeGranularity} ${limit} ${name} ${action} + ${logType} Set Variable proxy_event_hits_log + ${data} Set Variable startTime=${startTime}&endTime=${endTime}&logType=${logType}&timeGranularity=${timeGranularity}&limit=${limit} + ${url1} Set Variable report/policyevent/hit/action + ${bfResponse} TrafficStatistics.trafficBFRequest ${url1} ${data} + ${actionCountList} Set Variable ${bfResponse['data']['actionCount']} + #新建DataSet + #${name} Set Variable Report_Result-001 + BasePostRequestOK ${dataset_url} {"list":{"name":"${name}","logType":"proxy_event_log","filterConnector":"and","havingConnector":"and","groupColumnList":[{"name":"common_sub_action"}],"queryColumnList":[{"name":"common_sub_action","expression":"","label":"Sub Action"},{"name":"common_c2s_byte_num,common_s2c_byte_num","expression":"sum","label":"Bytes Sent+Bytes Received","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]}],"filterConditionList":[{"name":"common_sub_action","expression":"=","expressionList":["=","!=","Prefix","Suffix","Sub","notEmpty"],"value":["${action}"],"type":"string"}],"havingConditionList":[]}} + ${response} BaseGetRequestOK ${dataset_url} pageSize=20&pageNo=1&id=&name=${name}&logType=&opStartTime=&opEndTime=&opUser= + ${datasetId} Set Variable ${response}[data][list][0][id] + #根据DataSet的id,新建Chart,Lien图形表 + BasePostRequestOK ${chart_url} {"list":{"id":null,"name":"${name}","description":"","datasetId":${datasetId},"chartType":"pie","dataTop":0,"orderBy":"","orderDesc":"","includeOther":false,"xAxis":{"dataBinding":"Sub Action","label":"","dataTop":5,"dataType":""},"yAxis":[{"dataBinding":"Bytes Sent+Bytes Received","format":"Default","legend":""}]}} + #根据name查询出该Chart的id + ${response1} BaseGetRequestOK ${chart_url} pageSize=20&pageNo=1&id=&name=${name}&opUser= + ${chartId} Set Variable ${response1}[data][list][0][id] + #新建Report,时间计划为Today,图表引用Line。 + BasePostRequestOK ${report_url} {"reportJobList":{"rangeType":"customize","rangeInterval":"","rangeUnit":"","jobName":"${name}","scheduleId":"","chartList":[{"chartId":${chartId},"timeGranulartiy":1,"timeUnit":"","disabled":true}],"isNotice":0,"noticeMethod":"","receivers":[""],"receiver":"","startTime":"${starttime}","endTime":"${endtime}","filterConnector":"and","filterCondition":[]}} + #查询Report的id + ${response1} BaseGetRequestOK ${report_url} pageSize=20&pageNo=1&jobIds=&jobName=${name}&opStartTime=&opEndTime=&opUser=&scheduleId= + ${reportId} Set Variable ${response1}[data][list][0][jobId] + #查询Report结果的状态,并判断状态结果,如果状态是执行成功,查看report结果内容 + FOR ${i} IN RANGE 50 + sleep 10 + #report执行状态查询 + ${response1} BaseGetRequestOK ${result_url} jobId=${reportId} + ${status} Set Variable ${response1}[data][list][0][status] + ${resultId} Set Variable ${response1}[data][list][0][resultId] + run keyword if "${status}"=="0" log non-execution + ... ELSE IF "${status}"=="1" log executing + ... ELSE IF "${status}"=="2" Exit For Loop + ... ELSE log Exec failure + END + #Report报表详情查询 + ${response1} BaseGetRequestOK ${result_url} jobId=${reportId} + #判断resultRows字段 + ${resultRows} Set Variable ${response1}[data][list][0][resultRows] + ${responselist} run keyword if '${resultRows}'=='0' SecurityEventActionHit-if ELSE SecurityEventActionHit-else ${reportId} ${resultId} + ${responselist1} run keyword if '${action}'=='0' action-0 ${actionCountList} + ... ELSE IF '${action}'=='allow' action-allow ${actionCountList} + ... ELSE IF '${action}'=='deny' action-deny ${actionCountList} + ... ELSE IF '${action}'=='monitor' action-monitor ${actionCountList} + ... ELSE IF '${action}'=='replace' action-replace ${actionCountList} + ... ELSE IF '${action}'=='redirect' action-redirect ${actionCountList} + ... ELSE IF '${action}'=='insert' action-insert ${actionCountList} + ... ELSE IF '${action}'=='hijack' action-hijack ${actionCountList} + ${number} run keyword if '${responselist1}[0]'=='0' SecurityEventActionHit-if-1 ELSE evaluate int(${responselist}[0])/int(${responselist1}[0])-1 + Should Be True ${number}<=${contrast} + [Return] OK +action-allow + [Arguments] ${actionCountList} + log ${actionCountList} + ${sessions} Set Variable ${actionCountList}[0][sessions] + ${responselist1} create list ${sessions} + [Return] ${responselist1} + +action-deny + [Arguments] ${actionCountList} + ${sessions} Set Variable ${actionCountList}[1][sessions] + ${responselist1} create list ${sessions} + [Return] ${responselist1} + +action-monitor + [Arguments] ${actionCountList} + ${sessions} Set Variable ${actionCountList}[2][sessions] + ${responselist1} create list ${sessions} + [Return] ${responselist1} + +action-replace + [Arguments] ${actionCountList} + ${sessions} Set Variable ${actionCountList}[3][sessions] + ${responselist1} create list ${sessions} + [Return] ${responselist1} + +action-redirect + [Arguments] ${actionCountList} + ${sessions} Set Variable ${actionCountList}[4][sessions] + ${responselist1} create list ${sessions} + [Return] ${responselist1} + +action-insert + [Arguments] ${actionCountList} + ${sessions} Set Variable ${actionCountList}[5][sessions] + ${responselist1} create list ${sessions} + [Return] ${responselist1} + +action-hijack + [Arguments] ${actionCountList} + ${sessions} Set Variable ${actionCountList}[6][sessions] + ${responselist1} create list ${sessions} + [Return] ${responselist1} + +ProxyPolicytopHit-new + # dashboard界面 安全策略各动作命中计数 packets bifang和bigData对比 + [Documentation] + ... 描述:Security-Action-packets + ... 参数:starttime(必传,开始时间紧) + ... limit(必传,限制条数) + ... endtime(必传,结束时间) + ... logType(必填,日志类型。) + [Arguments] ${starttime} ${endtime} ${limit} ${name} + ${logType} Set Variable proxy_event_hits_log + ${data} Set Variable startTime=${startTime}&endTime=${endTime}&logType=${logType}&limit=${limit} + ${url1} Set Variable report/policyevent/hit/topn + ${bfResponse} TrafficStatistics.trafficBFRequest ${url1} ${data} + ${List1} Set Variable ${bfResponse['data']['list']} + #新建DataSet + #${name} Set Variable Report_Result-001 + BasePostRequestOK ${dataset_url} {"list":{"name":"${name}","logType":"proxy_event_log","filterConnector":"and","havingConnector":"and","groupColumnList":[{"name":"common_policy_id"}],"queryColumnList":[{"name":"common_policy_id","expression":"","label":"Policy ID"},{"name":"common_log_id","expression":"count","label":"sessions","expressionList":[{"label":"sum","value":"sum"},{"label":"min","value":"min"},{"label":"max","value":"max"},{"label":"avg","value":"avg"},{"label":"count","value":"count"}]}],"filterConditionList":[],"havingConditionList":[]}} + ${response} BaseGetRequestOK ${dataset_url} pageSize=20&pageNo=1&id=&name=${name}&logType=&opStartTime=&opEndTime=&opUser= + ${datasetId} Set Variable ${response}[data][list][0][id] + #根据DataSet的id,新建Chart,Lien图形表 + BasePostRequestOK ${chart_url} {"list":{"id":null,"name":"${name}","description":"","datasetId":${datasetId},"chartType":"table","dataTop":10,"orderBy":"","orderDesc":"","drilldownTop":null,"includeOther":false,"tableType":"Regular","columns":[{"title":"Policy ID","width":20,"dataBindings":[{"dataType":"","dataBinding":"Policy ID","format":"Default","legend":"","name":"common_policy_id"}]},{"title":"sessions","width":20,"dataBindings":[{"dataType":"","dataBinding":"sessions","format":"Default","legend":"","name":"common_log_id"}]}]}} + #根据name查询出该Chart的id + ${response1} BaseGetRequestOK ${chart_url} pageSize=20&pageNo=1&id=&name=${name}&opUser= + ${chartId} Set Variable ${response1}[data][list][0][id] + #新建Report,时间计划为Today,图表引用Line。 + BasePostRequestOK ${report_url} {"reportJobList":{"rangeType":"customize","rangeInterval":"","rangeUnit":"","jobName":"${name}","scheduleId":"","chartList":[{"chartId":${chartId},"timeGranulartiy":1,"timeUnit":"","disabled":true}],"isNotice":0,"noticeMethod":"","receivers":[""],"receiver":"","startTime":"${starttime}","endTime":"${endtime}","filterConnector":"and","filterCondition":[]}} + #查询Report的id + ${response1} BaseGetRequestOK ${report_url} pageSize=20&pageNo=1&jobIds=&jobName=${name}&opStartTime=&opEndTime=&opUser=&scheduleId= + ${reportId} Set Variable ${response1}[data][list][0][jobId] + #查询Report结果的状态,并判断状态结果,如果状态是执行成功,查看report结果内容 + FOR ${i} IN RANGE 50 + sleep 10 + #report执行状态查询 + ${response1} BaseGetRequestOK ${result_url} jobId=${reportId} + ${status} Set Variable ${response1}[data][list][0][status] + ${resultId} Set Variable ${response1}[data][list][0][resultId] + run keyword if "${status}"=="0" log non-execution + ... ELSE IF "${status}"=="1" log executing + ... ELSE IF "${status}"=="2" Exit For Loop + ... ELSE log Exec failure + END + #Report报表详情查询 + ${response1} BaseGetRequestOK ${result_url} jobId=${reportId} + #判断resultRows字段 + ${resultRows} Set Variable ${response1}[data][list][0][resultRows] + ${responselist} run keyword if '${resultRows}'=='0' SecurityEventpolicyidtopHit-new-if ELSE SecurityEventpolicyidtopHit-new-else ${reportId} ${resultId} + ${responselist1} run keyword if '${List1}'=='[]' SecurityEventpolicyidtopHit-new-if ELSE for ${List1} + + ${retourn} intersection ${responselist} ${responselist1} + Should Be True "${retourn}"=="ture" + +for + [Arguments] ${List1} + ${list2} create list + ${list3} create list + log ${List1} + FOR ${j} IN @{List1} + SecurityEventpolicyidtopHit-new-for ${j} ${list2} ${list3} + END + ${responselist1} create list ${list2} ${list3} \ No newline at end of file diff --git a/02-Keyword/tsg_bfapi/dashboard_keywords/list-intersection.py b/02-Keyword/tsg_bfapi/dashboard_keywords/list-intersection.py new file mode 100644 index 0000000..9a48fc5 --- /dev/null +++ b/02-Keyword/tsg_bfapi/dashboard_keywords/list-intersection.py @@ -0,0 +1,15 @@ +#!/user/bin/python +#-*-coding:utf-8-*- + +def intersection(a,b): + c= 0 + for j in a: + for i in j: + if i in b: + c= c+1 + d = len(b)*len(b[0]) + e = c/d + if e >= 0.8 : + return "ture" + else: + return "false" \ No newline at end of file diff --git a/03-Variable/BifangApiVariable.txt b/03-Variable/BifangApiVariable.txt index b69a9dc..b1547a0 100644 --- a/03-Variable/BifangApiVariable.txt +++ b/03-Variable/BifangApiVariable.txt @@ -62,4 +62,4 @@ ${snmpCommunity} public #API配置信息 ${oamHost} 192.168.40.210 ${oamPort} 50080 -${contrast} 0.01 \ No newline at end of file +${contrast} 0.1 \ No newline at end of file diff --git a/04-CustomLibrary/ExtensionPackages/GetTimeLibrary/GetTime.py b/04-CustomLibrary/ExtensionPackages/GetTimeLibrary/GetTime.py index 9a38655..50e7ee9 100644 --- a/04-CustomLibrary/ExtensionPackages/GetTimeLibrary/GetTime.py +++ b/04-CustomLibrary/ExtensionPackages/GetTimeLibrary/GetTime.py @@ -58,6 +58,26 @@ class GetTime(): h, m, s = b.strip().split(':') #.split()函数将其通过':'分隔开,.strip()函数用来除去空格 return int(h)*3600 + int(m)*60 + int(s),d #int()函数转换成整数运算 + def intersection(self,a,b): + c= 0 + f = 0 + for j in a: + + for i in j: + if i in b[f]: + print(i) + print(b[f]) + c= c+1 + f = f + 1 + d = len(b)*len(b[0]) + if d == 0: + e=0 + else: + e = c/d + if e >= 0.8 : + return "ture" + else: + return "false"