fix: 修改测试用例

This commit is contained in:
chenjinsong
2023-08-28 18:02:25 +08:00
parent 6970b7a41d
commit ea3cc7bc67
27 changed files with 296 additions and 128 deletions

View File

@@ -260,9 +260,9 @@ export default {
}
t.score = computeScore(data)
})
this.tableData = tableData
// this.tableData = tableData
// todo 当前版本voip没数据暂时隐藏后续记得删除该段
this.tableData = this.tableData.filter(item => item.appSubcategory !== 'voip-video')
this.tableData = tableData.filter(item => item.appSubcategory !== 'voip-video')
}).finally(() => {
this.toggleLoading(false)
})

View File

@@ -74,6 +74,7 @@ export default {
},
methods: {
init () {
if (!this.isUnitTesting) {
const _this = this
const dom = document.getElementById('chart')
!this.myChart && (this.myChart = echarts.init(dom))
@@ -102,6 +103,7 @@ export default {
_this.myChart.setOption(_this.chartOption)
})
this.myChart.setOption(this.chartOption)
}
},
eventsByTypeData () {
const params = {

View File

@@ -2,6 +2,8 @@ import EntityDetailLine from '@/views/charts2/charts/entityDetail/EntityDetailLi
import { mount } from '@vue/test-utils'
import axios from 'axios'
import mockData from './mockData/EntityDetailLine'
import common from '@/mixins/common'
import chartMixin from '@/views/charts2/chart-mixin'
const timeFilter = {
dateRangeValue: -1,
@@ -47,7 +49,13 @@ describe('views/charts2/charts/entityDetail/EntityDetailLine.vue测试', () => {
entity,
timeFilter,
chart
},
data () {
return {
isUnitTesting: true
}
},
mixins: [common, chartMixin]
})
// 延迟等待渲染。使用wrapper.vm.$nextTick有时不管用例如组件中使用了setTimeout的时候
await new Promise(resolve => setTimeout(async () => {
@@ -74,7 +82,13 @@ describe('views/charts2/charts/entityDetail/EntityDetailLine.vue测试', () => {
entity,
timeFilter,
chart
},
data () {
return {
isUnitTesting: true
}
},
mixins: [common, chartMixin]
})
// 延迟等待渲染。使用wrapper.vm.$nextTick有时不管用例如组件中使用了setTimeout的时候
await new Promise(resolve => setTimeout(async () => {
@@ -104,7 +118,13 @@ describe('views/charts2/charts/entityDetail/EntityDetailLine.vue测试', () => {
entity,
timeFilter,
chart
},
data () {
return {
isUnitTesting: true
}
},
mixins: [common, chartMixin]
})
// 延迟等待渲染。使用wrapper.vm.$nextTick有时不管用例如组件中使用了setTimeout的时候
@@ -135,7 +155,13 @@ describe('views/charts2/charts/entityDetail/EntityDetailLine.vue测试', () => {
timeFilter,
chart,
metric: 'Packets/s'
},
data () {
return {
isUnitTesting: true
}
},
mixins: [common, chartMixin]
})
await new Promise(resolve => setTimeout(async () => {
@@ -160,7 +186,13 @@ describe('views/charts2/charts/entityDetail/EntityDetailLine.vue测试', () => {
timeFilter,
chart,
metric: 'Sessions/s'
},
data () {
return {
isUnitTesting: true
}
},
mixins: [common, chartMixin]
})
await new Promise(resolve => setTimeout(async () => {

View File

@@ -2,6 +2,8 @@ import SecurityEvent from '@/views/charts2/charts/entityDetail/tabs/SecurityEven
import { mount } from '@vue/test-utils'
import axios from 'axios'
import mockData from './mockData/SecurityEvent'
import chartMixin from '@/views/charts2/chart-mixin'
import common from '@/mixins/common'
const timeFilter = {
dateRangeValue: -1,
@@ -28,7 +30,8 @@ describe('views/charts2/charts/entityDetail/tabs/SecurityEvent.vue测试', () =>
propsData: {
entity,
timeFilter
}
},
mixins: [chartMixin, common]
})
// 延迟等待渲染。使用wrapper.vm.$nextTick有时不管用例如组件中使用了setTimeout的时候
await new Promise(resolve => setTimeout(async () => {
@@ -63,7 +66,8 @@ describe('views/charts2/charts/entityDetail/tabs/SecurityEvent.vue测试', () =>
propsData: {
entity,
timeFilter
}
},
mixins: [chartMixin, common]
})
// 延迟等待渲染。使用wrapper.vm.$nextTick有时不管用例如组件中使用了setTimeout的时候
await new Promise(resolve => setTimeout(async () => {

View File

@@ -1,6 +1,7 @@
const mockData = {
// 空
empty: {
status: 200,
data: {
status: 200,
code: 200,
@@ -13,6 +14,7 @@ const mockData = {
bytes: {
// 边界
boundary: {
status: 200,
data: {
status: 200,
code: 200,
@@ -66,6 +68,7 @@ const mockData = {
},
// 正常数据
common: {
status: 200,
data: {
status: 200,
code: 200,

View File

@@ -1,8 +1,8 @@
const mockData = {
// 空
empty: {
data: {
status: 200,
data: {
code: 200,
data: {
resultType: 'object',
@@ -13,8 +13,8 @@ const mockData = {
bytes: {
// 边界
boundary: {
data: {
status: 200,
data: {
code: 200,
data: {
resultType: 'object',
@@ -26,8 +26,8 @@ const mockData = {
},
// 正常数据
common: {
data: {
status: 200,
data: {
code: 200,
data: {
resultType: 'object',

View File

@@ -1,6 +1,7 @@
const mockData = {
// 空
empty: {
status: 200,
data: {
status: 200,
code: 200,
@@ -13,6 +14,7 @@ const mockData = {
bytes: {
// 边界
boundary: {
status: 200,
data: {
status: 200,
code: 200,
@@ -26,6 +28,7 @@ const mockData = {
},
// 正常数据
common: {
status: 200,
data: {
status: 200,
code: 200,

View File

@@ -1,7 +1,9 @@
import linkBlock from '@/views/charts2/charts/linkMonitor/LinkBlock'
import { mount } from '@vue/test-utils'
import axios from 'axios'
import chartMixin from '@/views/charts2/chart-mixin'
import { mockData, linkInfoData } from './MockData/LinkBlock'
import common from '@/mixins/common'
const mockGet1 = mockData.common.data1
const mockGet2 = mockData.common.data2
@@ -42,7 +44,8 @@ function axiosPostAndMounted (list1, list2) {
wrapper = mount(linkBlock, {
propsData: {
timeFilter
}
},
mixins: [common, chartMixin]
})
}

View File

@@ -3,6 +3,8 @@ import { mount } from '@vue/test-utils'
import axios from 'axios'
import { mockData } from './MockData/LinkTrafficLine'
import { linkInfoData } from './MockData/LinkBlock'
import common from '@/mixins/common'
import chartMixin from '@/views/charts2/chart-mixin'
const mockGet = mockData.common.data1
const mockGet1 = mockData.common.data2
@@ -47,7 +49,13 @@ function axiosPostAndMounted (query, data1, data2) {
wrapper = mount(LinkTrafficLine, {
propsData: {
timeFilter
},
data () {
return {
isUnitTesting: true
}
},
mixins: [common, chartMixin]
})
}

View File

@@ -1,24 +1,28 @@
export const mockData = {
common: {
data1: {
data: { status: 200, code: 200, queryKey: '549b4c3bcabf0feee193b834671879de', success: true, message: null, statistics: { elapsed: 3, rows_read: 11480, bytes_read: 459200, result_size: 1214, result_rows: 21 }, job: null, formatType: 'json', meta: [{ name: 'link_id', type: 'string', category: 'Dimension' }, { name: 'egress_bytes', type: 'long', category: 'Metric' }, { name: 'ingress_bytes', type: 'long', category: 'Metric' }], data: { resultType: 'table', result: [{ linkId: '257', egressBytes: '0', egressBitsRate: 0, ingressBytes: '493739879', ingressBitsRate: 1097199.76 }, { linkId: '256', egressBytes: '4147998874', egressBitsRate: 9217775.28, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '1024', egressBytes: '4229808296', egressBitsRate: 9399574, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '1793', egressBytes: '0', egressBitsRate: 0, ingressBytes: '604840505', ingressBitsRate: 1344090 }, { linkId: '2817', egressBytes: '0', egressBitsRate: 0, ingressBytes: '430811638', ingressBitsRate: 957359.2 }, { linkId: '0', egressBytes: '819878366014', egressBitsRate: 1821951924.48, ingressBytes: '140774357362', ingressBitsRate: 312831905.28 }, { linkId: '1281', egressBytes: '0', egressBitsRate: 0, ingressBytes: '544675122', ingressBitsRate: 1210389.12 }, { linkId: '2049', egressBytes: '0', egressBitsRate: 0, ingressBytes: '711346274', ingressBitsRate: 1580769.52 }, { linkId: '1536', egressBytes: '4195896971', egressBitsRate: 9324215.52, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '2305', egressBytes: '0', egressBitsRate: 0, ingressBytes: '524865003', ingressBitsRate: 1166366.64 }, { linkId: '1792', egressBytes: '4145790227', egressBitsRate: 9212867.2, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '1025', egressBytes: '0', egressBitsRate: 0, ingressBytes: '492227445', ingressBitsRate: 1093838.8 }, { linkId: '2816', egressBytes: '4000074817', egressBitsRate: 8889055.12, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '513', egressBytes: '0', egressBitsRate: 0, ingressBytes: '1444814826', ingressBitsRate: 3210699.6 }, { linkId: '768', egressBytes: '4370006099', egressBitsRate: 9711124.64, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '512', egressBytes: '3894190397', egressBitsRate: 8653756.4, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '769', egressBytes: '0', egressBitsRate: 0, ingressBytes: '1877580759', ingressBitsRate: 4172401.68 }, { linkId: '2304', egressBytes: '3767761711', egressBitsRate: 8372803.84, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '1537', egressBytes: '0', egressBitsRate: 0, ingressBytes: '367986916', ingressBitsRate: 817748.72 }, { linkId: '1280', egressBytes: '4040444894', egressBitsRate: 8978766.4, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '2048', egressBytes: '4682050724', egressBitsRate: 10404557.2, ingressBytes: '0', ingressBitsRate: 0 }] }, originalUrl: 'http://192.168.44.55:9999?query=SELECT%20arrayJoin%28splitByChar%28%27_%27%2C%20concat%28toString%28common_egress_link_id%29%2C%20%27_%27%2C%20toString%28common_ingress_link_id%29%29%29%29%20AS%20link_id%2CSUM%28IF%28toString%28common_egress_link_id%29%20%3D%20link_id%2C%20traffic_outbound_byte%2C%200%29%29%20AS%20egress_bytes%2CSUM%28IF%28toString%28common_ingress_link_id%29%20%3D%20link_id%2C%20traffic_inbound_byte%2C%200%29%29%20AS%20ingress_bytes%20FROM%20metric_link%20WHERE%20stat_time%20%3E%3D%201675303793%20AND%20stat_time%20%3C%201675307393%20GROUP%20BY%20link_id&format=json&option=real-time', msg: 'OK' }
status: 200,
data: { code: 200, queryKey: '549b4c3bcabf0feee193b834671879de', success: true, message: null, statistics: { elapsed: 3, rows_read: 11480, bytes_read: 459200, result_size: 1214, result_rows: 21 }, job: null, formatType: 'json', meta: [{ name: 'link_id', type: 'string', category: 'Dimension' }, { name: 'egress_bytes', type: 'long', category: 'Metric' }, { name: 'ingress_bytes', type: 'long', category: 'Metric' }], data: { resultType: 'table', result: [{ linkId: '257', egressBytes: '0', egressBitsRate: 0, ingressBytes: '493739879', ingressBitsRate: 1097199.76 }, { linkId: '256', egressBytes: '4147998874', egressBitsRate: 9217775.28, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '1024', egressBytes: '4229808296', egressBitsRate: 9399574, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '1793', egressBytes: '0', egressBitsRate: 0, ingressBytes: '604840505', ingressBitsRate: 1344090 }, { linkId: '2817', egressBytes: '0', egressBitsRate: 0, ingressBytes: '430811638', ingressBitsRate: 957359.2 }, { linkId: '0', egressBytes: '819878366014', egressBitsRate: 1821951924.48, ingressBytes: '140774357362', ingressBitsRate: 312831905.28 }, { linkId: '1281', egressBytes: '0', egressBitsRate: 0, ingressBytes: '544675122', ingressBitsRate: 1210389.12 }, { linkId: '2049', egressBytes: '0', egressBitsRate: 0, ingressBytes: '711346274', ingressBitsRate: 1580769.52 }, { linkId: '1536', egressBytes: '4195896971', egressBitsRate: 9324215.52, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '2305', egressBytes: '0', egressBitsRate: 0, ingressBytes: '524865003', ingressBitsRate: 1166366.64 }, { linkId: '1792', egressBytes: '4145790227', egressBitsRate: 9212867.2, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '1025', egressBytes: '0', egressBitsRate: 0, ingressBytes: '492227445', ingressBitsRate: 1093838.8 }, { linkId: '2816', egressBytes: '4000074817', egressBitsRate: 8889055.12, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '513', egressBytes: '0', egressBitsRate: 0, ingressBytes: '1444814826', ingressBitsRate: 3210699.6 }, { linkId: '768', egressBytes: '4370006099', egressBitsRate: 9711124.64, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '512', egressBytes: '3894190397', egressBitsRate: 8653756.4, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '769', egressBytes: '0', egressBitsRate: 0, ingressBytes: '1877580759', ingressBitsRate: 4172401.68 }, { linkId: '2304', egressBytes: '3767761711', egressBitsRate: 8372803.84, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '1537', egressBytes: '0', egressBitsRate: 0, ingressBytes: '367986916', ingressBitsRate: 817748.72 }, { linkId: '1280', egressBytes: '4040444894', egressBitsRate: 8978766.4, ingressBytes: '0', ingressBitsRate: 0 }, { linkId: '2048', egressBytes: '4682050724', egressBitsRate: 10404557.2, ingressBytes: '0', ingressBitsRate: 0 }] }, originalUrl: 'http://192.168.44.55:9999?query=SELECT%20arrayJoin%28splitByChar%28%27_%27%2C%20concat%28toString%28common_egress_link_id%29%2C%20%27_%27%2C%20toString%28common_ingress_link_id%29%29%29%29%20AS%20link_id%2CSUM%28IF%28toString%28common_egress_link_id%29%20%3D%20link_id%2C%20traffic_outbound_byte%2C%200%29%29%20AS%20egress_bytes%2CSUM%28IF%28toString%28common_ingress_link_id%29%20%3D%20link_id%2C%20traffic_inbound_byte%2C%200%29%29%20AS%20ingress_bytes%20FROM%20metric_link%20WHERE%20stat_time%20%3E%3D%201675303793%20AND%20stat_time%20%3C%201675307393%20GROUP%20BY%20link_id&format=json&option=real-time', msg: 'OK' }
},
data2: {
data: { status: 200, code: 200, queryKey: 'ee2e820b1275748167cdee82b2b4ea40', success: true, message: null, statistics: { elapsed: 3, rows_read: 11480, bytes_read: 618564, result_size: 1053, result_rows: 10 }, job: null, formatType: 'json', meta: [{ name: 'egress_link_direction', type: 'string', category: 'Dimension' }, { name: 'ingress_link_direction', type: 'string', category: 'Dimension' }, { name: 'egress_bytes', type: 'long', category: 'Metric' }, { name: 'ingress_bytes', type: 'long', category: 'Metric' }], data: { resultType: 'table', result: [{ egressLinkDirection: '太原', ingressLinkDirection: '西宁', egressBytes: '2407509269', egressBitsRate: 5350020.56, ingressBytes: '193368911', ingressBitsRate: 429708.72 }, { egressLinkDirection: '西安', ingressLinkDirection: '西安', egressBytes: '3609358392', egressBitsRate: 8020796.4, ingressBytes: '345009143', ingressBitsRate: 766686.96 }, { egressLinkDirection: '西宁', ingressLinkDirection: '西安', egressBytes: '1273508499', egressBitsRate: 2830018.88, ingressBytes: '122646511', ingressBitsRate: 272547.84 }, { egressLinkDirection: '太原', ingressLinkDirection: '太原', egressBytes: '14840136119', egressBitsRate: 32978080.24, ingressBytes: '3386427658', ingressBitsRate: 7525394.8 }, { egressLinkDirection: '西安', ingressLinkDirection: '太原', egressBytes: '7070361369', egressBitsRate: 15711914.16, ingressBytes: '1853445429', ingressBitsRate: 4118767.6 }, { egressLinkDirection: '西宁', ingressLinkDirection: '太原', egressBytes: '2619231460', egressBitsRate: 5820514.32, ingressBytes: '291561196', ingressBitsRate: 647913.76 }, { egressLinkDirection: '', ingressLinkDirection: '', egressBytes: '409939183007', egressBitsRate: 910975962.24, ingressBytes: '70387178681', ingressBitsRate: 156415952.64 }, { egressLinkDirection: '太原', ingressLinkDirection: '西安', egressBytes: '7808050741', egressBitsRate: 17351223.84, ingressBytes: '1001570985', ingressBitsRate: 2225713.28 }, { egressLinkDirection: '西宁', ingressLinkDirection: '西宁', egressBytes: '337068337', egressBitsRate: 749040.72, ingressBytes: '165230290', ingressBitsRate: 367178.4 }, { egressLinkDirection: '西安', ingressLinkDirection: '西宁', egressBytes: '1508798824', egressBitsRate: 3352886.24, ingressBytes: '133628244', ingressBitsRate: 296951.68 }] }, originalUrl: 'http://192.168.44.55:9999?query=SELECT%20egress_link_direction%20AS%20egress_link_direction%2C%20ingress_link_direction%20AS%20ingress_link_direction%2C%20SUM%28traffic_outbound_byte%29%20AS%20egress_bytes%2C%20SUM%28traffic_inbound_byte%29%20AS%20ingress_bytes%20FROM%20metric_link%20WHERE%20stat_time%20%3E%3D%201675303793%20AND%20stat_time%20%3C%201675307393%20GROUP%20BY%20egress_link_direction%2C%20ingress_link_direction&format=json&option=real-time', msg: 'OK' }
status: 200,
data: { code: 200, queryKey: 'ee2e820b1275748167cdee82b2b4ea40', success: true, message: null, statistics: { elapsed: 3, rows_read: 11480, bytes_read: 618564, result_size: 1053, result_rows: 10 }, job: null, formatType: 'json', meta: [{ name: 'egress_link_direction', type: 'string', category: 'Dimension' }, { name: 'ingress_link_direction', type: 'string', category: 'Dimension' }, { name: 'egress_bytes', type: 'long', category: 'Metric' }, { name: 'ingress_bytes', type: 'long', category: 'Metric' }], data: { resultType: 'table', result: [{ egressLinkDirection: '太原', ingressLinkDirection: '西宁', egressBytes: '2407509269', egressBitsRate: 5350020.56, ingressBytes: '193368911', ingressBitsRate: 429708.72 }, { egressLinkDirection: '西安', ingressLinkDirection: '西安', egressBytes: '3609358392', egressBitsRate: 8020796.4, ingressBytes: '345009143', ingressBitsRate: 766686.96 }, { egressLinkDirection: '西宁', ingressLinkDirection: '西安', egressBytes: '1273508499', egressBitsRate: 2830018.88, ingressBytes: '122646511', ingressBitsRate: 272547.84 }, { egressLinkDirection: '太原', ingressLinkDirection: '太原', egressBytes: '14840136119', egressBitsRate: 32978080.24, ingressBytes: '3386427658', ingressBitsRate: 7525394.8 }, { egressLinkDirection: '西安', ingressLinkDirection: '太原', egressBytes: '7070361369', egressBitsRate: 15711914.16, ingressBytes: '1853445429', ingressBitsRate: 4118767.6 }, { egressLinkDirection: '西宁', ingressLinkDirection: '太原', egressBytes: '2619231460', egressBitsRate: 5820514.32, ingressBytes: '291561196', ingressBitsRate: 647913.76 }, { egressLinkDirection: '', ingressLinkDirection: '', egressBytes: '409939183007', egressBitsRate: 910975962.24, ingressBytes: '70387178681', ingressBitsRate: 156415952.64 }, { egressLinkDirection: '太原', ingressLinkDirection: '西安', egressBytes: '7808050741', egressBitsRate: 17351223.84, ingressBytes: '1001570985', ingressBitsRate: 2225713.28 }, { egressLinkDirection: '西宁', ingressLinkDirection: '西宁', egressBytes: '337068337', egressBitsRate: 749040.72, ingressBytes: '165230290', ingressBitsRate: 367178.4 }, { egressLinkDirection: '西安', ingressLinkDirection: '西宁', egressBytes: '1508798824', egressBitsRate: 3352886.24, ingressBytes: '133628244', ingressBitsRate: 296951.68 }] }, originalUrl: 'http://192.168.44.55:9999?query=SELECT%20egress_link_direction%20AS%20egress_link_direction%2C%20ingress_link_direction%20AS%20ingress_link_direction%2C%20SUM%28traffic_outbound_byte%29%20AS%20egress_bytes%2C%20SUM%28traffic_inbound_byte%29%20AS%20ingress_bytes%20FROM%20metric_link%20WHERE%20stat_time%20%3E%3D%201675303793%20AND%20stat_time%20%3C%201675307393%20GROUP%20BY%20egress_link_direction%2C%20ingress_link_direction&format=json&option=real-time', msg: 'OK' }
}
},
empty: {
data1: {
data: { status: 200, code: 200, data: { resultType: 'table', result: [] }, msg: 'OK' }
status: 200,
data: { code: 200, data: { resultType: 'table', result: [] }, msg: 'OK' }
},
data2: {
data: { status: 200, code: 200, data: { resultType: 'table', result: [] }, msg: 'OK' }
status: 200,
data: { code: 200, data: { resultType: 'table', result: [] }, msg: 'OK' }
}
},
boundary: {
data1: {
data: {
status: 200,
data: {
code: 200,
queryKey: '549b4c3bcabf0feee193b834671879de',
data: {
@@ -154,8 +158,8 @@ export const mockData = {
}
},
data2: {
data: {
status: 200,
data: {
code: 200,
data: {
resultType: 'table',

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,7 @@
export const mockData = {
common: {
data1: {
status: 200,
data: {
status: 200,
code: 200,
@@ -115,6 +116,7 @@ export const mockData = {
}
},
data2: {
status: 200,
data: {
status: 200,
code: 200,
@@ -180,6 +182,7 @@ export const mockData = {
},
empty: {
data1: {
status: 200,
data: {
status: 200,
code: 200,
@@ -191,6 +194,7 @@ export const mockData = {
}
},
data2: {
status: 200,
data: {
status: 200,
code: 200,
@@ -205,6 +209,7 @@ export const mockData = {
boundary: {
large: {
data1: {
status: 200,
data: {
status: 200,
code: 200,
@@ -275,6 +280,7 @@ export const mockData = {
}
},
data2: {
status: 200,
data: {
status: 200,
code: 200,
@@ -296,6 +302,7 @@ export const mockData = {
},
zero: {
data1: {
status: 200,
data: {
status: 200,
code: 200,
@@ -366,6 +373,7 @@ export const mockData = {
}
},
data2: {
status: 200,
data: {
status: 200,
code: 200,

View File

@@ -3,7 +3,8 @@ import { mount } from '@vue/test-utils'
import axios from 'axios'
import ElementPlus from 'element-plus'
import { mockData } from './mockData/NetworkOverviewApps'
import common from '@/mixins/common'
import chartMixin from '@/views/charts2/chart-mixin'
const chart = mockData.common.chart
const linkInfo = 5
@@ -49,7 +50,13 @@ function axiosPostAndMounted (Metric, flag, data) {
},
global: {
plugins: [ElementPlus]
},
data () {
return {
isUnitTesting: true
}
},
mixins: [common, chartMixin]
})
}

View File

@@ -1,6 +1,8 @@
import NetworkOverviewDdosDetection from '@/views/charts2/charts/networkOverview/NetworkOverviewDdosDetection'
import { mount } from '@vue/test-utils'
import axios from 'axios'
import common from '@/mixins/common'
import chartMixin from '@/views/charts2/chart-mixin'
import { mockData } from './mockData/NetworkOverviewDdosDetection'
const mockGet = mockData.common
@@ -25,7 +27,8 @@ function axiosPostAndMounted (data) {
wrapper = mount(NetworkOverviewDdosDetection, {
propsData: {
timeFilter
}
},
mixins: [common, chartMixin]
})
}

View File

@@ -2,6 +2,8 @@ import NetworkOverviewLine from '@/views/charts2/charts/networkOverview/NetworkO
import { mount } from '@vue/test-utils'
import axios from 'axios'
import mockData from './NetworkOverviewLineMockData'
import common from '@/mixins/common'
import chartMixin from '@/views/charts2/chart-mixin'
const timeFilter = {
dateRangeValue: -1,
@@ -22,7 +24,13 @@ describe('views/charts2/charts/networkOverview/NetworkOverviewLine.vue测试', (
propsData: {
timeFilter,
chart
},
data () {
return {
isUnitTesting: true
}
},
mixins: [common, chartMixin]
})
// 延迟等待渲染。使用wrapper.vm.$nextTick有时不管用例如组件中使用了setTimeout的时候
await new Promise(resolve => setTimeout(async () => {
@@ -48,7 +56,13 @@ describe('views/charts2/charts/networkOverview/NetworkOverviewLine.vue测试', (
propsData: {
timeFilter,
chart
},
data () {
return {
isUnitTesting: true
}
},
mixins: [common, chartMixin]
})
// 延迟等待渲染。使用wrapper.vm.$nextTick有时不管用例如组件中使用了setTimeout的时候
await new Promise(resolve => setTimeout(async () => {
@@ -77,7 +91,13 @@ describe('views/charts2/charts/networkOverview/NetworkOverviewLine.vue测试', (
propsData: {
timeFilter,
chart
},
data () {
return {
isUnitTesting: true
}
},
mixins: [common, chartMixin]
})
// 延迟等待渲染。使用wrapper.vm.$nextTick有时不管用例如组件中使用了setTimeout的时候
@@ -106,7 +126,13 @@ describe('views/charts2/charts/networkOverview/NetworkOverviewLine.vue测试', (
timeFilter,
chart,
metric: 'Packets/s'
},
data () {
return {
isUnitTesting: true
}
},
mixins: [common, chartMixin]
})
await new Promise(resolve => setTimeout(async () => {
@@ -129,7 +155,13 @@ describe('views/charts2/charts/networkOverview/NetworkOverviewLine.vue测试', (
timeFilter,
chart,
metric: 'Sessions/s'
},
data () {
return {
isUnitTesting: true
}
},
mixins: [common, chartMixin]
})
await new Promise(resolve => setTimeout(async () => {

View File

@@ -1,6 +1,7 @@
const mockData = {
// 空
empty: {
status: 200,
data: {
"status": 200,
"code": 200,
@@ -13,6 +14,7 @@ const mockData = {
bytes: {
// 边界
boundary: {
status: 200,
data: {
"status": 200,
"code": 200,
@@ -66,6 +68,7 @@ const mockData = {
},
// 正常数据
common: {
status: 200,
data: {"status":200,"code":200,"data":{"resultType":"object","result":[{"type":"bytes","totalBitsRate":{"values":[[1673247564,"96801019.52"]],"analysis":{"avg":"112042808.24","max":"301842105.76","min":"52096324","p95":"168089003.35199997"}},"inboundBitsRate":{"values":[[1673247564,"11814508.48"]],"analysis":{"avg":"18587597.36","max":"137528138.88","min":"3181142.88","p95":"49561521.447999954"}},"outboundBitsRate":{"values":[[1673247564,"84282965.52"]],"analysis":{"avg":"87557861.44","max":"290402258","min":"45337684.48","p95":"121041718.81199999"}},"internalBitsRate":{"values":[[1673247564,"9125.12"]],"analysis":{"avg":"278114.32","max":"2215460.48","min":"0","p95":"923494.5719999998"}},"throughBitsRate":{"values":[[1673247564,"694420.48"]],"analysis":{"avg":"5619235.12","max":"42455480.24","min":"262607.76","p95":"13559588.195999999"}},"other":{"values":[[1673247564,"0.00"]],"analysis":{"avg":"0.01","max":"0.08","min":"0.00","p95":"0.08"}}},{"type":"packets","totalPacketsRate":{"values":[[1673247564,"12077.53"]],"analysis":{"avg":"14062.37","max":"32840.42","min":"6564.17","p95":"20923.167999999987"}},"inboundPacketsRate":{"values":[[1673247564,"3865.58"]],"analysis":{"avg":"4241.61","max":"15460.03","min":"1918.22","p95":"8549.799999999997"}},"outboundPacketsRate":{"values":[[1673247564,"8118.89"]],"analysis":{"avg":"9170.98","max":"27134.58","min":"4510.25","p95":"13690.540999999996"}},"internalPacketsRate":{"values":[[1673247564,"15.89"]],"analysis":{"avg":"35.95","max":"276.47","min":"0.00","p95":"122.49749999999999"}},"throughPacketsRate":{"values":[[1673247564,"77.17"]],"analysis":{"avg":"613.82","max":"3768.56","min":"42.92","p95":"1279.757499999999"}},"other":{"values":[[1673247564,"0.00"]],"analysis":{"avg":"0","max":"0.01","min":"0.00","p95":"0.01"}}},{"type":"sessions","totalSessionsRate":{"values":[[1673247564,"29.92"]],"analysis":{"avg":"29.89","max":"29.92","min":"29.67","p95":"29.92"}}}]},"msg":"OK"}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +1,10 @@
export const mockData = {
common: {
status: 200,
data: { status: 200, code: 200, queryKey: 'dec6723e173e8fa2b00917dc597bfb27', success: true, message: null, statistics: { elapsed: 0, rows_read: 2, result_size: 58, result_rows: 1 }, job: null, formatType: 'json', meta: [{ name: 'attack_event_count', type: 'long', category: 'Metric' }, { name: 'attacker_count', type: 'long', category: 'Metric' }, { name: 'victim_count', type: 'long', category: 'Metric' }], data: { resultType: 'object', result: [{ attackEventCount: 1200000, attackerCount: 2687878, victimCount: 36676767 }] }, originalUrl: 'http://192.168.44.55:9999?query=SELECT%20COUNT%28*%29%20AS%20attack_event_count%2C%20COUNT%28DISTINCT%28offender_ip%29%29%20AS%20attacker_count%2C%20COUNT%28DISTINCT%28victim_ip%29%29%20AS%20victim_count%20FROM%20security_event%20WHERE%20start_time%20%3E%3D%201675043912%20AND%20start_time%20%3C%201675047512%20AND%20security_type%20%3D%20%27ddos%27&format=json&option=real-time', msg: 'OK' }
},
empty: {
status: 200,
data: {
status: 200,
code: 200,
@@ -14,6 +16,7 @@ export const mockData = {
}
},
boundary: {
status: 200,
data: {
status: 200,
code: 200,

View File

@@ -70,14 +70,14 @@ describe('views/charts2/charts/npm/NpmAppCategoryScore.vue测试', () => {
const textNode0 = wrapper.find('[test-id="score-gaming"]')
const textNode1 = wrapper.find('[test-id="score-email"]')
const textNode2 = wrapper.find('[test-id="score-file-sharing"]')
const textNode3 = wrapper.find('[test-id="score-voip-video"]')
// const textNode3 = wrapper.find('[test-id="score-voip-video"]')
const textNode4 = wrapper.find('[test-id="score-multimedia-streaming"]')
const textNode5 = wrapper.find('[test-id="score-social-networking"]')
expect(textNode0.text()).toBe('6')
expect(textNode1.text()).toBe('-')
expect(textNode2.text()).toBe('5')
expect(textNode3.text()).toBe('6')
// expect(textNode3.text()).toBe('6')
expect(textNode4.text()).toBe('5')
expect(textNode5.text()).toBe('6')
resolve()
@@ -96,14 +96,15 @@ describe('views/charts2/charts/npm/NpmAppCategoryScore.vue测试', () => {
const iconNode1 = wrapper.find('[test-id="iconContent1"]')
const iconNode2 = wrapper.find('[test-id="iconContent2"]')
const iconNode3 = wrapper.find('[test-id="iconContent3"]')
const iconNode4 = wrapper.find('[test-id="iconContent4"]')
// const iconNode4 = wrapper.find('[test-id="iconContent4"]')
// const iconNode5 = wrapper.find('[test-id="iconContent5"]')
expect(iconNode0.classes()).toContain('cn-icon-gaming')
expect(iconNode1.classes()).toContain('cn-icon-email')
expect(iconNode2.classes()).toContain('cn-icon-file-sharing')
expect(iconNode3.classes()).toContain('cn-icon-voip')
expect(iconNode4.classes()).toContain('cn-icon-video')
expect(iconNode3.classes()).toContain('cn-icon-video')
// expect(iconNode3.classes()).toContain('cn-icon-voip')
// expect(iconNode4.classes()).toContain('cn-icon-video')
// expect(iconNode5.classes()).toContain('cn-icon-social-network')
resolve()
}, 200))
@@ -118,14 +119,14 @@ describe('views/charts2/charts/npm/NpmAppCategoryScore.vue测试', () => {
const textNode0 = wrapper.find('[test-id="score-gaming"]')
const textNode1 = wrapper.find('[test-id="score-email"]')
const textNode2 = wrapper.find('[test-id="score-file-sharing"]')
const textNode3 = wrapper.find('[test-id="score-voip-video"]')
// const textNode3 = wrapper.find('[test-id="score-voip-video"]')
const textNode4 = wrapper.find('[test-id="score-multimedia-streaming"]')
const textNode5 = wrapper.find('[test-id="score-social-networking"]')
expect(textNode0.text()).toBe('6')
expect(textNode1.text()).toBe('6')
expect(textNode2.text()).toBe('-')
expect(textNode3.text()).toBe('-')
// expect(textNode3.text()).toBe('-')
expect(textNode4.text()).toBe('5')
expect(textNode5.text()).toBe('3')
resolve()
@@ -141,14 +142,14 @@ describe('views/charts2/charts/npm/NpmAppCategoryScore.vue测试', () => {
const textNode0 = wrapper.find('[test-id="inbound-gaming"]')
const textNode1 = wrapper.find('[test-id="inbound-email"]')
const textNode2 = wrapper.find('[test-id="inbound-file-sharing"]')
const textNode3 = wrapper.find('[test-id="inbound-voip-video"]')
// const textNode3 = wrapper.find('[test-id="inbound-voip-video"]')
const textNode4 = wrapper.find('[test-id="inbound-multimedia-streaming"]')
const textNode5 = wrapper.find('[test-id="inbound-social-networking"]')
expect(textNode0.text()).toBe('>500.00%')
expect(textNode1.text()).toBe('>500.00%')
expect(textNode2.text()).toBe('>500.00%')
expect(textNode3.text()).toBe('>500.00%')
// expect(textNode3.text()).toBe('>500.00%')
expect(textNode4.text()).toBe('>500.00%')
expect(textNode5.text()).toBe('>500.00%')
resolve()
@@ -165,14 +166,14 @@ describe('views/charts2/charts/npm/NpmAppCategoryScore.vue测试', () => {
const textNode0 = wrapper.find('[test-id="inbound-packet-gaming"]')
const textNode1 = wrapper.find('[test-id="inbound-packet-email"]')
const textNode2 = wrapper.find('[test-id="inbound-packet-file-sharing"]')
const textNode3 = wrapper.find('[test-id="inbound-packet-voip-video"]')
// const textNode3 = wrapper.find('[test-id="inbound-packet-voip-video"]')
const textNode4 = wrapper.find('[test-id="inbound-packet-multimedia-streaming"]')
const textNode5 = wrapper.find('[test-id="inbound-packet-social-networking"]')
expect(textNode0.text()).toBe('<0.01 bps')
expect(textNode1.text()).toBe('<0.01 bps')
expect(textNode2.text()).toBe('<0.01 bps')
expect(textNode3.text()).toBe('<0.01 bps')
// expect(textNode3.text()).toBe('<0.01 bps')
expect(textNode4.text()).toBe('<0.01 bps')
expect(textNode5.text()).toBe('<0.01 bps')
resolve()

View File

@@ -3,6 +3,7 @@ import { mount } from '@vue/test-utils'
import axios from 'axios'
import { mockData } from './mockData/NpmEventsByType'
import common from '@/mixins/common'
import chartMixin from '@/views/charts2/chart-mixin'
const mockGet = mockData.common.data
let wrapper = null
@@ -28,7 +29,12 @@ function axiosPostAndMounted (data) {
propsData: {
timeFilter
},
mixins: [common]
data () {
return {
isUnitTesting: true
}
},
mixins: [common, chartMixin]
})
}

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,8 @@
export const mockData = {
common: {
data: {
data: { status: 200, code: 200, queryKey: '88eeb92e0ddb40c0327db494cfe5c74c', success: true, message: null, statistics: { elapsed: 0, rows_read: 2, result_size: 752, result_rows: 10 }, job: null, formatType: 'json', meta: [{ name: 'app_name', type: 'string', category: 'Dimension' }, { name: 'event_severity', type: 'string', category: 'Dimension' }, { name: 'event_type', type: 'string', category: 'Dimension' }, { name: 'count', type: 'long', category: 'Metric' }], data: { resultType: 'table', result: [{ appName: 'youku', eventSeverity: 'info', eventType: 'http error', count: 6 }, { appName: 'uplive', eventSeverity: 'critical', eventType: 'http error', count: 5 }, { appName: 'youku', eventSeverity: 'low', eventType: 'http error', count: 4 }, { appName: 'apple_hls', eventSeverity: 'info', eventType: 'http error', count: 3 }, { appName: 'apple_hls', eventSeverity: 'low', eventType: 'http error', count: 3 }, { appName: 'apple_hls', eventSeverity: 'medium', eventType: 'http error', count: 2 }, { appName: 'uplive', eventSeverity: 'high', eventType: 'http error', count: 2 }, { appName: 'windows_update', eventSeverity: 'medium', eventType: 'http error', count: 2 }, { appName: 'apple_hls', eventSeverity: 'critical', eventType: 'http error', count: 1 }, { appName: 'cloudflare', eventSeverity: 'info', eventType: 'http error', count: 1 }] }, originalUrl: 'http://192.168.44.55:9999?query=SELECT%20app_name%20AS%20app_name%2C%20event_severity%20AS%20event_severity%2C%20event_type%20AS%20event_type%2C%20COUNT%28*%29%20AS%20count%20FROM%20performance_event%20WHERE%20start_time%20%3E%3D%201675580110%20AND%20end_time%20%3C%201675752910%20AND%20entity_type%20%3D%20%27app%27%20GROUP%20BY%20app_name%2Cevent_severity%2Cevent_type%20ORDER%20BY%20count%20DESC%20%20LIMIT%2010%20&format=json&option=real-time', msg: 'OK' }
status: 200,
data: { code: 200, queryKey: '88eeb92e0ddb40c0327db494cfe5c74c', success: true, message: null, statistics: { elapsed: 0, rows_read: 2, result_size: 752, result_rows: 10 }, job: null, formatType: 'json', meta: [{ name: 'app_name', type: 'string', category: 'Dimension' }, { name: 'event_severity', type: 'string', category: 'Dimension' }, { name: 'event_type', type: 'string', category: 'Dimension' }, { name: 'count', type: 'long', category: 'Metric' }], data: { resultType: 'table', result: [{ appName: 'youku', eventSeverity: 'info', eventType: 'http error', count: 6 }, { appName: 'uplive', eventSeverity: 'critical', eventType: 'http error', count: 5 }, { appName: 'youku', eventSeverity: 'low', eventType: 'http error', count: 4 }, { appName: 'apple_hls', eventSeverity: 'info', eventType: 'http error', count: 3 }, { appName: 'apple_hls', eventSeverity: 'low', eventType: 'http error', count: 3 }, { appName: 'apple_hls', eventSeverity: 'medium', eventType: 'http error', count: 2 }, { appName: 'uplive', eventSeverity: 'high', eventType: 'http error', count: 2 }, { appName: 'windows_update', eventSeverity: 'medium', eventType: 'http error', count: 2 }, { appName: 'apple_hls', eventSeverity: 'critical', eventType: 'http error', count: 1 }, { appName: 'cloudflare', eventSeverity: 'info', eventType: 'http error', count: 1 }] }, originalUrl: 'http://192.168.44.55:9999?query=SELECT%20app_name%20AS%20app_name%2C%20event_severity%20AS%20event_severity%2C%20event_type%20AS%20event_type%2C%20COUNT%28*%29%20AS%20count%20FROM%20performance_event%20WHERE%20start_time%20%3E%3D%201675580110%20AND%20end_time%20%3C%201675752910%20AND%20entity_type%20%3D%20%27app%27%20GROUP%20BY%20app_name%2Cevent_severity%2Cevent_type%20ORDER%20BY%20count%20DESC%20%20LIMIT%2010%20&format=json&option=real-time', msg: 'OK' }
}
},
empty: {

File diff suppressed because one or more lines are too long

View File

@@ -1,13 +1,14 @@
export const mockData = {
common: {
data: {
data: { status: 200, code: 200, queryKey: '6480498979f7501d822572ebeb9e9665', success: true, message: null, statistics: { elapsed: 0, rows_read: 3, result_size: 167, result_rows: 5 }, job: null, formatType: 'json', meta: [{ name: 'event_severity', type: 'string', category: 'Dimension' }, { name: 'count', type: 'long', category: 'Metric' }], data: { resultType: 'table', result: [{ eventSeverity: 'critical', count: 322334 }, { eventSeverity: 'high', count: 1111 }, { eventSeverity: 'info', count: 122222 }, { eventSeverity: 'low', count: 14456678 }, { eventSeverity: 'medium', count: 2000000 }] }, originalUrl: 'http://192.168.44.55:9999?query=SELECT%20event_severity%20AS%20event_severity%2C%20COUNT%28*%29%20AS%20count%20FROM%20performance_event%20WHERE%20start_time%20%3E%3D%201675026686%20AND%20end_time%20%3C%201675048286%20GROUP%20BY%20event_severity&format=json&option=real-time', msg: 'OK' }
status: 200,
data: { code: 200, queryKey: '6480498979f7501d822572ebeb9e9665', success: true, message: null, statistics: { elapsed: 0, rows_read: 3, result_size: 167, result_rows: 5 }, job: null, formatType: 'json', meta: [{ name: 'event_severity', type: 'string', category: 'Dimension' }, { name: 'count', type: 'long', category: 'Metric' }], data: { resultType: 'table', result: [{ eventSeverity: 'critical', count: 322334 }, { eventSeverity: 'high', count: 1111 }, { eventSeverity: 'info', count: 122222 }, { eventSeverity: 'low', count: 14456678 }, { eventSeverity: 'medium', count: 2000000 }] }, originalUrl: 'http://192.168.44.55:9999?query=SELECT%20event_severity%20AS%20event_severity%2C%20COUNT%28*%29%20AS%20count%20FROM%20performance_event%20WHERE%20start_time%20%3E%3D%201675026686%20AND%20end_time%20%3C%201675048286%20GROUP%20BY%20event_severity&format=json&option=real-time', msg: 'OK' }
}
},
empty: {
data: {
data: {
status: 200,
data: {
code: 200,
data: {
resultType: 'table',
@@ -19,6 +20,7 @@ export const mockData = {
},
boundary: {
data: {
status: 200,
data: {
status: 200,
code: 200,

File diff suppressed because one or more lines are too long

View File

@@ -1,9 +1,11 @@
export const mockData = {
common: {
data1: {
status: 200,
data: { status: 200, code: 200, queryKey: '68d8aa5867b08b926b5bd38c36add9e5', success: true, message: null, statistics: { elapsed: 0, rows_read: 2, result_size: 550, result_rows: 5 }, job: null, formatType: 'json', meta: [{ name: 'event_id', type: 'long', category: 'Metric' }, { name: 'event_severity', type: 'string', category: 'Metric' }, { name: 'event_key', type: 'string', category: 'Metric' }, { name: 'event_type', type: 'string', category: 'Metric' }], data: { resultType: 'table', result: [{ eventId: 1173511643475208200, eventSeverity: 'critical', eventKey: '114.114.114.114 dns error', eventType: 'dns error' }, { eventId: 1173504415263352800, eventSeverity: 'high', eventKey: '116.178.78.241 http error', eventType: 'http error' }, { eventId: 1173492761289025500, eventSeverity: 'medium', eventKey: '223.6.6.6 dns error', eventType: 'dns error' }, { eventId: 1173489002890651600, eventSeverity: 'low', eventKey: '114.114.114.114 dns error', eventType: 'dns error' }, { eventId: 1173482380537620500, eventSeverity: 'info', eventKey: '1.1.1.2 dns error', eventType: 'http error' }, { eventId: 1173482380537620500, eventSeverity: 'critical', eventKey: '1.1.1.2 dns error', eventType: 'dns error' }] }, originalUrl: 'http://192.168.44.55:9999?query=SELECT%20event_id%20AS%20event_id%2Cevent_severity%20AS%20event_severity%2C%20event_key%20AS%20event_key%2C%20event_type%20AS%20event_type%20FROM%20performance_event%20WHERE%20start_time%20%3E%3D%201675227528%20AND%20end_time%20%3C%201675231128%20ORDER%20BY%20start_time%20DESC%20%20LIMIT%208%20&format=json&option=real-time', msg: 'OK' }
},
data2: {
status: 200,
data: { status: 200, code: 200, queryKey: 'fc0bd92bf3b48a37310d5c004d8b7a7b', success: true, message: null, statistics: { elapsed: 0, rows_read: 2, result_size: 689, result_rows: 7 }, job: null, formatType: 'json', meta: [{ name: 'event_id', type: 'long', category: 'Metric' }, { name: 'event_severity', type: 'string', category: 'Metric' }, { name: 'event_type', type: 'string', category: 'Metric' }, { name: 'start_time', type: 'long', category: 'Metric' }], data: { resultType: 'table', result: [{ eventId: 1132790825086844900, eventSeverity: 'critical', eventType: 'http error', startTime: 1672802700 }, { eventId: 1132132403379142700, eventSeverity: 'high', eventType: 'dns error', startTime: 1672763400 }, { eventId: 1131441760155689000, eventSeverity: 'low', eventType: 'dns error', startTime: 1672722300 }, { eventId: 1131411523384598500, eventSeverity: 'medium', eventType: 'http error', startTime: 1672720500 }, { eventId: 1131390214323789800, eventSeverity: 'info', eventType: 'dns error', startTime: 1672719300 }, { eventId: 1131306200132968400, eventSeverity: 'critical', eventType: 'http error', startTime: 1672714200 }] }, originalUrl: 'http://192.168.44.55:9999?query=SELECT%20event_id%20AS%20event_id%2Cevent_severity%20AS%20event_severity%2C%20event_type%20AS%20event_type%2C%20start_time%20AS%20start_time%20FROM%20performance_event%20WHERE%20start_time%20%3E%3D%201672675200%20AND%20start_time%20%3C%201677513600%20AND%20server_ip%20%3D%20%27116.178.236.216%27%20ORDER%20BY%20start_time%20DESC&format=json&option=real-time', msg: 'OK' }
},
query: {
@@ -24,6 +26,7 @@ export const mockData = {
},
empty: {
data: {
status: 200,
data: {
status: 200,
code: 200,
@@ -37,6 +40,7 @@ export const mockData = {
},
boundary: {
data: {
status: 200,
data: {
status: 200,
code: 200,