fix(测试跟踪): 修复列表执行case卡住的缺陷
--bug=1021859 --user=王孝刚 【测试跟踪】测试计划详情里执行接口用例,状态是stopped的在执行的结果弹框里会一直转圈 https://www.tapd.cn/55049933/s/1339663
This commit is contained in:
parent
3c26b3cac7
commit
9e69c839f8
|
@ -9,6 +9,7 @@
|
||||||
:read-only="true"
|
:read-only="true"
|
||||||
:modes="modes"
|
:modes="modes"
|
||||||
:data.sync="responseResult.body"
|
:data.sync="responseResult.body"
|
||||||
|
height="250px"
|
||||||
ref="codeEdit" />
|
ref="codeEdit" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
||||||
|
|
|
@ -498,6 +498,9 @@ export default {
|
||||||
});
|
});
|
||||||
param.config.commonConfig.hosts = validHosts;
|
param.config.commonConfig.hosts = validHosts;
|
||||||
}
|
}
|
||||||
|
param.config.commonConfig.variables.forEach(variable => {
|
||||||
|
delete variable.hidden;
|
||||||
|
})
|
||||||
param.config = JSON.stringify(param.config);
|
param.config = JSON.stringify(param.config);
|
||||||
return param;
|
return param;
|
||||||
},
|
},
|
||||||
|
|
|
@ -306,6 +306,7 @@ export default {
|
||||||
if (isNeedCreate) {
|
if (isNeedCreate) {
|
||||||
this.items.push(new KeyValue({ enable: true, id: getUUID(), type: 'CONSTANT', scope: 'api' }));
|
this.items.push(new KeyValue({ enable: true, id: getUUID(), type: 'CONSTANT', scope: 'api' }));
|
||||||
}
|
}
|
||||||
|
this.currentPage = Math.ceil(this.items.length / this.pageSize);
|
||||||
this.$emit('change', this.items);
|
this.$emit('change', this.items);
|
||||||
// TODO 检查key重复
|
// TODO 检查key重复
|
||||||
},
|
},
|
||||||
|
@ -391,9 +392,9 @@ export default {
|
||||||
},
|
},
|
||||||
filter(scope) {
|
filter(scope) {
|
||||||
let datas = [];
|
let datas = [];
|
||||||
this.variables.forEach((item) => {
|
this.items.forEach((item) => {
|
||||||
if (this.selectVariable && this.selectVariable != '' && item.name) {
|
if (this.selectVariable && this.selectVariable != '' && item.name) {
|
||||||
if (item.name.toLowerCase().indexOf(this.selectVariable.toLowerCase()) == -1) {
|
if (item.name.toLowerCase().indexOf(this.selectVariable.toLowerCase()) === -1) {
|
||||||
item.hidden = true;
|
item.hidden = true;
|
||||||
} else {
|
} else {
|
||||||
item.hidden = undefined;
|
item.hidden = undefined;
|
||||||
|
@ -401,9 +402,19 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
item.hidden = undefined;
|
item.hidden = undefined;
|
||||||
}
|
}
|
||||||
datas.push(item);
|
if (!item.hidden) {
|
||||||
|
datas.push(item);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
this.variables = datas;
|
this.total = datas.length;
|
||||||
|
// 如果是第一页,则截取0到pageSize(每页显示多少条数据)即可
|
||||||
|
if (this.currentPage == 1) {
|
||||||
|
this.variables = datas.slice(0, this.pageSize);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let start = (this.currentPage - 1) * this.pageSize;
|
||||||
|
let end = this.currentPage * this.pageSize;
|
||||||
|
this.variables = datas.slice(start, end);
|
||||||
},
|
},
|
||||||
filterScope(value, row) {
|
filterScope(value, row) {
|
||||||
if (value == 'ui') {
|
if (value == 'ui') {
|
||||||
|
@ -467,6 +478,7 @@ export default {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
this.currentPage = Math.ceil(this.items.length / this.pageSize);
|
||||||
},
|
},
|
||||||
onChange() {
|
onChange() {
|
||||||
this.sortParameters();
|
this.sortParameters();
|
||||||
|
@ -508,15 +520,16 @@ export default {
|
||||||
importData.id = getUUID();
|
importData.id = getUUID();
|
||||||
importData.enable = true;
|
importData.enable = true;
|
||||||
importData.showMore = false;
|
importData.showMore = false;
|
||||||
let sameNameIndex = this.variables.findIndex((d) => d.name === importData.name);
|
let sameNameIndex = this.items.findIndex((d) => d.name === importData.name);
|
||||||
if (sameNameIndex !== -1) {
|
if (sameNameIndex !== -1) {
|
||||||
if (modeId === 'fullCoverage') {
|
if (modeId === 'fullCoverage') {
|
||||||
this.variables.splice(sameNameIndex, 1, importData);
|
this.items.splice(sameNameIndex, 1, importData);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.variables.splice(this.variables.length - 1, 0, importData);
|
this.items.splice(this.items.length - 1, 0, importData);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
this.currentPage = Math.ceil(this.items.length / this.pageSize);
|
||||||
},
|
},
|
||||||
handleExportCommand(command) {
|
handleExportCommand(command) {
|
||||||
this.exportJSON();
|
this.exportJSON();
|
||||||
|
@ -528,6 +541,7 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
//历史数据默认是 api 应用场景
|
//历史数据默认是 api 应用场景
|
||||||
_.forEach(this.items, (item) => {
|
_.forEach(this.items, (item) => {
|
||||||
|
delete item.hidden;
|
||||||
if (!item.scope) {
|
if (!item.scope) {
|
||||||
this.$set(item, 'scope', 'api');
|
this.$set(item, 'scope', 'api');
|
||||||
}
|
}
|
||||||
|
|
|
@ -498,6 +498,9 @@ export default {
|
||||||
});
|
});
|
||||||
param.config.commonConfig.hosts = validHosts;
|
param.config.commonConfig.hosts = validHosts;
|
||||||
}
|
}
|
||||||
|
param.config.commonConfig.variables.forEach(variable => {
|
||||||
|
delete variable.hidden;
|
||||||
|
})
|
||||||
param.config = JSON.stringify(param.config);
|
param.config = JSON.stringify(param.config);
|
||||||
return param;
|
return param;
|
||||||
},
|
},
|
||||||
|
|
|
@ -5,3 +5,8 @@ const BASE_URL = '/api/definition/report/';
|
||||||
export function apiDefinitionPlanReportGetByCaseId(caseId) {
|
export function apiDefinitionPlanReportGetByCaseId(caseId) {
|
||||||
return get(BASE_URL + `plan/getReport/${caseId}/API_PLAN`);
|
return get(BASE_URL + `plan/getReport/${caseId}/API_PLAN`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getApiReportDetail(id) {
|
||||||
|
let url = '/api/definition/report/get/' + id;
|
||||||
|
return get(url);
|
||||||
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<el-dialog :close-on-click-modal="false" :title="'测试结果'" width="60%"
|
<el-dialog :close-on-click-modal="false" :title="'测试结果'" width="60%" height="300px"
|
||||||
:visible.sync="visible" class="api-import" @close="close">
|
:visible.sync="visible" class="api-import" @close="close">
|
||||||
<div v-loading="loading">
|
<div v-loading="loading">
|
||||||
<micro-app v-if="showReport" route-name="ApiReportView"
|
<micro-app v-if="showReport" route-name="ApiReportView"
|
||||||
|
@ -12,6 +12,7 @@
|
||||||
<script>
|
<script>
|
||||||
import MicroApp from "metersphere-frontend/src/components/MicroApp";
|
import MicroApp from "metersphere-frontend/src/components/MicroApp";
|
||||||
import {apiDefinitionPlanReportGetByCaseId} from "@/api/remote/api/api-definition-report";
|
import {apiDefinitionPlanReportGetByCaseId} from "@/api/remote/api/api-definition-report";
|
||||||
|
import {getApiReportDetail} from "@/api/remote/api/api-definition-report";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "TestPlanApiCaseResult",
|
name: "TestPlanApiCaseResult",
|
||||||
|
@ -46,11 +47,25 @@ export default {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
getReport(reportId) {
|
||||||
|
getApiReportDetail(reportId).then((response) => {
|
||||||
|
this.response = {};
|
||||||
|
if (!response.data ||(response.data.status && response.data.status.toUpperCase() === 'RUNNING') ) {
|
||||||
|
setTimeout(this.getReport(reportId), 1000);
|
||||||
|
} else {
|
||||||
|
this.loading = false;
|
||||||
|
this.showReport = true;
|
||||||
|
this.response = JSON.parse(response.data.content);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
open(reportId) {
|
open(reportId) {
|
||||||
this.visible = true;
|
this.visible = true;
|
||||||
this.showReport = false;
|
this.showReport = false;
|
||||||
|
this.loading = true;
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.showReport = true;
|
this.getReport(reportId);
|
||||||
this.reportId = reportId;
|
this.reportId = reportId;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue