diff --git a/src/views/charts2/charts/linkMonitor/LinkTrafficLine.vue b/src/views/charts2/charts/linkMonitor/LinkTrafficLine.vue index 70b602b1..60a7181a 100644 --- a/src/views/charts2/charts/linkMonitor/LinkTrafficLine.vue +++ b/src/views/charts2/charts/linkMonitor/LinkTrafficLine.vue @@ -2,7 +2,7 @@ @@ -45,7 +51,6 @@ import chartMixin from '@/views/charts2/chart-mixin' import { storageKey, unitTypes } from '@/utils/constants' import unitConvert from '@/utils/unit-convert' -import { get } from '@/utils/http' import { api } from '@/utils/api' import { ref } from 'vue' import { useRoute } from 'vue-router' @@ -53,6 +58,7 @@ import { getSecond } from '@/utils/date-util' import { computeScore } from '@/utils/tools' import Loading from '@/components/common/Loading' import ChartError from '@/components/common/Error' +import axios from 'axios' export default { name: 'linkTrafficList', mixins: [chartMixin], @@ -136,7 +142,8 @@ export default { } } this.loading = true - get(api.linkMonitor.networkAnalysis, params).then(res => { + axios.get(api.linkMonitor.networkAnalysis, { params: params }).then(res => { + res = res.data if (res.code === 200) { this.showError = false this.isNoData = res.data.result.length === 0 @@ -165,6 +172,9 @@ export default { }, mounted () { this.linkTrafficData() + }, + beforeUnmount () { + this.unitConvert = null } } diff --git a/test/views/charts2/charts/linkMonitor/LinkTrafficLine.test.js b/test/views/charts2/charts/linkMonitor/LinkTrafficLine.test.js new file mode 100644 index 00000000..9253b4ae --- /dev/null +++ b/test/views/charts2/charts/linkMonitor/LinkTrafficLine.test.js @@ -0,0 +1,108 @@ +import LinkTrafficLine from '@/views/charts2/charts/linkMonitor/LinkTrafficLine' +import { mount } from '@vue/test-utils' +import axios from 'axios' + +const timeFilter = { + dateRangeValue: -1, + startTime: 1673244000, + endTime: 1673247600 +} + +const mockGet = { + data: {"status":200,"code":200,"queryKey":"87649896d5b7547a0128eb47c2d40853","success":true,"message":null,"statistics":{"elapsed":4,"rows_read":1033063,"bytes_read":8618120,"result_size":13807,"result_rows":101},"job":null,"formatType":"json","meta":[{"name":"stat_time","type":"long","category":"Dimension"},{"name":"egress_bytes","type":"long","category":"Metric"},{"name":"ingress_bytes","type":"long","category":"Metric"},{"name":"egress_pkt","type":"long","category":"Metric"},{"name":"ingress_pkt","type":"long","category":"Metric"},{"name":"bytes_total","type":"long","category":"Metric"},{"name":"packets_total","type":"long","category":"Metric"}],"data":{"resultType":"object","result":[{"type":"bytes","ingressBitsRate":{"values":[["1675388124","0"],["1675388160","4253144"],["1675388196","470709.36"],["1675388232","0"],["1675388268","148192.24"],["1675388304","0"],["1675388340","577072.48"],["1675388376","160431.12"],["1675388412","0"],["1675388448","1639602.64"],["1675388484","0"],["1675388520","2074017.36"],["1675388556","798924.64"],["1675388592","0"],["1675388628","884606"],["1675388664","0"],["1675388700","1373220.48"],["1675388736","21305.36"],["1675388772","0"],["1675388808","1398940.24"],["1675388844","0"],["1675388880","4474519.52"],["1675388916","383473.12"],["1675388952","0"],["1675388988","582813.36"],["1675389024","0"],["1675389060","3545078.24"],["1675389096","766672"],["1675389132","0"],["1675389168","2877694"],["1675389204","0"],["1675389240","2195562.48"],["1675389276","2268681.12"],["1675389312","0"],["1675389348","1438248.88"],["1675389384","0"],["1675389420","88914.24"],["1675389456","363776.24"],["1675389492","0"],["1675389528","103931.36"],["1675389564","0"],["1675389600","930861.12"],["1675389636","473982.48"],["1675389672","0"],["1675389708","210004.88"],["1675389744","0"],["1675389780","764367.52"],["1675389816","236745.52"],["1675389852","0"],["1675389888","199598"],["1675389924","0"],["1675389960","385563.36"],["1675389996","353556.64"],["1675390032","0"],["1675390068","380246.48"],["1675390104","0"],["1675390140","456284"],["1675390176","2560143.76"],["1675390212","0"],["1675390248","3806779.36"],["1675390284","0"],["1675390320","382829.52"],["1675390356","225432.48"],["1675390392","0"],["1675390428","1024283.52"],["1675390464","0"],["1675390500","494194.88"],["1675390536","718094.88"],["1675390572","0"],["1675390608","373146.64"],["1675390644","0"],["1675390680","101628.64"],["1675390716","977218"],["1675390752","0"],["1675390788","7263452.48"],["1675390824","0"],["1675390860","2613115.76"],["1675390896","2987862"],["1675390932","0"],["1675390968","1376989.36"],["1675391004","0"],["1675391040","2245663.12"],["1675391076","602240.64"],["1675391112","0"],["1675391148","437569.12"],["1675391184","0"],["1675391220","115680.88"],["1675391256","42582.24"],["1675391292","0"],["1675391328","42002"],["1675391364","0"],["1675391400","720716"],["1675391436","5382.88"],["1675391472","0"],["1675391508","169074.64"],["1675391544","0"],["1675391580","1214277.76"],["1675391616","1523679.76"],["1675391652","0"],["1675391688","6382256"],["1675391724","0"]],"analysis":{"avg":"756870.4","max":"7263452.48","min":"0","p95":"3545078.24"}},"totalBitsRate":{"values":[["1675388124","0"],["1675388160","17581092.48"],["1675388196","9918148.64"],["1675388232","0"],["1675388268","13213336.64"],["1675388304","0"],["1675388340","41123655.76"],["1675388376","14569548.64"],["1675388412","0"],["1675388448","39157977.52"],["1675388484","0"],["1675388520","15875735.76"],["1675388556","10885102.24"],["1675388592","0"],["1675388628","8943487.12"],["1675388664","0"],["1675388700","18985121.76"],["1675388736","7659627.36"],["1675388772","0"],["1675388808","9288266.88"],["1675388844","0"],["1675388880","15999674.24"],["1675388916","16802700.48"],["1675388952","0"],["1675388988","17836499.52"],["1675389024","0"],["1675389060","22368492"],["1675389096","12570182.88"],["1675389132","0"],["1675389168","19977345.36"],["1675389204","0"],["1675389240","7747381.76"],["1675389276","29050230.64"],["1675389312","0"],["1675389348","5834855.36"],["1675389384","0"],["1675389420","22798420.24"],["1675389456","9061622.64"],["1675389492","0"],["1675389528","2391149.76"],["1675389564","0"],["1675389600","10752915.76"],["1675389636","72671214"],["1675389672","0"],["1675389708","23536865.76"],["1675389744","0"],["1675389780","6080925.76"],["1675389816","27096624.64"],["1675389852","0"],["1675389888","47355125.36"],["1675389924","0"],["1675389960","7525635.52"],["1675389996","12312211.76"],["1675390032","0"],["1675390068","9587065.36"],["1675390104","0"],["1675390140","7763073.36"],["1675390176","12692375.36"],["1675390212","0"],["1675390248","13007133.76"],["1675390284","0"],["1675390320","3241344.88"],["1675390356","13811041.12"],["1675390392","0"],["1675390428","38206391.36"],["1675390464","0"],["1675390500","5489114"],["1675390536","17855136.88"],["1675390572","0"],["1675390608","18409624.48"],["1675390644","0"],["1675390680","15132633.12"],["1675390716","19189583.52"],["1675390752","0"],["1675390788","16803327.36"],["1675390824","0"],["1675390860","19972804.88"],["1675390896","22541580.48"],["1675390932","0"],["1675390968","21671364.88"],["1675391004","0"],["1675391040","25293518.24"],["1675391076","34056467.52"],["1675391112","0"],["1675391148","13181229.76"],["1675391184","0"],["1675391220","12337126.88"],["1675391256","5989032.64"],["1675391292","0"],["1675391328","7393281.36"],["1675391364","0"],["1675391400","29175007.36"],["1675391436","17228925.76"],["1675391472","0"],["1675391508","7375468"],["1675391544","0"],["1675391580","16675685.76"],["1675391616","22908316"],["1675391652","0"],["1675391688","13867890.88"],["1675391724","0"]],"analysis":{"avg":"10578267.2","max":"72671214","min":"0","p95":"34056467.52"}},"egressBitsRate":{"values":[["1675388124","0"],["1675388160","13327948.48"],["1675388196","9447439.36"],["1675388232","0"],["1675388268","13065144.48"],["1675388304","0"],["1675388340","40546583.36"],["1675388376","14409117.52"],["1675388412","0"],["1675388448","37518374.88"],["1675388484","0"],["1675388520","13801718.48"],["1675388556","10086177.52"],["1675388592","0"],["1675388628","8058881.12"],["1675388664","0"],["1675388700","17611901.36"],["1675388736","7638322"],["1675388772","0"],["1675388808","7889326.64"],["1675388844","0"],["1675388880","11525154.64"],["1675388916","16419227.36"],["1675388952","0"],["1675388988","17253686.24"],["1675389024","0"],["1675389060","18823413.76"],["1675389096","11803510.88"],["1675389132","0"],["1675389168","17099651.36"],["1675389204","0"],["1675389240","5551819.36"],["1675389276","26781549.52"],["1675389312","0"],["1675389348","4396606.48"],["1675389384","0"],["1675389420","22709506"],["1675389456","8697846.48"],["1675389492","0"],["1675389528","2287218.48"],["1675389564","0"],["1675389600","9822054.64"],["1675389636","72197231.52"],["1675389672","0"],["1675389708","23326860.88"],["1675389744","0"],["1675389780","5316558.24"],["1675389816","26859879.12"],["1675389852","0"],["1675389888","47155527.36"],["1675389924","0"],["1675389960","7140072.24"],["1675389996","11958655.12"],["1675390032","0"],["1675390068","9206818.88"],["1675390104","0"],["1675390140","7306789.36"],["1675390176","10132231.52"],["1675390212","0"],["1675390248","9200354.48"],["1675390284","0"],["1675390320","2858515.36"],["1675390356","13585608.64"],["1675390392","0"],["1675390428","37182107.76"],["1675390464","0"],["1675390500","4994919.12"],["1675390536","17137042"],["1675390572","0"],["1675390608","18036477.76"],["1675390644","0"],["1675390680","15031004.48"],["1675390716","18212365.52"],["1675390752","0"],["1675390788","9539874.88"],["1675390824","0"],["1675390860","17359689.12"],["1675390896","19553718.48"],["1675390932","0"],["1675390968","20294375.52"],["1675391004","0"],["1675391040","23047855.12"],["1675391076","33454226.88"],["1675391112","0"],["1675391148","12743660.64"],["1675391184","0"],["1675391220","12221446"],["1675391256","5946450.48"],["1675391292","0"],["1675391328","7351279.36"],["1675391364","0"],["1675391400","28454291.36"],["1675391436","17223542.88"],["1675391472","0"],["1675391508","7206393.36"],["1675391544","0"],["1675391580","15461408"],["1675391616","21384636.24"],["1675391652","0"],["1675391688","7485634.88"],["1675391724","0"]],"analysis":{"avg":"9821396.8","max":"72197231.52","min":"0","p95":"33454226.88"}}},{"type":"packets","ingressPacketsRate":{"values":[["1675388124","0.00"],["1675388160","382.61"],["1675388196","44.67"],["1675388232","0.00"],["1675388268","23.64"],["1675388304","0.00"],["1675388340","53.75"],["1675388376","34.89"],["1675388412","0.00"],["1675388448","155.25"],["1675388484","0.00"],["1675388520","186.17"],["1675388556","77.81"],["1675388592","0.00"],["1675388628","84.75"],["1675388664","0.00"],["1675388700","140.39"],["1675388736","9.69"],["1675388772","0.00"],["1675388808","126.83"],["1675388844","0.00"],["1675388880","398.50"],["1675388916","94.92"],["1675388952","0.00"],["1675388988","57.33"],["1675389024","0.00"],["1675389060","326.89"],["1675389096","69.06"],["1675389132","0.00"],["1675389168","253.61"],["1675389204","0.00"],["1675389240","201.11"],["1675389276","203.14"],["1675389312","0.00"],["1675389348","126.33"],["1675389384","0.00"],["1675389420","13.86"],["1675389456","34.81"],["1675389492","0.00"],["1675389528","12.47"],["1675389564","0.00"],["1675389600","107.08"],["1675389636","54.39"],["1675389672","0.00"],["1675389708","24.42"],["1675389744","0.00"],["1675389780","67.47"],["1675389816","35.94"],["1675389852","0.00"],["1675389888","22.44"],["1675389924","0.00"],["1675389960","45.64"],["1675389996","32.81"],["1675390032","0.00"],["1675390068","37.72"],["1675390104","0.00"],["1675390140","43.69"],["1675390176","228.97"],["1675390212","0.00"],["1675390248","392.69"],["1675390284","0.00"],["1675390320","55.33"],["1675390356","47.44"],["1675390392","0.00"],["1675390428","106.06"],["1675390464","0.00"],["1675390500","47.58"],["1675390536","64.56"],["1675390572","0.00"],["1675390608","35.94"],["1675390644","0.00"],["1675390680","17.31"],["1675390716","95.47"],["1675390752","0.00"],["1675390788","638.00"],["1675390824","0.00"],["1675390860","239.11"],["1675390896","290.89"],["1675390932","0.00"],["1675390968","129.31"],["1675391004","0.00"],["1675391040","208.83"],["1675391076","65.31"],["1675391112","0.00"],["1675391148","42.17"],["1675391184","0.00"],["1675391220","17.94"],["1675391256","14.33"],["1675391292","0.00"],["1675391328","6.31"],["1675391364","0.00"],["1675391400","62.83"],["1675391436","2.53"],["1675391472","0.00"],["1675391508","37.06"],["1675391544","0.00"],["1675391580","110.00"],["1675391616","148.53"],["1675391652","0.00"],["1675391688","583.64"],["1675391724","0.00"]],"analysis":{"avg":"72.72","max":"638.00","min":"0.00","p95":"326.89"}},"egressPacketsRate":{"values":[["1675388124","0.00"],["1675388160","1835.75"],["1675388196","865.61"],["1675388232","0.00"],["1675388268","1202.69"],["1675388304","0.00"],["1675388340","3864.69"],["1675388376","1428.56"],["1675388412","0.00"],["1675388448","3433.61"],["1675388484","0.00"],["1675388520","1228.06"],["1675388556","896.42"],["1675388592","0.00"],["1675388628","740.83"],["1675388664","0.00"],["1675388700","1576.75"],["1675388736","721.92"],["1675388772","0.00"],["1675388808","700.17"],["1675388844","0.00"],["1675388880","1058.28"],["1675388916","1487.19"],["1675388952","0.00"],["1675388988","1536.19"],["1675389024","0.00"],["1675389060","1671.50"],["1675389096","1083.58"],["1675389132","0.00"],["1675389168","1561.64"],["1675389204","0.00"],["1675389240","549.50"],["1675389276","2454.47"],["1675389312","0.00"],["1675389348","404.53"],["1675389384","0.00"],["1675389420","2011.22"],["1675389456","810.75"],["1675389492","0.00"],["1675389528","228.50"],["1675389564","0.00"],["1675389600","910.58"],["1675389636","6422.11"],["1675389672","0.00"],["1675389708","2123.44"],["1675389744","0.00"],["1675389780","481.97"],["1675389816","2462.33"],["1675389852","0.00"],["1675389888","4183.94"],["1675389924","0.00"],["1675389960","677.81"],["1675389996","1103.31"],["1675390032","0.00"],["1675390068","851.08"],["1675390104","0.00"],["1675390140","659.33"],["1675390176","936.56"],["1675390212","0.00"],["1675390248","835.78"],["1675390284","0.00"],["1675390320","296.28"],["1675390356","1205.39"],["1675390392","0.00"],["1675390428","3288.14"],["1675390464","0.00"],["1675390500","471.14"],["1675390536","1577.00"],["1675390572","0.00"],["1675390608","1645.36"],["1675390644","0.00"],["1675390680","1390.75"],["1675390716","1612.75"],["1675390752","0.00"],["1675390788","880.92"],["1675390824","0.00"],["1675390860","1573.47"],["1675390896","1809.56"],["1675390932","0.00"],["1675390968","1847.53"],["1675391004","0.00"],["1675391040","2160.33"],["1675391076","3126.36"],["1675391112","0.00"],["1675391148","1166.14"],["1675391184","0.00"],["1675391220","1166.81"],["1675391256","538.75"],["1675391292","0.00"],["1675391328","681.00"],["1675391364","0.00"],["1675391400","2580.83"],["1675391436","1693.17"],["1675391472","0.00"],["1675391508","695.89"],["1675391544","0.00"],["1675391580","1395.19"],["1675391616","1920.39"],["1675391652","0.00"],["1675391688","679.08"],["1675391724","0.00"]],"analysis":{"avg":"904.03","max":"6422.11","min":"0.00","p95":"3126.36"}},"totalPacketsRate":{"values":[["1675388124","0.00"],["1675388160","2218.36"],["1675388196","910.28"],["1675388232","0.00"],["1675388268","1226.33"],["1675388304","0.00"],["1675388340","3918.44"],["1675388376","1463.44"],["1675388412","0.00"],["1675388448","3588.86"],["1675388484","0.00"],["1675388520","1414.22"],["1675388556","974.22"],["1675388592","0.00"],["1675388628","825.58"],["1675388664","0.00"],["1675388700","1717.14"],["1675388736","731.61"],["1675388772","0.00"],["1675388808","827.00"],["1675388844","0.00"],["1675388880","1456.78"],["1675388916","1582.11"],["1675388952","0.00"],["1675388988","1593.53"],["1675389024","0.00"],["1675389060","1998.39"],["1675389096","1152.64"],["1675389132","0.00"],["1675389168","1815.25"],["1675389204","0.00"],["1675389240","750.61"],["1675389276","2657.61"],["1675389312","0.00"],["1675389348","530.86"],["1675389384","0.00"],["1675389420","2025.08"],["1675389456","845.56"],["1675389492","0.00"],["1675389528","240.97"],["1675389564","0.00"],["1675389600","1017.67"],["1675389636","6476.50"],["1675389672","0.00"],["1675389708","2147.86"],["1675389744","0.00"],["1675389780","549.44"],["1675389816","2498.28"],["1675389852","0.00"],["1675389888","4206.39"],["1675389924","0.00"],["1675389960","723.44"],["1675389996","1136.11"],["1675390032","0.00"],["1675390068","888.81"],["1675390104","0.00"],["1675390140","703.03"],["1675390176","1165.53"],["1675390212","0.00"],["1675390248","1228.47"],["1675390284","0.00"],["1675390320","351.61"],["1675390356","1252.83"],["1675390392","0.00"],["1675390428","3394.19"],["1675390464","0.00"],["1675390500","518.72"],["1675390536","1641.56"],["1675390572","0.00"],["1675390608","1681.31"],["1675390644","0.00"],["1675390680","1408.06"],["1675390716","1708.22"],["1675390752","0.00"],["1675390788","1518.92"],["1675390824","0.00"],["1675390860","1812.58"],["1675390896","2100.44"],["1675390932","0.00"],["1675390968","1976.83"],["1675391004","0.00"],["1675391040","2369.17"],["1675391076","3191.67"],["1675391112","0.00"],["1675391148","1208.31"],["1675391184","0.00"],["1675391220","1184.75"],["1675391256","553.08"],["1675391292","0.00"],["1675391328","687.31"],["1675391364","0.00"],["1675391400","2643.67"],["1675391436","1695.69"],["1675391472","0.00"],["1675391508","732.94"],["1675391544","0.00"],["1675391580","1505.19"],["1675391616","2068.92"],["1675391652","0.00"],["1675391688","1262.72"],["1675391724","0.00"]],"analysis":{"avg":"976.75","max":"6476.50","min":"0.00","p95":"3191.67"}}}]},"originalUrl":"http://192.168.44.55:9999?query=SELECT%20TIME_FLOOR_WITH_FILL%28stat_time%2C%27PT36S%27%2C%27zero%27%29%20AS%20stat_time%2CSUM%28IF%28%20common_egress_link_id%20%3D%202048%2C%20traffic_outbound_byte%2C%200%29%29%20AS%20egress_bytes%2CSUM%28IF%28%20common_ingress_link_id%20%3D%202049%2C%20traffic_inbound_byte%2C%200%29%29%20AS%20ingress_bytes%2CSUM%28IF%28%20common_egress_link_id%20%3D%202048%2C%20traffic_outbound_pkt%2C%200%29%29%20AS%20egress_pkt%2CSUM%28IF%28%20common_ingress_link_id%20%3D%202049%2C%20traffic_inbound_pkt%2C%200%29%29%20AS%20ingress_pkt%2C%28egress_bytes%20%2B%20ingress_bytes%29%20AS%20bytes_total%2C%28egress_pkt%20%2B%20ingress_pkt%29%20AS%20packets_total%20FROM%20metric_link%20WHERE%20stat_time%20%3E%3D%201675388125%20AND%20stat_time%20%3C%201675391725%20%20GROUP%20BY%20stat_time%20ORDER%20BY%20bytes_total%20DESC%20&format=json&option=real-time","msg":"OK"} +} + +const mockGet1 = { + data: {"status":200,"code":200,"queryKey":"a54916e7f363fd065dfaa44ad23d31b5","success":true,"message":null,"statistics":{"elapsed":4,"rows_read":10518,"bytes_read":1062318,"result_size":186,"result_rows":1},"job":null,"formatType":"json","meta":[{"name":"total_bytes","type":"long","category":"Metric"},{"name":"total_packets","type":"long","category":"Metric"},{"name":"establish_latency_ms","type":"double","category":"Metric"},{"name":"http_response_latency","type":"double","category":"Metric"},{"name":"ssl_con_latency","type":"double","category":"Metric"},{"name":"tcp_lostlen_percent","type":"double","category":"Metric"},{"name":"pkt_retrans_percent","type":"double","category":"Metric"}],"data":{"resultType":"table","result":[{"totalBytes":"4426409159","totalBitsRate":9836464.8,"totalPackets":"3324302","establishLatencyMs":92.9489,"httpResponseLatency":154.2884,"sslConLatency":0,"tcpLostlenPercent":0.0069,"pktRetransPercent":0.0165}]},"originalUrl":"http://192.168.44.55:9999?query=SELECT%20SUM%28IF%28%20common_egress_link_id%20%3D%201792%2C%20traffic_outbound_byte%2C%200%29%20%2B%20IF%28%20common_ingress_link_id%20%3D%201793%2C%20traffic_inbound_byte%2C%200%29%29%20as%20total_bytes%2CSUM%28IF%28%20common_egress_link_id%20%3D%201792%2C%20traffic_outbound_pkt%2C%200%29%20%2B%20IF%28%20common_ingress_link_id%20%3D%201793%2C%20traffic_inbound_pkt%2C%200%29%29%20AS%20total_packets%2CROUND%28AVG%28avg_establish_latency_ms%29%2C%204%29%20AS%20establish_latency_ms%2CROUND%28AVG%28avg_http_response_latency_ms%29%2C%204%29%20AS%20http_response_latency%2CROUND%28AVG%28avg_ssl_con_latency_ms%29%2C%204%29%20AS%20ssl_con_latency%2CROUND%28AVG%28tcp_lostlen_ratio%29%2C%204%29%20AS%20tcp_lostlen_percent%2CROUND%28AVG%28pkt_retrans_ratio%29%2C%204%29%20AS%20pkt_retrans_percent%20FROM%20metric_link%20WHERE%20stat_time%20%3E%3D%201675403646%20AND%20stat_time%20%3C%201675407246%20&format=json&option=real-time","msg":"OK"} +} + +const cnLinkInfo = [{"originalLinkId":"256","linkId":"Hundredgige1","direction":"egress","nextHop":"西安","bandwidth":100000000000},{"originalLinkId":"257","linkId":"Hundredgige1","direction":"ingress","nextHop":"西安","bandwidth":100000000000},{"originalLinkId":"512","linkId":"Hundredgige2","direction":"egress","nextHop":"太原","bandwidth":100000000000},{"originalLinkId":"513","linkId":"Hundredgige2","direction":"ingress","nextHop":"太原","bandwidth":100000000000},{"originalLinkId":"768","linkId":"Hundredgige3","direction":"egress","nextHop":"太原","bandwidth":100000000000},{"originalLinkId":"769","linkId":"Hundredgige3","direction":"ingress","nextHop":"太原","bandwidth":100000000000},{"originalLinkId":"1024","linkId":"Hundredgige4","direction":"egress","nextHop":"西宁","bandwidth":100000000000},{"originalLinkId":"1025","linkId":"Hundredgige4","direction":"ingress","nextHop":"西宁","bandwidth":100000000000},{"originalLinkId":"1280","linkId":"Hundredgige5","direction":"egress","nextHop":"西安","bandwidth":100000000000},{"originalLinkId":"1281","linkId":"Hundredgige5","direction":"ingress","nextHop":"西安","bandwidth":100000000000},{"originalLinkId":"1536","linkId":"Hundredgige6","direction":"egress","nextHop":"太原","bandwidth":100000000000},{"originalLinkId":"1537","linkId":"Hundredgige6","direction":"ingress","nextHop":"太原","bandwidth":100000000000},{"originalLinkId":"1792","linkId":"Hundredgige7","direction":"egress","nextHop":"太原","bandwidth":100000000000},{"originalLinkId":"1793","linkId":"Hundredgige7","direction":"ingress","nextHop":"太原","bandwidth":100000000000},{"originalLinkId":"2048","linkId":"Hundredgige8","direction":"egress","nextHop":"太原","bandwidth":100000000000},{"originalLinkId":"2049","linkId":"Hundredgige8","direction":"ingress","nextHop":"太原","bandwidth":100000000000},{"originalLinkId":"2304","linkId":"Hundredgige9","direction":"egress","nextHop":"太原","bandwidth":100000000000},{"originalLinkId":"2305","linkId":"Hundredgige9","direction":"ingress","nextHop":"太原","bandwidth":100000000000},{"originalLinkId":"2816","linkId":"Hundredgige10","direction":"egress","nextHop":"西安","bandwidth":100000000000},{"originalLinkId":"2817","linkId":"Hundredgige10","direction":"ingress","nextHop":"西安","bandwidth":100000000000}] +const linkInfo = JSON.stringify(cnLinkInfo) + +const query1 = {"t":"1675395023486","thirdPanel":"15","thirdMenu":"Link ID: Hundredgige7","panelName":"Link ID: Hundredgige7","queryCondition":"common_egress_link_id = 1792 or common_ingress_link_id = 1793","curTab":"ip","startTime":1675391498,"endTime":1675395098,"range":60} +const query2 = {"t":"1675409029937","thirdPanel":"15","thirdMenu":"Link ID: Hundredgige10","panelName":"Link ID: Hundredgige10","queryCondition":"common_egress_link_id = 2816 or common_ingress_link_id = 2817","curTab":"ip","startTime":1675388605,"endTime":1675410205,"range":360,"lineMetric":"Bits/s"} +const query3 = {"t":"1675409029937","thirdPanel":"15","thirdMenu":"Link ID: Hundredgige10","panelName":"Link ID: Hundredgige10","queryCondition":"common_egress_link_id = 2816 or common_ingress_link_id = 2817","curTab":"ip","startTime":1675388605,"endTime":1675410205,"range":360,"lineMetric":"Packets/s"} + +let wrapper = null +/** + * 进行axios请求,并挂载vue实例 + * 模拟localStorage获取数据 + * @param query + */ +function axiosPostAndMounted (query) { + require('vue-router').useRoute.mockReturnValue({ query: query }) + // 模拟 axios 数据 + axios.get.mockImplementation(url => { + switch (url) { + case '/interface/link/overview/drilldown/totalTrafficAnalysis': + return Promise.resolve(mockGet) + case '/interface/link/overview/drilldown/networkAnalysis': + return Promise.resolve(mockGet1) + } + }) + // 模拟localStorage获取数据 + jest.spyOn(localStorage.__proto__, 'getItem').mockImplementation(key => linkInfo) + // 加载vue组件,获得实例 + wrapper = mount(LinkTrafficLine, { + propsData: { + timeFilter + } + }) +} + +describe('views/charts2/charts/linkMonitor/LinkTrafficLine.vue测试', () => { + test('左侧列表信息:link下钻折线图 ', async () => { + axiosPostAndMounted(query1) + await new Promise(resolve => setTimeout(() => { + const textNode0 = wrapper.get('[test-id="line-tabContent"]') + const textNode1 = wrapper.get('[test-id="line-percent"]') + const textNode2 = wrapper.get('[test-id="line-score"]') + const textNode3 = wrapper.get('[test-id="line-tcp"]') + const textNode4 = wrapper.get('[test-id="line-http"]') + const textNode5 = wrapper.get('[test-id="line-ssl"]') + const textNode6 = wrapper.get('[test-id="line-packetLoss"]') + const textNode7 = wrapper.get('[test-id="line-packetRetrans"]') + + expect(textNode0.text()).toEqual('756.87Kbps') + expect(textNode1.text()).toEqual('0%') + expect(textNode2.text()).toEqual('5') + expect(textNode3.text()).toEqual('92ms') + expect(textNode4.text()).toEqual('154ms') + expect(textNode5.text()).toEqual('0ms') + expect(textNode6.text()).toEqual('0.69%') + expect(textNode7.text()).toEqual('1.65%') + resolve() + }, 200)) + }) + test('Metric=Bits/s, tab点击第二个高亮:link下钻折线图 ', async () => { + axiosPostAndMounted(query2) + + const textNode3 = await wrapper.get('[test-id="tab-1"]') + await textNode3.trigger('click') + expect(textNode3.classes()).toContain('is-active') + + const textNode0 = await wrapper.get('[test-id="tabContent0"]') + const textNode1 = await wrapper.get('[test-id="tabContent1"]') + const textNode2 = await wrapper.get('[test-id="tabContent2"]') + + await new Promise(resolve => setTimeout(() => { + expect(textNode0.text()).toEqual('756.87Kbps') + expect(textNode1.text()).toEqual('10.58Mbps') + expect(textNode2.text()).toEqual('9.82Mbps') + resolve() + }, 200)) + }) + test('Metric=Packets/s:link下钻折线图 ', async () => { + axiosPostAndMounted(query3) + const textNode0 = await wrapper.get('[test-id="tabContent0"]') + const textNode1 = await wrapper.get('[test-id="tabContent1"]') + const textNode2 = await wrapper.get('[test-id="tabContent2"]') + + await new Promise(resolve => setTimeout(() => { + expect(textNode0.text()).toEqual('72.72packets/s') + expect(textNode1.text()).toEqual('904.03packets/s') + expect(textNode2.text()).toEqual('976.75packets/s') + resolve() + }, 200)) + }) +})