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/TrafficStatistics.robot

169 lines
13 KiB
Plaintext
Raw Normal View History

*** Settings ***
Library Collections
Library RequestsLibrary
Library String
Resource ../../../03-Variable/Bifangapivariable.txt
Resource ForTwoKeywords.robot
*** Keywords ***
Dashboard-Traffic-bytes
# Traffics-带宽统计 统计类型bytes bifang和bigData对比 Traffic IN/OUT
[Documentation]
... 描述Traffic-Bytes统计
... 参数starttime(必传,开始时间紧)
... endtime(必传,结束时间
... 返回:对比结果
[Arguments] ${starttime} ${endtime}
${data} Set Variable startTime=${startTime}&endTime=${endTime}&statisticsUnit=bytes
${url1} Set Variable report/traffic/statisticsbyunit
${bfResponse} TrafficBFRequest ${url1} ${data}
${trafficInBytes} Set Variable ${bfResponse['data']['trafficInBytes']}
${trafficOutBytes} Set Variable ${bfResponse['data']['trafficOutBytes']}
Create Session bdapi http://${bigDataIP}:${bigDataPort}
${sql} Set Variable select sum(total_in_bytes) as traffic_in_bytes, sum(total_out_bytes) as traffic_out_bytes from traffic_metrics_log where __time >= '${startTime}' and __time < '${endTime}'
${remoteResponse} Get Request bdapi ?query=${sql}
${response} to json ${remoteResponse.content}
${trafficInBytes1} Set Variable ${response['data'][0]['traffic_in_bytes']}
${trafficOutBytes1} Set Variable ${response['data'][0]['traffic_out_bytes']}
Should Be True ${trafficInBytes}==${trafficInBytes1}
Should Be True ${trafficOutBytes}==${trafficOutBytes1}
[Return] OK
Dashboard-Traffic-packets
# Traffics-带宽统计 统计类型packets bifang和bigData对比 Traffic IN/OUT
[Documentation]
... 描述Traffic-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}
[Return] OK
Dashboard-Traffic-sessions
# Traffics-带宽统计 统计类型sessions bifang和bigData对比 Traffic IN/OUT
[Documentation]
... 描述Traffic-sessions统计
... 参数starttime(必传,开始时间紧)
... 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
Dashboard-Traffic-trend-bytes
# Traffics-带宽趋势 统计类型bytes bifang和bigData对比 Traffic IN/OUT
[Documentation]
... 描述Traffic-trend-bytes
... 参数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
[Documentation]
... 描述Traffic-trend-packets
... 参数starttime(必传,开始时间紧)
... 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}
Dashboard-Traffic-trend-sessions
# Traffics-带宽趋势 统计类型sessions bifang和bigData对比 Traffic IN/OUT
[Documentation]
... 描述Traffic-trend-sessions
... 参数starttime(必传,开始时间紧)
... 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}