This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
dongxiaoyan-tsg-autotest/02-Keyword/tsg_bfapi/dashboard_data_compare/ProxyPinningStatistics.robot
2020-04-10 17:57:09 +08:00

81 lines
6.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

*** Settings ***
Library Collections
Library RequestsLibrary
Library String
Resource ../../../03-Variable/Bifangapivariable.txt
Resource ForTwoKeywords.robot
*** Keywords ***
ProxyPinning
# dashboard界面 Proxy Pinning计数 bifang和bigData对比
[Documentation]
... 描述ProxyPinning
... 参数timeNum(必传,查询的时间范围类型 1 当前时间前一小时 2 当前时间前一天 3 当前时间前一周)
... timeGranularity(必传,时间粒度 300s)
... limit(必传,限制条数)
... param(非必传参数数量为2位依次顺序为'startTime'、'endTime'自定义时两个参数必须都有如果没有就使用timeNum查询)
[Arguments] ${timeNum} ${timeGranularity} ${limit} @{param}
${length} Run Keyword If ${param}!=[] Get Length ${param}
... ELSE Set Variable ${0}
${startTime} ${endTime} Run Keyword If ${length}==${0} GetFormateTime ${timeNum}
... ELSE IF ${length}>${0} Set Variable ${param[0]} ${param[1]}
#${timeGranularity} Set Variable 300
#${limit} Set Variable 5
${data} Set Variable startTime=${startTime}&endTime=${endTime}&timeGranularity=${timeGranularity}&limit=${limit}
${url1} Set Variable report/policyevent/hit/pinning
${bfResponse} TrafficBFRequest ${url1} ${data}
${notPinningNum} Set Variable ${bfResponse['data']['notPinningNum']}
${maybePinningNum} Set Variable ${bfResponse['data']['maybePinningNum']}
${pinningNum} Set Variable ${bfResponse['data']['pinningNum']}
Create Session bdapi http://${bigDataIP}:${bigDataPort}
${sql} Set Variable (select \ sum(hits) as hits, 'not_pinning_num' as type from security_event_hits_log \ where __time >= '${startTime}' and __time < '${endTime}' and pinningst=0) \ union all \ (select \ sum(hits) as hits, 'pinning_num' as type from security_event_hits_log \ where __time >= '${startTime}' and __time < '${endTime}' and pinningst=1) \ union all \ (select \ sum(hits) as hits, 'maybe_pinning_num' as type from security_event_hits_log \ where __time >= '${startTime}' and __time < '${endTime}' and pinningst=2)
${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
@{list} Set Variable ${response['data']}
FOR ${element} IN @{list}
log ${element}
Run Keyword If '${element['type']}'=='not_pinning_num' Should Be Equal ${element['hits']} ${notPinningNum}
... ELSE IF '${element['type']}'=='pinning_num' Should Be Equal ${element['hits']} ${pinningNum}
... ELSE IF '${element['type']}'=='maybe_pinning_num' Should Be Equal ${element['hits']} ${maybePinningNum}
END
ProxyPinningTrend
# dashboard界面 Proxy Pinning计数趋势 bifang和bigData对比
[Documentation]
... 描述ProxyPinning-trend
... 参数timeNum(必传,查询的时间范围类型 1 当前时间前一小时 2 当前时间前一天 3 当前时间前一周)
... timeGranularity(必传,时间粒度 300s)
... limit(必传,限制条数)
... param(非必传参数数量为2位依次顺序为'startTime'、'endTime'自定义时两个参数必须都有如果没有就使用timeNum查询)
[Arguments] ${timeNum} ${timeGranularity} ${limit} @{param}
${length} Run Keyword If ${param}!=[] Get Length ${param}
... ELSE Set Variable ${0}
${startTime} ${endTime} Run Keyword If ${length}==${0} GetFormateTime ${timeNum}
... ELSE IF ${length}>${0} Set Variable ${param[0]} ${param[1]}
#${timeGranularity} Set Variable 300
#${limit} Set Variable 5
${data} Set Variable startTime=${startTime}&endTime=${endTime}&timeGranularity=${timeGranularity}&limit=${limit}
${url1} Set Variable report/policyevent/hit/pinning
${bfResponse} trafficBFRequest ${url1} ${data}
@{notPinningTrendList} Set Variable ${bfResponse['data']['notPinningTrendList']}
@{maybePinningTrendList} Set Variable ${bfResponse['data']['maybePinningTrendList']}
@{pinningTrendList} Set Variable ${bfResponse['data']['pinningTrendList']}
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, 'not_pinning_num' as type, sum(hits) as hits from security_event_hits_log where __time >= '${startTime}' and __time < '${endTime}' and pinningst=0 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, 'pinning_num' as type, sum(hits) as hits from security_event_hits_log where \ __time >= '${startTime}' and __time < '${endTime}' and pinningst=1 \ 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, 'maybe_pinning_num' as type, sum(hits) as hits from security_event_hits_log where \ __time >= '${startTime}' and __time < '${endTime}' and pinningst=2 \ \ 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
@{list} Set Variable ${response['data']}
${type1} Set Variable not_pinning_num
Run Keyword If ${notPinningTrendList}!=[] and ${list}!=[] ForToProxyPinningTrend ${notPinningTrendList} ${type1} ${list}
${type2} Set Variable maybe_pinning_num
Run Keyword If ${maybePinningTrendList}!=[] and ${list}!=[] ForToProxyPinningTrend ${maybePinningTrendList} ${type2} ${list}
${type3} Set Variable pinning_num
Run Keyword If ${pinningTrendList}!=[] and ${list}!=[] ForToProxyPinningTrend ${pinningTrendList} ${type3} ${list}