Merge branch 'dev' of github.com:fit2cloudrd/metersphere-server into dev
This commit is contained in:
commit
ffdf8ef805
|
@ -124,11 +124,17 @@ public class TestCaseNodeService {
|
||||||
|
|
||||||
testCases.forEach(testCase -> {
|
testCases.forEach(testCase -> {
|
||||||
StringBuilder path = new StringBuilder(testCase.getNodePath());
|
StringBuilder path = new StringBuilder(testCase.getNodePath());
|
||||||
List<String> list = Arrays.asList(path.toString().split("/"));
|
List<String> pathLists = Arrays.asList(path.toString().split("/"));
|
||||||
list.set(request.getLevel(), request.getName());
|
|
||||||
|
if (request.getLevel() <= pathLists.size()) {
|
||||||
|
pathLists.set(request.getLevel(), request.getName());
|
||||||
|
} else {
|
||||||
|
pathLists.add(request.getName());
|
||||||
|
}
|
||||||
|
|
||||||
path.delete( 0, path.length());
|
path.delete( 0, path.length());
|
||||||
for (int i = 1; i < list.size(); i++) {
|
for (int i = 1; i < pathLists.size(); i++) {
|
||||||
path = path.append("/").append(list.get(i));
|
path = path.append("/").append(pathLists.get(i));
|
||||||
}
|
}
|
||||||
testCase.setNodePath(path.toString());
|
testCase.setNodePath(path.toString());
|
||||||
});
|
});
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
<template>
|
||||||
|
<el-card class="table-card" v-loading="result.loading">
|
||||||
|
<template v-slot:header>
|
||||||
|
<span class="title">{{$t('api_report.title')}}</span>
|
||||||
|
</template>
|
||||||
|
<el-table :data="tableData" class="table-content">
|
||||||
|
<el-table-column :label="$t('commons.name')" width="150" show-overflow-tooltip>
|
||||||
|
<template v-slot:default="scope">
|
||||||
|
<el-link type="info" @click="link(scope.row)">{{ scope.row.name }}</el-link>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column width="250" :label="$t('commons.create_time')">
|
||||||
|
<template v-slot:default="scope">
|
||||||
|
<span>{{ scope.row.createTime | timestampFormatDate }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column width="250" :label="$t('commons.update_time')">
|
||||||
|
<template v-slot:default="scope">
|
||||||
|
<span>{{ scope.row.updateTime | timestampFormatDate }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="status" :label="$t('commons.status')">
|
||||||
|
<template v-slot:default="{row}">
|
||||||
|
<ms-api-report-status :row="row"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import MsApiReportStatus from "../report/ApiReportStatus";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "MsApiReportRecentList",
|
||||||
|
|
||||||
|
components: {MsApiReportStatus},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
result: {},
|
||||||
|
tableData: [],
|
||||||
|
loading: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
search() {
|
||||||
|
this.result = this.$get("/api/report/recent/5", response => {
|
||||||
|
this.tableData = response.data;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
link(row) {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/api/report/view/' + row.id,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
created() {
|
||||||
|
this.search();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
|
@ -1,14 +1,29 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<ms-container>
|
||||||
<h1>API测试首页</h1>
|
<ms-main-container>
|
||||||
</div>
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="12">
|
||||||
|
<ms-api-test-recent-list/>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<ms-api-report-recent-list/>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</ms-main-container>
|
||||||
|
</ms-container>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
import MsContainer from "../../common/components/MsContainer";
|
||||||
name: "ApiTestHome"
|
import MsMainContainer from "../../common/components/MsMainContainer";
|
||||||
}
|
import MsApiTestRecentList from "./ApiTestRecentList";
|
||||||
|
import MsApiReportRecentList from "./ApiReportRecentList";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "ApiTestHome",
|
||||||
|
components: {MsApiReportRecentList, MsApiTestRecentList, MsMainContainer, MsContainer}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
<template>
|
||||||
|
<el-card class="table-card" v-loading="result.loading">
|
||||||
|
<template v-slot:header>
|
||||||
|
<span class="title">{{$t('api_test.title')}}</span>
|
||||||
|
</template>
|
||||||
|
<el-table :data="tableData" class="table-content">
|
||||||
|
<el-table-column :label="$t('commons.name')" width="150" show-overflow-tooltip>
|
||||||
|
<template v-slot:default="scope">
|
||||||
|
<el-link type="info" @click="link(scope.row)">{{ scope.row.name }}</el-link>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="projectName" :label="$t('load_test.project_name')" width="150" show-overflow-tooltip/>
|
||||||
|
<el-table-column width="250" :label="$t('commons.create_time')">
|
||||||
|
<template v-slot:default="scope">
|
||||||
|
<span>{{ scope.row.createTime | timestampFormatDate }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column width="250" :label="$t('commons.update_time')">
|
||||||
|
<template v-slot:default="scope">
|
||||||
|
<span>{{ scope.row.updateTime | timestampFormatDate }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="status" :label="$t('commons.status')">
|
||||||
|
<template v-slot:default="{row}">
|
||||||
|
<ms-api-test-status :row="row"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import MsApiTestStatus from "../test/ApiTestStatus";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "MsApiTestRecentList",
|
||||||
|
|
||||||
|
components: {MsApiTestStatus},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
result: {},
|
||||||
|
tableData: [],
|
||||||
|
loading: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
search() {
|
||||||
|
this.result = this.$get("/api/recent/5", response => {
|
||||||
|
this.tableData = response.data;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
link(row) {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/api/test/edit?id=' + row.id,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
created() {
|
||||||
|
this.search();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
|
@ -1,72 +1,30 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="container" v-loading="result.loading">
|
<ms-container>
|
||||||
<div class="main-content">
|
<ms-main-container>
|
||||||
<el-card class="table-card">
|
<el-card class="table-card" v-loading="result.loading">
|
||||||
<template v-slot:header>
|
<template v-slot:header>
|
||||||
<ms-table-header :condition.sync="condition" @search="search" :title="$t('commons.test')"
|
<ms-table-header :condition.sync="condition" @search="search" :title="$t('api_report.title')"
|
||||||
:show-create="false"/>
|
:show-create="false"/>
|
||||||
</template>
|
</template>
|
||||||
<el-table :data="tableData" class="table-content">
|
<el-table :data="tableData" class="table-content">
|
||||||
<el-table-column
|
<el-table-column prop="name" :label="$t('commons.name')" width="150" show-overflow-tooltip>
|
||||||
prop="name"
|
|
||||||
:label="$t('commons.name')"
|
|
||||||
width="150"
|
|
||||||
show-overflow-tooltip>
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- <el-table-column-->
|
<el-table-column width="250" :label="$t('commons.create_time')">
|
||||||
<!-- prop="description"-->
|
|
||||||
<!-- :label="$t('commons.description')"-->
|
|
||||||
<!-- show-overflow-tooltip>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<el-table-column
|
|
||||||
width="250"
|
|
||||||
:label="$t('commons.create_time')">
|
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
<span>{{ scope.row.createTime | timestampFormatDate }}</span>
|
<span>{{ scope.row.createTime | timestampFormatDate }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column width="250" :label="$t('commons.update_time')">
|
||||||
width="250"
|
|
||||||
:label="$t('commons.update_time')">
|
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
<span>{{ scope.row.updateTime | timestampFormatDate }}</span>
|
<span>{{ scope.row.updateTime | timestampFormatDate }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column prop="status" :label="$t('commons.status')">
|
||||||
prop="status"
|
|
||||||
:label="$t('commons.status')">
|
|
||||||
<template v-slot:default="{row}">
|
<template v-slot:default="{row}">
|
||||||
<el-tag size="mini" type="info" v-if="row.status === 'Saved'">
|
<ms-api-report-status :row="row"/>
|
||||||
{{ row.status }}
|
|
||||||
</el-tag>
|
|
||||||
<el-tag size="mini" type="primary" v-else-if="row.status === 'Starting'">
|
|
||||||
{{ row.status }}
|
|
||||||
</el-tag>
|
|
||||||
<el-tag size="mini" type="success" v-else-if="row.status === 'Running'">
|
|
||||||
{{ row.status }}
|
|
||||||
</el-tag>
|
|
||||||
<el-tag size="mini" type="warning" v-else-if="row.status === 'Reporting'">
|
|
||||||
{{ row.status }}
|
|
||||||
</el-tag>
|
|
||||||
<el-tag size="mini" type="info" v-else-if="row.status === 'Completed'">
|
|
||||||
{{ row.status }}
|
|
||||||
</el-tag>
|
|
||||||
<el-tooltip placement="top" v-else-if="row.status === 'Error'" effect="light">
|
|
||||||
<template v-slot:content>
|
|
||||||
<div>{{row.description}}</div>
|
|
||||||
</template>
|
|
||||||
<el-tag size="mini" type="danger">
|
|
||||||
{{ row.status }}
|
|
||||||
</el-tag>
|
|
||||||
</el-tooltip>
|
|
||||||
<span v-else>
|
|
||||||
{{ row.status }}
|
|
||||||
</span>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column width="150" :label="$t('commons.operating')">
|
||||||
width="150"
|
|
||||||
:label="$t('commons.operating')">
|
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
<el-button @click="handleView(scope.row)" type="primary" icon="el-icon-s-data" size="mini" circle/>
|
<el-button @click="handleView(scope.row)" type="primary" icon="el-icon-s-data" size="mini" circle/>
|
||||||
<el-button @click="handleDelete(scope.row)" type="danger" icon="el-icon-delete" size="mini" circle/>
|
<el-button @click="handleDelete(scope.row)" type="danger" icon="el-icon-delete" size="mini" circle/>
|
||||||
|
@ -76,21 +34,23 @@
|
||||||
<ms-table-pagination :change="search" :current-page.sync="currentPage" :page-size.sync="pageSize"
|
<ms-table-pagination :change="search" :current-page.sync="currentPage" :page-size.sync="pageSize"
|
||||||
:total="total"/>
|
:total="total"/>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</ms-main-container>
|
||||||
</div>
|
</ms-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import MsTablePagination from "../../common/pagination/TablePagination";
|
import MsTablePagination from "../../common/pagination/TablePagination";
|
||||||
import MsTableHeader from "../../common/components/MsTableHeader";
|
import MsTableHeader from "../../common/components/MsTableHeader";
|
||||||
|
import MsContainer from "../../common/components/MsContainer";
|
||||||
|
import MsMainContainer from "../../common/components/MsMainContainer";
|
||||||
|
import MsApiReportStatus from "./ApiReportStatus";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {MsTableHeader, MsTablePagination},
|
components: {MsApiReportStatus, MsMainContainer, MsContainer, MsTableHeader, MsTablePagination},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
result: {},
|
result: {},
|
||||||
condition: {name: ""},
|
condition: {name: ""},
|
||||||
projectId: null,
|
|
||||||
tableData: [],
|
tableData: [],
|
||||||
multipleSelection: [],
|
multipleSelection: [],
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-tag size="mini" type="primary" v-if="row.status === 'Starting'">
|
||||||
|
{{ row.status }}
|
||||||
|
</el-tag>
|
||||||
|
<el-tag size="mini" type="success" v-else-if="row.status === 'Running'">
|
||||||
|
{{ row.status }}
|
||||||
|
</el-tag>
|
||||||
|
<el-tag size="mini" type="warning" v-else-if="row.status === 'Reporting'">
|
||||||
|
{{ row.status }}
|
||||||
|
</el-tag>
|
||||||
|
<el-tooltip placement="top" v-else-if="row.status === 'Error'" effect="light">
|
||||||
|
<template v-slot:content>
|
||||||
|
<div>{{row.description}}</div>
|
||||||
|
</template>
|
||||||
|
<el-tag size="mini" type="danger">
|
||||||
|
{{ row.status }}
|
||||||
|
</el-tag>
|
||||||
|
</el-tooltip>
|
||||||
|
<el-tag size="mini" type="info">
|
||||||
|
{{ row.status }}
|
||||||
|
</el-tag>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "MsApiReportStatus",
|
||||||
|
|
||||||
|
props: {
|
||||||
|
row: Object
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
|
@ -75,7 +75,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.scenario-result + .scenario-result {
|
.scenario-result + .scenario-result {
|
||||||
border-top: 1px solid #EBEEF5;
|
border-top: 1px solid #DCDFE6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.scenario-result .info {
|
.scenario-result .info {
|
||||||
|
|
|
@ -1,78 +1,32 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="container" v-loading="result.loading">
|
<ms-container>
|
||||||
<div class="main-content">
|
<ms-main-container>
|
||||||
<el-card class="table-card">
|
<el-card class="table-card" v-loading="result.loading">
|
||||||
<template v-slot:header>
|
<template v-slot:header>
|
||||||
<ms-table-header :condition.sync="condition" @search="search" :title="$t('commons.test')"
|
<ms-table-header :condition.sync="condition" @search="search" :title="$t('api_test.title')"
|
||||||
@create="create" :createTip="$t('load_test.create')"/>
|
@create="create" :createTip="$t('load_test.create')"/>
|
||||||
</template>
|
</template>
|
||||||
<el-table :data="tableData" class="table-content">
|
<el-table :data="tableData" class="table-content">
|
||||||
<el-table-column
|
<el-table-column prop="name" :label="$t('commons.name')" width="150" show-overflow-tooltip>
|
||||||
prop="name"
|
|
||||||
:label="$t('commons.name')"
|
|
||||||
width="150"
|
|
||||||
show-overflow-tooltip>
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- <el-table-column-->
|
<el-table-column prop="projectName" :label="$t('load_test.project_name')" width="150" show-overflow-tooltip>
|
||||||
<!-- prop="description"-->
|
|
||||||
<!-- :label="$t('commons.description')"-->
|
|
||||||
<!-- show-overflow-tooltip>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<el-table-column
|
|
||||||
prop="projectName"
|
|
||||||
:label="$t('load_test.project_name')"
|
|
||||||
width="150"
|
|
||||||
show-overflow-tooltip>
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column width="250" :label="$t('commons.create_time')">
|
||||||
width="250"
|
|
||||||
:label="$t('commons.create_time')">
|
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
<span>{{ scope.row.createTime | timestampFormatDate }}</span>
|
<span>{{ scope.row.createTime | timestampFormatDate }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column width="250" :label="$t('commons.update_time')">
|
||||||
width="250"
|
|
||||||
:label="$t('commons.update_time')">
|
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
<span>{{ scope.row.updateTime | timestampFormatDate }}</span>
|
<span>{{ scope.row.updateTime | timestampFormatDate }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column prop="status" :label="$t('commons.status')">
|
||||||
prop="status"
|
|
||||||
:label="$t('commons.status')">
|
|
||||||
<template v-slot:default="{row}">
|
<template v-slot:default="{row}">
|
||||||
<el-tag size="mini" type="info" v-if="row.status === 'Saved'">
|
<ms-api-test-status :row="row"/>
|
||||||
{{ row.status }}
|
|
||||||
</el-tag>
|
|
||||||
<el-tag size="mini" type="primary" v-else-if="row.status === 'Starting'">
|
|
||||||
{{ row.status }}
|
|
||||||
</el-tag>
|
|
||||||
<el-tag size="mini" type="success" v-else-if="row.status === 'Running'">
|
|
||||||
{{ row.status }}
|
|
||||||
</el-tag>
|
|
||||||
<el-tag size="mini" type="warning" v-else-if="row.status === 'Reporting'">
|
|
||||||
{{ row.status }}
|
|
||||||
</el-tag>
|
|
||||||
<el-tag size="mini" type="info" v-else-if="row.status === 'Completed'">
|
|
||||||
{{ row.status }}
|
|
||||||
</el-tag>
|
|
||||||
<el-tooltip placement="top" v-else-if="row.status === 'Error'" effect="light">
|
|
||||||
<template v-slot:content>
|
|
||||||
<div>{{row.description}}</div>
|
|
||||||
</template>
|
|
||||||
<el-tag size="mini" type="danger">
|
|
||||||
{{ row.status }}
|
|
||||||
</el-tag>
|
|
||||||
</el-tooltip>
|
|
||||||
<span v-else>
|
|
||||||
{{ row.status }}
|
|
||||||
</span>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column width="150" :label="$t('commons.operating')">
|
||||||
width="150"
|
|
||||||
:label="$t('commons.operating')">
|
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
<ms-table-operator @editClick="handleEdit(scope.row)" @deleteClick="handleDelete(scope.row)"/>
|
<ms-table-operator @editClick="handleEdit(scope.row)" @deleteClick="handleDelete(scope.row)"/>
|
||||||
</template>
|
</template>
|
||||||
|
@ -81,17 +35,20 @@
|
||||||
<ms-table-pagination :change="search" :current-page.sync="currentPage" :page-size.sync="pageSize"
|
<ms-table-pagination :change="search" :current-page.sync="currentPage" :page-size.sync="pageSize"
|
||||||
:total="total"/>
|
:total="total"/>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</ms-main-container>
|
||||||
</div>
|
</ms-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import MsTablePagination from "../../common/pagination/TablePagination";
|
import MsTablePagination from "../../common/pagination/TablePagination";
|
||||||
import MsTableHeader from "../../common/components/MsTableHeader";
|
import MsTableHeader from "../../common/components/MsTableHeader";
|
||||||
import MsTableOperator from "../../common/components/MsTableOperator";
|
import MsTableOperator from "../../common/components/MsTableOperator";
|
||||||
|
import MsContainer from "../../common/components/MsContainer";
|
||||||
|
import MsMainContainer from "../../common/components/MsMainContainer";
|
||||||
|
import MsApiTestStatus from "./ApiTestStatus";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {MsTableHeader, MsTablePagination, MsTableOperator},
|
components: {MsApiTestStatus, MsMainContainer, MsContainer, MsTableHeader, MsTablePagination, MsTableOperator},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
result: {},
|
result: {},
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-tag size="mini" type="primary" v-if="row.status === 'Starting'">
|
||||||
|
{{ row.status }}
|
||||||
|
</el-tag>
|
||||||
|
<el-tag size="mini" type="success" v-else-if="row.status === 'Running'">
|
||||||
|
{{ row.status }}
|
||||||
|
</el-tag>
|
||||||
|
<el-tag size="mini" type="warning" v-else-if="row.status === 'Reporting'">
|
||||||
|
{{ row.status }}
|
||||||
|
</el-tag>
|
||||||
|
<el-tooltip placement="top" v-else-if="row.status === 'Error'" effect="light">
|
||||||
|
<template v-slot:content>
|
||||||
|
<div>{{row.description}}</div>
|
||||||
|
</template>
|
||||||
|
<el-tag size="mini" type="danger">
|
||||||
|
{{ row.status }}
|
||||||
|
</el-tag>
|
||||||
|
</el-tooltip>
|
||||||
|
<el-tag size="mini" type="info">
|
||||||
|
{{ row.status }}
|
||||||
|
</el-tag>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "MsApiTestStatus",
|
||||||
|
|
||||||
|
props: {
|
||||||
|
row: Object
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-loading="result.loading" class="container">
|
<ms-container>
|
||||||
<div class="main-content">
|
<ms-main-container>
|
||||||
<el-card>
|
<el-card v-loading="result.loading">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="16">
|
<el-col :span="16">
|
||||||
<el-row>
|
<el-row>
|
||||||
|
@ -51,8 +51,8 @@
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
|
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</ms-main-container>
|
||||||
</div>
|
</ms-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
@ -60,6 +60,8 @@
|
||||||
import MsReportLogDetails from './components/LogDetails';
|
import MsReportLogDetails from './components/LogDetails';
|
||||||
import MsReportRequestStatistics from './components/RequestStatistics';
|
import MsReportRequestStatistics from './components/RequestStatistics';
|
||||||
import MsReportTestOverview from './components/TestOverview';
|
import MsReportTestOverview from './components/TestOverview';
|
||||||
|
import MsContainer from "../../common/components/MsContainer";
|
||||||
|
import MsMainContainer from "../../common/components/MsMainContainer";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "PerformanceReportView",
|
name: "PerformanceReportView",
|
||||||
|
@ -67,7 +69,9 @@
|
||||||
MsReportErrorLog,
|
MsReportErrorLog,
|
||||||
MsReportLogDetails,
|
MsReportLogDetails,
|
||||||
MsReportRequestStatistics,
|
MsReportRequestStatistics,
|
||||||
MsReportTestOverview
|
MsReportTestOverview,
|
||||||
|
MsContainer,
|
||||||
|
MsMainContainer
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="container" v-loading="result.loading">
|
<ms-container>
|
||||||
|
<ms-main-container>
|
||||||
<div class="main-content">
|
<el-card class="table-card" v-loading="result.loading">
|
||||||
<el-card class="table-card">
|
|
||||||
<template v-slot:header>
|
<template v-slot:header>
|
||||||
<div>
|
<div>
|
||||||
<el-row type="flex" justify="space-between" align="middle">
|
<el-row type="flex" justify="space-between" align="middle">
|
||||||
|
@ -84,17 +83,18 @@
|
||||||
<ms-table-pagination :change="initTableData" :current-page.sync="currentPage" :page-size.sync="pageSize"
|
<ms-table-pagination :change="initTableData" :current-page.sync="currentPage" :page-size.sync="pageSize"
|
||||||
:total="total"/>
|
:total="total"/>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</ms-main-container>
|
||||||
|
</ms-container>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import MsTablePagination from "../../common/pagination/TablePagination";
|
import MsTablePagination from "../../common/pagination/TablePagination";
|
||||||
|
import MsContainer from "../../common/components/MsContainer";
|
||||||
|
import MsMainContainer from "../../common/components/MsMainContainer";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "PerformanceTestReport",
|
name: "PerformanceTestReport",
|
||||||
components: {MsTablePagination},
|
components: {MsTablePagination, MsContainer, MsMainContainer},
|
||||||
created: function () {
|
created: function () {
|
||||||
this.initTableData();
|
this.initTableData();
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="container" v-loading="result.loading">
|
<ms-container>
|
||||||
<div class="main-content">
|
<ms-main-container>
|
||||||
<el-card>
|
<el-card v-loading="result.loading">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="10">
|
<el-col :span="10">
|
||||||
<el-input :placeholder="$t('load_test.input_name')" v-model="testPlan.name" class="input-with-select">
|
<el-input :placeholder="$t('load_test.input_name')" v-model="testPlan.name" class="input-with-select">
|
||||||
|
@ -37,21 +37,25 @@
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</ms-main-container>
|
||||||
</div>
|
</ms-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import PerformanceBasicConfig from "./components/PerformanceBasicConfig";
|
import PerformanceBasicConfig from "./components/PerformanceBasicConfig";
|
||||||
import PerformancePressureConfig from "./components/PerformancePressureConfig";
|
import PerformancePressureConfig from "./components/PerformancePressureConfig";
|
||||||
import PerformanceAdvancedConfig from "./components/PerformanceAdvancedConfig";
|
import PerformanceAdvancedConfig from "./components/PerformanceAdvancedConfig";
|
||||||
|
import MsContainer from "../../common/components/MsContainer";
|
||||||
|
import MsMainContainer from "../../common/components/MsMainContainer";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "EditPerformanceTestPlan",
|
name: "EditPerformanceTestPlan",
|
||||||
components: {
|
components: {
|
||||||
PerformancePressureConfig,
|
PerformancePressureConfig,
|
||||||
PerformanceBasicConfig,
|
PerformanceBasicConfig,
|
||||||
PerformanceAdvancedConfig
|
PerformanceAdvancedConfig,
|
||||||
|
MsContainer,
|
||||||
|
MsMainContainer
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="container" v-loading="result.loading">
|
<ms-container>
|
||||||
<div class="main-content">
|
<ms-main-container>
|
||||||
<el-card class="table-card">
|
<el-card class="table-card" v-loading="result.loading">
|
||||||
<template v-slot:header>
|
<template v-slot:header>
|
||||||
<div>
|
<div>
|
||||||
<el-row type="flex" justify="space-between" align="middle">
|
<el-row type="flex" justify="space-between" align="middle">
|
||||||
|
@ -85,16 +85,23 @@
|
||||||
<ms-table-pagination :change="initTableData" :current-page.sync="currentPage" :page-size.sync="pageSize"
|
<ms-table-pagination :change="initTableData" :current-page.sync="currentPage" :page-size.sync="pageSize"
|
||||||
:total="total"/>
|
:total="total"/>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</ms-main-container>
|
||||||
</div>
|
</ms-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import MsTablePagination from "../../common/pagination/TablePagination";
|
import MsTablePagination from "../../common/pagination/TablePagination";
|
||||||
import MsTableOperator from "../../common/components/MsTableOperator";
|
import MsTableOperator from "../../common/components/MsTableOperator";
|
||||||
|
import MsContainer from "../../common/components/MsContainer";
|
||||||
|
import MsMainContainer from "../../common/components/MsMainContainer";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {MsTablePagination, MsTableOperator},
|
components: {
|
||||||
|
MsTablePagination,
|
||||||
|
MsTableOperator,
|
||||||
|
MsContainer,
|
||||||
|
MsMainContainer
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
result: {},
|
result: {},
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<el-table :data="items" style="width: 100%">
|
<el-table :data="items" style="width: 100%">
|
||||||
<el-table-column prop="name" :label="$t('commons.name')"/>
|
<el-table-column prop="name" :label="$t('commons.name')"/>
|
||||||
<el-table-column prop="description" :label="$t('commons.description')"/>
|
<el-table-column prop="description" :label="$t('commons.description')"/>
|
||||||
<el-table-column prop="workspaceName" label="所属工作空间"/>
|
<el-table-column prop="workspaceName" :label="$t('project.owning_workspace')"/>
|
||||||
<el-table-column>
|
<el-table-column>
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
<ms-table-operator @editClick="edit(scope.row)" @deleteClick="del(scope.row)"/>
|
<ms-table-operator @editClick="edit(scope.row)" @deleteClick="del(scope.row)"/>
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ms-main-container {
|
ms-main-container {
|
||||||
height: calc(100vh - 40px);
|
height: calc(100vh - 40px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,10 +12,10 @@
|
||||||
<!--Personal information menu-->
|
<!--Personal information menu-->
|
||||||
<el-table :data="tableData" style="width: 100%">
|
<el-table :data="tableData" style="width: 100%">
|
||||||
<el-table-column prop="id" label="ID"/>
|
<el-table-column prop="id" label="ID"/>
|
||||||
<el-table-column prop="name" :label="$t('commons.username')" width="120"/>
|
<el-table-column prop="name" :label="$t('commons.username')"/>
|
||||||
<el-table-column prop="email" :label="$t('commons.email')"/>
|
<el-table-column prop="email" :label="$t('commons.email')"/>
|
||||||
<el-table-column prop="phone" :label="$t('commons.phone')"/>
|
<el-table-column prop="phone" :label="$t('commons.phone')"/>
|
||||||
<el-table-column prop="createTime" :label="$t('commons.create_time')" width="180">
|
<el-table-column prop="createTime" :label="$t('commons.create_time')">
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
<span>{{ scope.row.createTime | timestampFormatDate }}</span>
|
<span>{{ scope.row.createTime | timestampFormatDate }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
</template>
|
</template>
|
||||||
<!-- system menu organization table-->
|
<!-- system menu organization table-->
|
||||||
<el-table :data="tableData" style="width: 100%">
|
<el-table :data="tableData" style="width: 100%">
|
||||||
<el-table-column type="selection" width="55"/>
|
|
||||||
<el-table-column prop="name" :label="$t('commons.name')"/>
|
<el-table-column prop="name" :label="$t('commons.name')"/>
|
||||||
<el-table-column prop="description" :label="$t('commons.description')"/>
|
<el-table-column prop="description" :label="$t('commons.description')"/>
|
||||||
<el-table-column :label="$t('commons.member')">
|
<el-table-column :label="$t('commons.member')">
|
||||||
|
|
|
@ -8,12 +8,11 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<el-table :data="tableData" style="width: 100%">
|
<el-table :data="tableData" style="width: 100%">
|
||||||
<el-table-column type="selection" width="55"/>
|
|
||||||
<el-table-column prop="id" label="ID"/>
|
<el-table-column prop="id" label="ID"/>
|
||||||
<el-table-column prop="name" :label="$t('commons.username')" width="120"/>
|
<el-table-column prop="name" :label="$t('commons.username')"/>
|
||||||
<el-table-column prop="email" :label="$t('commons.email')"/>
|
<el-table-column prop="email" :label="$t('commons.email')"/>
|
||||||
<el-table-column prop="phone" :label="$t('commons.phone')"/>
|
<el-table-column prop="phone" :label="$t('commons.phone')"/>
|
||||||
<el-table-column prop="status" :label="$t('commons.status')" width="100">
|
<el-table-column prop="status" :label="$t('commons.status')">
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
<el-switch v-model="scope.row.status"
|
<el-switch v-model="scope.row.status"
|
||||||
active-color="#13ce66"
|
active-color="#13ce66"
|
||||||
|
|
|
@ -212,6 +212,7 @@ export default {
|
||||||
'download_log_file': 'Download',
|
'download_log_file': 'Download',
|
||||||
},
|
},
|
||||||
api_test: {
|
api_test: {
|
||||||
|
title: "Test",
|
||||||
save_and_run: "Save and Run",
|
save_and_run: "Save and Run",
|
||||||
run: "Run",
|
run: "Run",
|
||||||
running: "Running",
|
running: "Running",
|
||||||
|
@ -273,6 +274,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
api_report: {
|
api_report: {
|
||||||
|
title: "Report",
|
||||||
request: "Request",
|
request: "Request",
|
||||||
request_body: "Body",
|
request_body: "Body",
|
||||||
request_headers: "Headers",
|
request_headers: "Headers",
|
||||||
|
|
|
@ -212,6 +212,7 @@ export default {
|
||||||
'pressure_prediction_chart': '压力预估图',
|
'pressure_prediction_chart': '压力预估图',
|
||||||
},
|
},
|
||||||
api_test: {
|
api_test: {
|
||||||
|
title: "测试",
|
||||||
save_and_run: "保存并执行",
|
save_and_run: "保存并执行",
|
||||||
run: "执行",
|
run: "执行",
|
||||||
running: "正在执行",
|
running: "正在执行",
|
||||||
|
@ -273,6 +274,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
api_report: {
|
api_report: {
|
||||||
|
title: "报告",
|
||||||
request: "请求",
|
request: "请求",
|
||||||
request_body: "请求内容",
|
request_body: "请求内容",
|
||||||
request_headers: "请求头",
|
request_headers: "请求头",
|
||||||
|
|
Loading…
Reference in New Issue