This commit is contained in:
chenjianxing 2020-11-30 14:27:44 +08:00
commit a3d98b5921
11 changed files with 74 additions and 69 deletions

View File

@ -46,14 +46,14 @@
- [x] 接口测试支持TCP协议请求
- [x] 全新的消息通知设置,支持企业微信、钉钉机器人通知
## v1.5 (开发中)
## v1.5 (已发布)
- [ ] 性能测试:优化并发数、持续时间等压力配置方式
- [ ] 性能测试:支持使用了额外插件的 JMX 文件
- [ ] 性能测试:自动修改 csv 等数据文件引用路径
- [ ] 性能测试:优化性能测试报告展示
- [ ] 测试跟踪:支持对接禅道同步缺陷
- [ ] 其他Jenkins 插件支持 pipeline 方式调用
- [x] 性能测试:优化并发数、持续时间等压力配置方式
- [x] 性能测试:支持使用了额外插件的 JMX 文件
- [x] 性能测试:自动修改 csv 等数据文件引用路径
- [x] 性能测试:优化性能测试报告展示
- [x] 测试跟踪:支持对接禅道同步缺陷
- [x] 其他Jenkins 插件支持 pipeline 方式调用
## 规划中

View File

@ -78,7 +78,7 @@
</el-header>
<!-- 用例部分 -->
<el-main v-loading="loading">
<el-main v-loading="loading" style="overflow: auto">
<div v-for="(item,index) in apiCaseList" :key="index">
<el-card style="margin-top: 5px" @click.native="selectTestCase(item,$event)">
<el-row>
@ -188,6 +188,7 @@
},
loaded: Boolean,
currentProject: {},
refreshSign: String,
},
data() {
return {
@ -213,6 +214,9 @@
},
currentProject() {
this.getEnvironments();
},
refreshSign() {
this.getApiTest();
}
},
created() {

View File

@ -1,12 +1,9 @@
<template>
<div id="svgBox" style="overflow: auto">
<div id="svgTop" style="background-color: white">
<el-card class="card-content">
<!--<ms-table-header :showCreate="false" :condition.sync="condition" @search="search"-->
<!--:title="$t('api_test.definition.api_title')"/>-->
<el-input placeholder="搜索" @blur="search" style="float: right ;width: 300px;margin-bottom: 20px;margin-right: 20px" size="small" v-model="condition.name"/>
<el-table border :data="tableData" row-key="id" class="test-content adjust-table"
@select-all="handleSelectAll"
@select="handleSelect" :height="screenHeight">
@ -272,7 +269,6 @@
},
handleTestCase(testCase) {
let h = window.screen.height;
let svgTop = document.getElementById("svgTop");
svgTop.style.height = h / 2 - 200 + "px";

View File

@ -3,8 +3,7 @@
<el-row>
<el-col :span="21" style="padding-bottom: 20px">
<div style="border:1px #DCDFE6 solid; height: 100%;border-radius: 4px ;width: 100% ;margin: 20px">
<el-form :model="request" :rules="rules" ref="request" label-width="100px" :disabled="isReadOnly" style="margin: 20px">
<el-form :model="request" :rules="rules" ref="request" label-width="100px" :disabled="isReadOnly" style="margin: 10px">
<el-row>
<el-col :span="8">
<el-form-item prop="environmentId" :label="$t('api_test.definition.request.run_env')">

View File

@ -4,7 +4,7 @@
<el-col :span="21" style="padding-bottom: 20px">
<div style="border:1px #DCDFE6 solid; height: 100%;border-radius: 4px ;width: 100% ;margin: 20px">
<el-form :model="request" ref="request" label-width="100px" :disabled="isReadOnly" style="margin: 20px">
<el-form :model="request" ref="request" label-width="100px" :disabled="isReadOnly" style="margin: 10px">
<el-form-item :label="$t('api_test.request.dubbo.protocol')" prop="protocol">
<el-select v-model="request.protocol" size="small">

View File

@ -2,9 +2,8 @@
<div>
<el-row>
<el-col :span="21" style="padding-bottom: 20px">
<div style="border:1px #DCDFE6 solid; height: 100%;border-radius: 4px ;width: 100% ;margin: 20px">
<div style="border:1px #DCDFE6 solid; height: 100%;border-radius: 4px ;width: 100% ;margin: 10px">
<el-form class="tcp" :model="request" :rules="rules" ref="request" label-width="auto" :disabled="isReadOnly" style="margin: 20px">
<el-row :gutter="10">
<el-col :span="9">
<el-form-item label="TCPClient" prop="classname">

View File

@ -51,11 +51,11 @@
<style scoped>
.metric-container {
padding: 20px;
padding: 10px;
}
.metric {
padding: 20px;
padding: 10px;
border: 1px solid #EBEEF5;
min-width: 120px;
height: 114px;

View File

@ -19,7 +19,7 @@
<p class="tip">{{$t('api_test.definition.request.req_param')}} </p>
<!-- TCP 请求参数 -->
<ms-basis-parameters :request="currentRequest" :currentProject="currentProject" ref="requestForm"/>
<ms-basis-parameters :request="api.request" :currentProject="currentProject" ref="requestForm"/>
<!--返回结果-->
<!-- HTTP 请求返回数据 -->
@ -29,11 +29,12 @@
</el-card>
<!-- 加载用例 -->
<ms-bottom-container v-bind:enableAsideHidden="isHide">
<el-drawer :visible.sync="visible" direction="btt" :with-header="false" :modal="false" size="50%">
<ms-api-case-list @apiCaseClose="apiCaseClose" @selectTestCase="selectTestCase" :api="api"
:currentProject="currentProject" :loaded="loaded"
:currentProject="currentProject" :loaded="loaded" :refreshSign="refreshSign"
ref="caseList"/>
</ms-bottom-container>
</el-drawer>
>
<!-- 环境 -->
<api-environment-config ref="environmentConfig" @close="environmentConfigClose"/>
@ -72,11 +73,12 @@
},
data() {
return {
isHide: true,
visible: false,
api: {},
loaded: false,
loading: false,
currentRequest: {},
refreshSign: "",
responseData: {type: 'HTTP', responseResult: {}, subRequestResults: []},
reqOptions: REQ_METHOD,
environments: [],
@ -102,7 +104,7 @@
case "save_as_api":
return this.saveAsApi();
default:
return this.runTest();
return this.runTest();
}
},
runTest() {
@ -122,11 +124,12 @@
this.$emit('saveAs', this.api);
},
loadCase() {
this.refreshSign = getUUID();
this.loaded = true;
this.isHide = false;
this.visible = true;
},
apiCaseClose() {
this.isHide = true;
this.visible = false;
},
getBodyUploadFiles() {
let bodyUploadFiles = [];
@ -150,7 +153,7 @@
return bodyUploadFiles;
},
saveAsCase() {
this.isHide = false;
this.visible = false;
this.loaded = false;
this.$refs.caseList.addCase();
},
@ -256,6 +259,9 @@
font-size: 16px;
border-radius: 4px;
border-left: 4px solid #783887;
margin: 20px 0;
}
/deep/ .el-drawer {
overflow: auto;
}
</style>

View File

@ -70,11 +70,11 @@
</el-card>
<!-- 加载用例 -->
<ms-bottom-container v-bind:enableAsideHidden="isHide">
<ms-api-case-list @apiCaseClose="apiCaseClose" @selectTestCase="selectTestCase" :api="api"
<el-drawer :visible.sync="visible" direction="btt" :with-header="false" :modal="false" size="50%">
<ms-api-case-list @apiCaseClose="apiCaseClose" @selectTestCase="selectTestCase" :api="api" :refreshSign="refreshSign"
:currentProject="currentProject" :loaded="loaded"
ref="caseList"/>
</ms-bottom-container>
</el-drawer>
<!-- 环境 -->
<api-environment-config ref="environmentConfig" @close="environmentConfigClose"/>
@ -90,7 +90,6 @@
import {downloadFile, getUUID} from "@/common/js/utils";
import MsApiCaseList from "../ApiCaseList";
import MsContainer from "../../../../common/components/MsContainer";
import MsBottomContainer from "../BottomContainer";
import {parseEnvironment} from "../../model/EnvironmentModel";
import ApiEnvironmentConfig from "../environment/ApiEnvironmentConfig";
import MsRequestResultTail from "../response/RequestResultTail";
@ -104,18 +103,18 @@
MsApiRequestForm,
MsApiCaseList,
MsContainer,
MsBottomContainer,
MsRequestResultTail,
ApiEnvironmentConfig,
MsRun
},
data() {
return {
isHide: true,
visible: false,
api: {},
loaded: false,
loading: false,
currentRequest: {},
refreshSign:"",
responseData: {type: 'HTTP', responseResult: {}, subRequestResults: []},
reqOptions: REQ_METHOD,
environments: [],
@ -166,11 +165,12 @@
this.$emit('saveAs', this.api);
},
loadCase() {
this.refreshSign = getUUID();
this.loaded = true;
this.isHide = false;
this.visible = true;
},
apiCaseClose() {
this.isHide = true;
this.visible = false;
},
getBodyUploadFiles() {
let bodyUploadFiles = [];
@ -194,9 +194,8 @@
return bodyUploadFiles;
},
saveAsCase() {
this.isHide = false;
this.visible = false;
this.loaded = false;
this.$refs.caseList.addCase();
},
saveAsApi() {
let data = {};
@ -301,6 +300,8 @@
font-size: 16px;
border-radius: 4px;
border-left: 4px solid #783887;
margin: 20px 0;
}
/deep/.el-drawer{
overflow: auto;
}
</style>

View File

@ -16,10 +16,9 @@
</el-dropdown-menu>
</el-dropdown>
<p class="tip">{{$t('api_test.definition.request.req_param')}} </p>
<!-- TCP 请求参数 -->
<ms-basis-parameters :request="currentRequest" @callback="runTest" :currentProject="currentProject" ref="requestForm"/>
<ms-basis-parameters :request="api.request" @callback="runTest" :currentProject="currentProject" ref="requestForm"/>
<!--返回结果-->
<!-- HTTP 请求返回数据 -->
@ -29,11 +28,11 @@
</el-card>
<!-- 加载用例 -->
<ms-bottom-container v-bind:enableAsideHidden="isHide">
<ms-api-case-list @apiCaseClose="apiCaseClose" @selectTestCase="selectTestCase" :api="api"
<el-drawer :visible.sync="visible" direction="btt" :with-header="false" :modal="false" size="50%">
<ms-api-case-list @apiCaseClose="apiCaseClose" @selectTestCase="selectTestCase" :api="api" :refreshSign="refreshSign"
:currentProject="currentProject" :loaded="loaded"
ref="caseList"/>
</ms-bottom-container>
</el-drawer>>
<!-- 环境 -->
<api-environment-config ref="environmentConfig" @close="environmentConfigClose"/>
@ -72,13 +71,14 @@
},
data() {
return {
isHide: true,
visible: false,
api: {},
loaded: false,
loading: false,
currentRequest: {},
responseData: {type: 'HTTP', responseResult: {}, subRequestResults: []},
reqOptions: REQ_METHOD,
refreshSign: "",
environments: [],
rules: {
method: [{required: true, message: this.$t('test_track.case.input_maintainer'), trigger: 'change'}],
@ -122,11 +122,12 @@
this.$emit('saveAs', this.api);
},
loadCase() {
this.refreshSign = getUUID();
this.loaded = true;
this.isHide = false;
this.visible = true;
},
apiCaseClose() {
this.isHide = true;
this.visible = false;
},
getBodyUploadFiles() {
let bodyUploadFiles = [];
@ -150,7 +151,7 @@
return bodyUploadFiles;
},
saveAsCase() {
this.isHide = false;
this.visible = false;
this.loaded = false;
this.$refs.caseList.addCase();
},
@ -242,20 +243,13 @@
</script>
<style scoped>
.ms-htt-width {
width: 350px;
}
.environment-button {
margin-left: 20px;
padding: 7px;
}
.tip {
padding: 3px 5px;
font-size: 16px;
border-radius: 4px;
border-left: 4px solid #783887;
margin: 20px 0;
}
/deep/.el-drawer{
overflow: auto;
}
</style>

View File

@ -19,7 +19,7 @@
<p class="tip">{{$t('api_test.definition.request.req_param')}} </p>
<!-- TCP 请求参数 -->
<ms-basis-parameters :request="currentRequest" @callback="runTest" :currentProject="currentProject" ref="requestForm"/>
<ms-basis-parameters :request="api.request" @callback="runTest" :currentProject="currentProject" ref="requestForm"/>
<!--返回结果-->
<!-- HTTP 请求返回数据 -->
@ -29,11 +29,12 @@
</el-card>
<!-- 加载用例 -->
<ms-bottom-container v-bind:enableAsideHidden="isHide">
<ms-api-case-list @apiCaseClose="apiCaseClose" @selectTestCase="selectTestCase" :api="api"
<el-drawer :visible.sync="visible" direction="btt" :with-header="false" :modal="false" size="50%">
<ms-api-case-list @apiCaseClose="apiCaseClose" @selectTestCase="selectTestCase" :api="api" :refreshSign="refreshSign"
:currentProject="currentProject" :loaded="loaded"
ref="caseList"/>
</ms-bottom-container>
</el-drawer>
>
<!-- 环境 -->
<api-environment-config ref="environmentConfig" @close="environmentConfigClose"/>
@ -72,7 +73,7 @@
},
data() {
return {
isHide: true,
visible: false,
api: {},
loaded: false,
loading: false,
@ -80,6 +81,7 @@
responseData: {type: 'HTTP', responseResult: {}, subRequestResults: []},
reqOptions: REQ_METHOD,
environments: [],
refreshSign: "",
rules: {
method: [{required: true, message: this.$t('test_track.case.input_maintainer'), trigger: 'change'}],
url: [{required: true, message: this.$t('api_test.definition.request.path_info'), trigger: 'blur'}],
@ -122,11 +124,12 @@
this.$emit('saveAs', this.api);
},
loadCase() {
this.refreshSign = getUUID();
this.loaded = true;
this.isHide = false;
this.visible = true;
},
apiCaseClose() {
this.isHide = true;
this.visible = false;
},
getBodyUploadFiles() {
let bodyUploadFiles = [];
@ -150,7 +153,7 @@
return bodyUploadFiles;
},
saveAsCase() {
this.isHide = false;
this.visible = false;
this.loaded = false;
this.$refs.caseList.addCase();
},
@ -256,6 +259,9 @@
font-size: 16px;
border-radius: 4px;
border-left: 4px solid #783887;
margin: 20px 0;
}
/deep/ .el-drawer {
overflow: auto;
}
</style>