fix(任务中心): 接口测试任务-修复点击切换任务查看报告-报告未切换显示&修复查看场景任务空白

--bug=1027494 --user=白奇 【任务中心】接口测试任务-点击切换任务查看报告-报告未切换显示 https://www.tapd.cn/55049933/s/1391137
This commit is contained in:
BAIQI 2023-07-10 22:53:13 +08:00 committed by fit2-zhao
parent fc9e7a20f1
commit c2f237a1bf
2 changed files with 366 additions and 186 deletions

View File

@ -5,55 +5,84 @@
</template> </template>
<script> <script>
import {initGlobalState, loadMicroApp} from 'qiankun'; import { initGlobalState, loadMicroApp } from "qiankun";
export default { export default {
name: 'MicroApp', name: "MicroApp",
props: { props: {
to: String, to: String,
service: String, service: String,
routeParams: null, routeParams: null,
routeName: null routeName: null,
}, },
data() { data() {
return { return {
messageEvent: initGlobalState({event: null}), messageEvent: initGlobalState({ event: null }),
microApp: null, microApp: null,
} updateTask: null,
};
}, },
watch: { watch: {
routeParams: { routeParams: {
handler() { handler() {
this.microApp.update({ this.microAppUpdate();
},
deep: true,
},
to(val) {
if (val) {
this.microAppUpdate();
}
},
service(val) {
if (val) {
this.microAppInit();
this.messageInit();
}
},
},
mounted() {
this.microAppInit();
this.messageInit();
},
methods: {
microAppUpdate() {
if (this.updateTask) {
//
clearTimeout(this.updateTask);
}
// watchVue0ms
this.updateTask = setTimeout(() => {
this.microApp?.update({
defaultPath: this.to, defaultPath: this.to,
routeParams: this.routeParams, routeParams: this.routeParams,
routeName: this.routeName, routeName: this.routeName,
}); });
}, this.$nextTick(() => {
deep: true, //
} this.updateTask = null;
}, });
mounted() { }, 0);
this.microAppInit() },
this.messageInit()
},
methods: {
microAppInit() { microAppInit() {
const microPorts = JSON.parse(sessionStorage.getItem("micro_ports")); const microPorts = JSON.parse(sessionStorage.getItem("micro_ports"));
let app = { let app = {
name: 'micro-app-' + this.service, name: "micro-app-" + this.service,
container: this.$refs.child1, container: this.$refs.child1,
entry: '//127.0.0.1:' + (microPorts[this.service] - 4000), entry: "//127.0.0.1:" + (microPorts[this.service] - 4000),
props: { props: {
defaultPath: this.to, defaultPath: this.to,
routeParams: this.routeParams, routeParams: this.routeParams,
routeName: this.routeName, routeName: this.routeName,
eventBus: this.$EventBus eventBus: this.$EventBus,
} },
}; };
if (process.env.NODE_ENV !== 'development') { if (process.env.NODE_ENV !== "development") {
// //
app.entry = app.entry.replace(/127\.0\.0\.1:\d+/g, window.location.host + "/" + this.service); app.entry = app.entry.replace(
/127\.0\.0\.1:\d+/g,
window.location.host + "/" + this.service
);
} }
this.microApp = loadMicroApp(app); this.microApp = loadMicroApp(app);
}, },
@ -61,16 +90,14 @@ export default {
this.messageEvent.onGlobalStateChange((state, prev) => {}); this.messageEvent.onGlobalStateChange((state, prev) => {});
}, },
changeState() { changeState() {
this.messageEvent.setGlobalState({b: 1}); this.messageEvent.setGlobalState({ b: 1 });
} },
}, },
beforeDestroy() { beforeDestroy() {
this.messageEvent.offGlobalStateChange() this.messageEvent.offGlobalStateChange();
this.microApp.unmount(); this.microApp.unmount();
} },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped></style>
</style>

View File

@ -1,16 +1,24 @@
<template> <template>
<div v-permission="['PROJECT_API_SCENARIO:READ','WORKSPACE_USER:READ']"> <div v-permission="['PROJECT_API_SCENARIO:READ', 'WORKSPACE_USER:READ']">
<div class="ms-header-menu align-right"> <div class="ms-header-menu align-right">
<el-tooltip effect="light" v-if="showMenu"> <el-tooltip effect="light" v-if="showMenu">
<template v-slot:content> <template v-slot:content>
<span>{{ $t('commons.task_center') }}</span> <span>{{ $t("commons.task_center") }}</span>
</template> </template>
<div @click="showTaskCenter" v-if="runningTotal > 0"> <div @click="showTaskCenter" v-if="runningTotal > 0">
<el-badge :value="runningTotal" class="item" type="primary"> <el-badge :value="runningTotal" class="item" type="primary">
<font-awesome-icon class="icon global focusing" :icon="['fas', 'tasks']"/> <font-awesome-icon
class="icon global focusing"
:icon="['fas', 'tasks']"
/>
</el-badge> </el-badge>
</div> </div>
<font-awesome-icon @click="open('API')" class="icon global focusing" :icon="['fas', 'tasks']" v-else/> <font-awesome-icon
@click="open('API')"
class="icon global focusing"
:icon="['fas', 'tasks']"
v-else
/>
</el-tooltip> </el-tooltip>
</div> </div>
<el-drawer <el-drawer
@ -21,41 +29,63 @@
:modal="false" :modal="false"
:title="$t('commons.task_center')" :title="$t('commons.task_center')"
:size="size.toString()" :size="size.toString()"
custom-class="ms-drawer-task"> custom-class="ms-drawer-task"
<el-card style="float: left;margin-top: 0px" :style="{'width': (size - 600)+'px'}" v-if="size > 600 " >
class="ms-task-container"> <el-card
<div class="ms-task-opt-btn" @click="packUp">{{ $t('commons.task_close') }}</div> style="float: left; margin-top: 0px"
<!-- 接口用例结果 --> :style="{ width: size - 600 + 'px' }"
<micro-app :to="`/definition/report/view/${reportId}`" service="api" v-if="size > 600"
v-if="executionModule === 'API' && reportType !=='API_INTEGRATED'"/> class="ms-task-container"
<!-- 接口场景报告 --> >
<micro-app :to="`/automation/report/view/${reportId}`" service="api" <div class="ms-task-opt-btn" @click="packUp">
v-if="executionModule === 'SCENARIO'|| reportType ==='API_INTEGRATED'"/> {{ $t("commons.task_close") }}
<!-- 性能测试报告 --> </div>
<micro-app :to="`/performance/report/view/${reportId}`" service="performance" <micro-app
v-if="executionModule === 'PERFORMANCE'"/> v-if="isMicroAppInited"
<!-- UI测试报告 --> :to="microAppConfig.url"
<micro-app :to="`/ui/report/view/${reportId}?showCancelButton=false`" service="ui" :service="microAppConfig.service"
v-if="executionModule === 'UI_SCENARIO'"/> />
</el-card> </el-card>
<el-card style="width: 550px;float: right"> <el-card style="width: 550px; float: right">
<div style="color: #2B415C;margin: 0px;"> <div style="color: #2b415c; margin: 0px">
<el-form label-width="95px" class="ms-el-form-item"> <el-form label-width="95px" class="ms-el-form-item">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('test_track.report.list.trigger_mode')" prop="runMode"> <el-form-item
<el-select size="mini" style="margin-right: 10px" v-model="condition.triggerMode" @change="changeInit" :label="$t('test_track.report.list.trigger_mode')"
:disabled="isDebugHistory"> prop="runMode"
<el-option v-for="item in runMode" :key="item.id" :value="item.id" :label="item.label"/> >
<el-select
size="mini"
style="margin-right: 10px"
v-model="condition.triggerMode"
@change="changeInit"
:disabled="isDebugHistory"
>
<el-option
v-for="item in runMode"
:key="item.id"
:value="item.id"
:label="item.label"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('commons.status')" prop="status"> <el-form-item :label="$t('commons.status')" prop="status">
<el-select size="mini" style="margin-right: 10px" v-model="condition.executionStatus" <el-select
@change="init(true)" size="mini"
:disabled="isDebugHistory"> style="margin-right: 10px"
<el-option v-for="item in runStatus" :key="item.id" :value="item.id" :label="item.label"/> v-model="condition.executionStatus"
@change="init(true)"
:disabled="isDebugHistory"
>
<el-option
v-for="item in runStatus"
:key="item.id"
:value="item.id"
:label="item.label"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -63,30 +93,57 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('commons.executor')" prop="status"> <el-form-item :label="$t('commons.executor')" prop="status">
<el-select v-model="condition.executor" :placeholder="$t('commons.executor')" filterable size="mini" <el-select
style="margin-right: 10px" @change="changeInit" :disabled="isDebugHistory"> v-model="condition.executor"
:placeholder="$t('commons.executor')"
filterable
size="mini"
style="margin-right: 10px"
@change="changeInit"
:disabled="isDebugHistory"
>
<el-option <el-option
v-for="item in maintainerOptions" v-for="item in maintainerOptions"
:key="item.id" :key="item.id"
:label="item.id + ' (' + item.name + ')'" :label="item.id + ' (' + item.name + ')'"
:value="item.id"> :value="item.id"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-button size="mini" class="ms-task-stop" @click="stop(null)" :disabled="isDebugHistory"> <el-button
{{ $t('report.stop_btn_all') }} size="mini"
class="ms-task-stop"
@click="stop(null)"
:disabled="isDebugHistory"
>
{{ $t("report.stop_btn_all") }}
</el-button> </el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</div> </div>
<el-divider direction="horizontal" style="width: 100%"/> <el-divider direction="horizontal" style="width: 100%" />
<el-tabs v-model="activeName" @tab-click="init(true)" v-loading="loading"> <el-tabs
<el-tab-pane :key="tab.id" :name="tab.id" :label="tab.label" v-for="tab in tabs" :disabled="isDebugHistory"> v-model="activeName"
@tab-click="init(true)"
v-loading="loading"
>
<el-tab-pane
:key="tab.id"
:name="tab.id"
:label="tab.label"
v-for="tab in tabs"
:disabled="isDebugHistory"
>
<span slot="label"> <span slot="label">
<el-badge class="ms-badge-item" v-if="showBadge(tab.id) > 0" :value="showBadge(tab.id)"> <el-badge
class="ms-badge-item"
v-if="showBadge(tab.id) > 0"
:value="showBadge(tab.id)"
>
{{ tab.label }} {{ tab.label }}
</el-badge> </el-badge>
<span style="font-size: 13px" v-else>{{ tab.label }}</span> <span style="font-size: 13px" v-else>{{ tab.label }}</span>
@ -110,14 +167,21 @@
<script> <script>
import MsDrawer from "../MsDrawer"; import MsDrawer from "../MsDrawer";
import {getCurrentProjectID, getCurrentUser} from "../../utils/token"; import { getCurrentProjectID, getCurrentUser } from "../../utils/token";
import {hasLicense, hasPermissions} from "../../utils/permission"; import { hasLicense, hasPermissions } from "../../utils/permission";
import {getProjectUsers} from "../../api/user"; import { getProjectUsers } from "../../api/user";
import {getCaseData, getScenarioData, getTaskList, getTaskSocket, stopBatchTask, stopTask} from "../../api/task"; import {
getCaseData,
getScenarioData,
getTaskList,
getTaskSocket,
stopBatchTask,
stopTask,
} from "../../api/task";
import MicroApp from "../../components/MicroApp"; import MicroApp from "../../components/MicroApp";
import {prefetchApps} from "qiankun"; import { prefetchApps } from "qiankun";
import TaskCenterItem from "./TaskCenterItem"; import TaskCenterItem from "./TaskCenterItem";
import {getUUID} from "../../utils"; import { getUUID } from "../../utils";
export default { export default {
name: "MsTaskCenter", name: "MsTaskCenter",
@ -128,9 +192,7 @@ export default {
MsTaskReportStatus: () => import("./TaskReportStatus"), MsTaskReportStatus: () => import("./TaskReportStatus"),
MsTablePagination: () => import("./TaskPagination"), MsTablePagination: () => import("./TaskPagination"),
}, },
inject: [ inject: ["reload"],
'reload'
],
data() { data() {
return { return {
runningData: {}, runningData: {},
@ -147,58 +209,63 @@ export default {
visible: false, visible: false,
showType: "", showType: "",
runMode: [ runMode: [
{id: '', label: this.$t('api_test.definition.document.data_set.all')}, { id: "", label: this.$t("api_test.definition.document.data_set.all") },
{id: 'BATCH', label: this.$t('api_test.automation.batch_execute')}, { id: "BATCH", label: this.$t("api_test.automation.batch_execute") },
{id: 'SCHEDULE', label: this.$t('commons.trigger_mode.schedule')}, { id: "SCHEDULE", label: this.$t("commons.trigger_mode.schedule") },
{id: 'MANUAL', label: this.$t('commons.trigger_mode.manual')}, { id: "MANUAL", label: this.$t("commons.trigger_mode.manual") },
{id: 'API', label: this.$t('commons.trigger_mode.api')} { id: "API", label: this.$t("commons.trigger_mode.api") },
], ],
tabs: [ tabs: [
{id: 'API', label: this.$t('task.api_title')}, { id: "API", label: this.$t("task.api_title") },
{id: 'SCENARIO', label: this.$t('task.scenario_title')}, { id: "SCENARIO", label: this.$t("task.scenario_title") },
{id: 'PERF', label: this.$t('task.perf_title')} { id: "PERF", label: this.$t("task.perf_title") },
], ],
runStatus: [ runStatus: [
{id: '', label: this.$t('api_test.definition.document.data_set.all')}, { id: "", label: this.$t("api_test.definition.document.data_set.all") },
{id: 'STARTING', label: 'Starting'}, { id: "STARTING", label: "Starting" },
{id: 'PENDING', label: 'Pending'}, { id: "PENDING", label: "Pending" },
{id: 'RUNNING', label: 'Running'}, { id: "RUNNING", label: "Running" },
{id: 'RERUNNING', label: 'Rerunning'}, { id: "RERUNNING", label: "Rerunning" },
{id: 'REPORTING', label: 'Reporting'}, { id: "REPORTING", label: "Reporting" },
{id: 'SUCCESS', label: 'Success'}, { id: "SUCCESS", label: "Success" },
{id: "FAKE_ERROR", label: 'FakeError'}, { id: "FAKE_ERROR", label: "FakeError" },
{id: 'ERROR', label: 'Error'}, { id: "ERROR", label: "Error" },
{id: 'STOPPED', label: 'Stopped'}, { id: "STOPPED", label: "Stopped" },
{id: 'COMPLETED', label: 'Completed'}, { id: "COMPLETED", label: "Completed" },
], ],
condition: {triggerMode: "", executionStatus: ""}, condition: { triggerMode: "", executionStatus: "" },
maintainerOptions: [], maintainerOptions: [],
websocket: Object, websocket: Object,
size: 600, size: 600,
reportId: "", reportId: "",
executionModule: "", executionModule: "",
reportType: "", reportType: "",
isDebugHistory: false isDebugHistory: false,
isMicroAppInited: false,
microAppConfig: {
url: "",
service: "",
},
}; };
}, },
props: { props: {
showMenu: { showMenu: {
type: Boolean, type: Boolean,
default: true default: true,
} },
}, },
computed: { computed: {
disabled() { disabled() {
return this.loading return this.loading;
}, },
}, },
created() { created() {
if (hasPermissions('PROJECT_API_SCENARIO:READ')) { if (hasPermissions("PROJECT_API_SCENARIO:READ")) {
this.condition.executor = getCurrentUser().id; this.condition.executor = getCurrentUser().id;
} }
if (hasLicense()) { if (hasLicense()) {
this.tabs.push({id: 'UI', label: this.$t('task.ui_title')}) this.tabs.push({ id: "UI", label: this.$t("task.ui_title") });
} }
this.prefetchApps(); this.prefetchApps();
}, },
@ -207,7 +274,41 @@ export default {
if (!v) { if (!v) {
this.close(); this.close();
} }
} },
reportId(v) {
//
if (
this.executionModule === "API" &&
this.reportType !== "API_INTEGRATED"
) {
this.microAppConfig = {
url: `/definition/report/view/${this.reportId}`,
service: "api",
};
} else if (
//
this.executionModule === "SCENARIO" ||
this.reportType === "API_INTEGRATED"
) {
this.microAppConfig = {
url: `/automation/report/view/${this.reportId}`,
service: "api",
};
} else if (this.executionModule === "PERFORMANCE") {
//
this.microAppConfig = {
url: `/performance/report/view/${this.reportId}`,
service: "performance",
};
} else if (this.executionModule === "UI_SCENARIO") {
// UI
this.microAppConfig = {
url: `/ui/report/view/${this.reportId}?showCancelButton=false`,
service: "ui",
};
}
this.isMicroAppInited = true;
},
}, },
methods: { methods: {
showBadge(executionModule) { showBadge(executionModule) {
@ -223,60 +324,75 @@ export default {
} }
}, },
format(item) { format(item) {
return ''; return "";
}, },
packUp() { packUp() {
this.size = 600; this.size = 600;
}, },
stop(row) { stop(row) {
if (row) { if (row) {
let request = {type: row.executionModule, reportId: row.id}; let request = { type: row.executionModule, reportId: row.id };
stopTask(request).then(response => { stopTask(request).then((response) => {
this.$success(this.$t('report.test_stop_success')); this.$success(this.$t("report.test_stop_success"));
this.init(true); this.init(true);
}); });
} else { } else {
let array = []; let array = [];
array.push({type: 'API', projectId: getCurrentProjectID(), userId: getCurrentUser().id}); array.push({
array.push({type: 'SCENARIO', projectId: getCurrentProjectID(), userId: getCurrentUser().id}); type: "API",
array.push({type: 'PERFORMANCE', projectId: getCurrentProjectID(), userId: getCurrentUser().id}); projectId: getCurrentProjectID(),
array.push({type: 'UI_SCENARIO', projectId: getCurrentProjectID(), userId: getCurrentUser().id}); userId: getCurrentUser().id,
stopBatchTask(array).then(response => { });
this.$success(this.$t('report.test_stop_success')); array.push({
type: "SCENARIO",
projectId: getCurrentProjectID(),
userId: getCurrentUser().id,
});
array.push({
type: "PERFORMANCE",
projectId: getCurrentProjectID(),
userId: getCurrentUser().id,
});
array.push({
type: "UI_SCENARIO",
projectId: getCurrentProjectID(),
userId: getCurrentUser().id,
});
stopBatchTask(array).then((response) => {
this.$success(this.$t("report.test_stop_success"));
this.init(true); this.init(true);
}); });
} }
}, },
getMaintainerOptions() { getMaintainerOptions() {
getProjectUsers() getProjectUsers().then((response) => {
.then(response => { this.maintainerOptions = response.data;
this.maintainerOptions = response.data; this.condition.executor = getCurrentUser().id;
this.condition.executor = getCurrentUser().id; });
})
}, },
initWebSocket() { initWebSocket() {
let isLicense = hasLicense(); let isLicense = hasLicense();
this.websocket = getTaskSocket(this.condition.executor,this.condition.triggerMode,isLicense || false); this.websocket = getTaskSocket(
this.condition.executor,
this.condition.triggerMode,
isLicense || false
);
this.websocket.onmessage = this.onMessage; this.websocket.onmessage = this.onMessage;
this.websocket.onopen = this.onOpen; this.websocket.onopen = this.onOpen;
this.websocket.onerror = this.onError; this.websocket.onerror = this.onError;
this.websocket.onclose = this.onClose; this.websocket.onclose = this.onClose;
}, },
onOpen() { onOpen() {},
}, onError(e) {},
onError(e) {
},
onMessage(e) { onMessage(e) {
this.loading = false; this.loading = false;
this.runningData = JSON.parse(e.data); this.runningData = JSON.parse(e.data);
this.runningTotal = this.runningData.total; this.runningTotal = this.runningData.total;
this.init(false); this.init(false);
},
onClose(e) {
}, },
onClose(e) {},
listenScreenChange() { listenScreenChange() {
if(this.size != 600) { if (this.size != 600) {
this.size = document.body.clientWidth; this.size = document.body.clientWidth;
} }
}, },
@ -306,10 +422,17 @@ export default {
getPercentage(status) { getPercentage(status) {
if (status) { if (status) {
status = status.toLowerCase(); status = status.toLowerCase();
if (status === "pending" || status === 'stopped') { if (status === "pending" || status === "stopped") {
return 0; return 0;
} }
let statusArray = ['saved', 'completed', 'success','error','pending','fake_error']; let statusArray = [
"saved",
"completed",
"success",
"error",
"pending",
"fake_error",
];
if (statusArray.includes(status)) { if (statusArray.includes(status)) {
return 100; return 100;
} }
@ -319,7 +442,15 @@ export default {
showStop(status) { showStop(status) {
if (status) { if (status) {
status = status.toLowerCase(); status = status.toLowerCase();
let statusArray = ['saved', 'completed', 'success','error','pending','fake_error', 'stopped']; let statusArray = [
"saved",
"completed",
"success",
"error",
"pending",
"fake_error",
"stopped",
];
if (statusArray.includes(status)) { if (statusArray.includes(status)) {
return false; return false;
} }
@ -329,11 +460,11 @@ export default {
getModeName(executionModule) { getModeName(executionModule) {
switch (executionModule) { switch (executionModule) {
case "SCENARIO": case "SCENARIO":
return this.$t('test_track.scenario_test_case'); return this.$t("test_track.scenario_test_case");
case "PERFORMANCE": case "PERFORMANCE":
return this.$t('test_track.performance_test_case'); return this.$t("test_track.performance_test_case");
case "API": case "API":
return this.$t('test_track.api_test_case'); return this.$t("test_track.api_test_case");
case "UI_SCENARIO": case "UI_SCENARIO":
return this.$t("test_track.ui_scenario_test_case"); return this.$t("test_track.ui_scenario_test_case");
} }
@ -346,42 +477,53 @@ export default {
let status = row.executionStatus; let status = row.executionStatus;
if (status) { if (status) {
status = row.executionStatus.toLowerCase(); status = row.executionStatus.toLowerCase();
let statusArray = ['saved', 'completed', 'success','error','pending','fake_error', 'stopped']; let statusArray = [
"saved",
"completed",
"success",
"error",
"pending",
"fake_error",
"stopped",
];
if (statusArray.includes(status)) { if (statusArray.includes(status)) {
this.executionModule = null; this.executionModule = null;
this.$nextTick(() => { this.$nextTick(() => {
this.size = window.innerWidth; this.size = window.innerWidth;
this.executionModule = row.executionModule; this.executionModule = row.executionModule;
this.reportType = row.reportType; this.reportType = row.reportType;
if (row.executionModule === 'SCENARIO' || row.reportType === 'API_INTEGRATED') { if (
row.executionModule === "SCENARIO" ||
row.reportType === "API_INTEGRATED"
) {
this.reportId = getUUID() + "[TEST-PLAN-REDIRECT]" + row.id; this.reportId = getUUID() + "[TEST-PLAN-REDIRECT]" + row.id;
} else { } else {
this.reportId = row.id; this.reportId = row.id;
} }
}) });
} else { } else {
this.$warning(this.$t('commons.run_warning')) this.$warning(this.$t("commons.run_warning"));
} }
} }
}, },
getMode(mode) { getMode(mode) {
if (mode === 'MANUAL') { if (mode === "MANUAL") {
return this.$t('commons.trigger_mode.manual'); return this.$t("commons.trigger_mode.manual");
} }
if (mode === 'SCHEDULE') { if (mode === "SCHEDULE") {
return this.$t('commons.trigger_mode.schedule'); return this.$t("commons.trigger_mode.schedule");
} }
if (mode === 'TEST_PLAN_SCHEDULE') { if (mode === "TEST_PLAN_SCHEDULE") {
return this.$t('commons.trigger_mode.schedule'); return this.$t("commons.trigger_mode.schedule");
} }
if (mode === 'API') { if (mode === "API") {
return this.$t('commons.trigger_mode.api'); return this.$t("commons.trigger_mode.api");
} }
if (mode === 'BATCH') { if (mode === "BATCH") {
return this.$t('api_test.automation.batch_execute'); return this.$t("api_test.automation.batch_execute");
} }
if (mode.startsWith('JENKINS')) { if (mode.startsWith("JENKINS")) {
return this.$t('commons.trigger_mode.api'); return this.$t("commons.trigger_mode.api");
} }
return mode; return mode;
}, },
@ -393,7 +535,7 @@ export default {
this.pageSize = pageSize; this.pageSize = pageSize;
this.init(true); this.init(true);
}, },
changeInit(){ changeInit() {
if (this.websocket && this.websocket.close instanceof Function) { if (this.websocket && this.websocket.close instanceof Function) {
this.websocket.close(); this.websocket.close();
} }
@ -408,33 +550,35 @@ export default {
this.condition.userId = getCurrentUser().id; this.condition.userId = getCurrentUser().id;
this.condition.activeName = this.activeName; this.condition.activeName = this.activeName;
this.loading = loading; this.loading = loading;
this.result = getTaskList(this.condition, this.currentPage, this.pageSize) this.result = getTaskList(
.then(response => { this.condition,
this.total = response.data.itemCount; this.currentPage,
this.taskData = response.data.listObject; this.pageSize
this.loading = false; ).then((response) => {
}); this.total = response.data.itemCount;
this.taskData = response.data.listObject;
this.loading = false;
});
}, },
setActiveName() { setActiveName() {
if (this.runningData.apiTotal > 0) { if (this.runningData.apiTotal > 0) {
this.activeName = 'API'; this.activeName = "API";
} else if (this.runningData.scenarioTotal > 0) { } else if (this.runningData.scenarioTotal > 0) {
this.activeName = 'SCENARIO'; this.activeName = "SCENARIO";
} else if (this.runningData.perfTotal > 0) { } else if (this.runningData.perfTotal > 0) {
this.activeName = 'PERF'; this.activeName = "PERF";
} else if (this.runningData.uiTotal > 0) { } else if (this.runningData.uiTotal > 0) {
this.activeName = 'UI'; this.activeName = "UI";
} }
}, },
initCaseHistory(id) { initCaseHistory(id) {
getCaseData(id) getCaseData(id).then((response) => {
.then(response => { this.taskData = response.data;
this.taskData = response.data; });
})
}, },
openHistory(id) { openHistory(id) {
window.addEventListener("resize", this.listenScreenChange, false); window.addEventListener("resize", this.listenScreenChange, false);
this.activeName = 'API'; this.activeName = "API";
this.initCaseHistory(id); this.initCaseHistory(id);
this.taskVisible = true; this.taskVisible = true;
this.isDebugHistory = true; this.isDebugHistory = true;
@ -443,11 +587,10 @@ export default {
}, },
openScenarioHistory(id) { openScenarioHistory(id) {
window.addEventListener("resize", this.listenScreenChange, false); window.addEventListener("resize", this.listenScreenChange, false);
this.activeName = 'SCENARIO'; this.activeName = "SCENARIO";
getScenarioData(id) getScenarioData(id).then((response) => {
.then(response => { this.taskData = response.data;
this.taskData = response.data; });
});
this.showType = "SCENARIO"; this.showType = "SCENARIO";
this.isDebugHistory = true; this.isDebugHistory = true;
this.condition.triggerMode = "MANUAL"; this.condition.triggerMode = "MANUAL";
@ -457,28 +600,39 @@ export default {
const microPorts = JSON.parse(sessionStorage.getItem("micro_ports")); const microPorts = JSON.parse(sessionStorage.getItem("micro_ports"));
let apps = []; let apps = [];
if (microPorts.api) { if (microPorts.api) {
apps.push({name: 'api', entry: '//127.0.0.1:' + (microPorts.api - 4000)}) apps.push({
name: "api",
entry: "//127.0.0.1:" + (microPorts.api - 4000),
});
} }
if (microPorts.performance) { if (microPorts.performance) {
apps.push({name: 'performance', entry: '//127.0.0.1:' + (microPorts.performance - 4000)}) apps.push({
name: "performance",
entry: "//127.0.0.1:" + (microPorts.performance - 4000),
});
} }
if (microPorts.ui) { if (microPorts.ui) {
apps.push({name: 'ui', entry: '//127.0.0.1:' + (microPorts.ui - 4000)}) apps.push({
name: "ui",
entry: "//127.0.0.1:" + (microPorts.ui - 4000),
});
} }
if (process.env.NODE_ENV !== 'development') { if (process.env.NODE_ENV !== "development") {
// //
apps.forEach(app => { apps.forEach((app) => {
app.entry = app.entry.replace(/127\.0\.0\.1:\d+/g, window.location.host + "/" + app.name); app.entry = app.entry.replace(
}) /127\.0\.0\.1:\d+/g,
window.location.host + "/" + app.name
);
});
} }
prefetchApps(apps); prefetchApps(apps);
} },
} },
}; };
</script> </script>
<style scoped> <style scoped>
.align-right { .align-right {
float: right; float: right;
@ -491,8 +645,8 @@ export default {
:deep(.el-drawer__header) { :deep(.el-drawer__header) {
font-size: 14px; font-size: 14px;
color: #0a0a0a; color: #0a0a0a;
border-bottom: 1px solid #E6E6E6; border-bottom: 1px solid #e6e6e6;
background-color: #FFF; background-color: #fff;
margin-bottom: 0px; margin-bottom: 0px;
padding-top: 6px; padding-top: 6px;
padding-bottom: 6px; padding-bottom: 6px;
@ -500,7 +654,7 @@ export default {
.global { .global {
color: rgb(96, 98, 102); color: rgb(96, 98, 102);
font-size: 14px font-size: 14px;
} }
.ms-header-menu { .ms-header-menu {
@ -522,12 +676,11 @@ export default {
} }
.ms-task-stop { .ms-task-stop {
color: #F56C6C; color: #f56c6c;
float: right; float: right;
margin-right: 20px; margin-right: 20px;
} }
.ms-task-stop { .ms-task-stop {
color: #909399; color: #909399;
} }