Merge branch 'master' of https://github.com/metersphere/server
This commit is contained in:
commit
cf9cffb114
|
@ -50,8 +50,8 @@ public class APITestController {
|
||||||
return apiTestService.getApiTestByProjectId(projectId);
|
return apiTestService.getApiTestByProjectId(projectId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*查询某个api测试状态*/
|
|
||||||
@GetMapping("/list/all/{testId}")
|
@GetMapping("/state/get/{testId}")
|
||||||
public ApiTest apiState(@PathVariable String testId) {
|
public ApiTest apiState(@PathVariable String testId) {
|
||||||
return apiTestService.getApiTestByTestId(testId);
|
return apiTestService.getApiTestByTestId(testId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<mapper namespace="io.metersphere.base.mapper.ext.ExtTestCaseMapper">
|
<mapper namespace="io.metersphere.base.mapper.ext.ExtTestCaseMapper">
|
||||||
|
|
||||||
<select id="getTestCaseNames" resultType="io.metersphere.base.domain.TestCase">
|
<select id="getTestCaseNames" resultType="io.metersphere.base.domain.TestCase">
|
||||||
select test_case.id, test_case.name
|
select test_case.id, test_case.name, test_case.priority, test_case.type
|
||||||
from test_case
|
from test_case
|
||||||
<where>
|
<where>
|
||||||
<if test="request.projectId != null">
|
<if test="request.projectId != null">
|
||||||
|
@ -16,6 +16,16 @@
|
||||||
</foreach>
|
</foreach>
|
||||||
|
|
||||||
</if>
|
</if>
|
||||||
|
<if test="request.filters != null and request.filters.size() > 0">
|
||||||
|
<foreach collection="request.filters.entrySet()" index="key" item="values">
|
||||||
|
<if test="values != null and values.size() > 0">
|
||||||
|
and test_case.${key} in
|
||||||
|
<foreach collection="values" item="value" separator="," open="(" close=")">
|
||||||
|
#{value}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
</where>
|
</where>
|
||||||
ORDER BY test_case.update_time DESC
|
ORDER BY test_case.update_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
|
@ -71,6 +71,9 @@
|
||||||
<if test="request.planId != null">
|
<if test="request.planId != null">
|
||||||
and test_plan_test_case.plan_id = #{request.planId}
|
and test_plan_test_case.plan_id = #{request.planId}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="request.method != null">
|
||||||
|
and test_case.method = #{request.method}
|
||||||
|
</if>
|
||||||
|
|
||||||
<if test="request.nodePaths != null and request.nodePaths.size() > 0">
|
<if test="request.nodePaths != null and request.nodePaths.size() > 0">
|
||||||
and test_case.node_path in
|
and test_case.node_path in
|
||||||
|
|
|
@ -56,7 +56,6 @@ public class ShiroConfig {
|
||||||
filterChainDefinitionMap.put("/swagger-ui/**", "anon");
|
filterChainDefinitionMap.put("/swagger-ui/**", "anon");
|
||||||
filterChainDefinitionMap.put("/v3/api-docs/**", "anon");
|
filterChainDefinitionMap.put("/v3/api-docs/**", "anon");
|
||||||
|
|
||||||
filterChainDefinitionMap.put("/api/**", "anon");
|
|
||||||
filterChainDefinitionMap.put("/403", "anon");
|
filterChainDefinitionMap.put("/403", "anon");
|
||||||
filterChainDefinitionMap.put("/anonymous/**", "anon");
|
filterChainDefinitionMap.put("/anonymous/**", "anon");
|
||||||
filterChainDefinitionMap.put("/**", "apikey, authc");
|
filterChainDefinitionMap.put("/**", "apikey, authc");
|
||||||
|
|
|
@ -55,8 +55,8 @@ public class PerformanceTestController {
|
||||||
return performanceTestService.getLoadTestByProjectId(projectId);
|
return performanceTestService.getLoadTestByProjectId(projectId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*查询某个测试状态*/
|
|
||||||
@GetMapping("/list/all/{testId}")
|
@GetMapping("/state/get/{testId}")
|
||||||
public LoadTest listByTestId(@PathVariable String testId) {
|
public LoadTest listByTestId(@PathVariable String testId) {
|
||||||
return performanceTestService.getLoadTestBytestId(testId);
|
return performanceTestService.getLoadTestBytestId(testId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,6 +42,7 @@ public class TestPlanTestCaseController {
|
||||||
QueryTestPlanCaseRequest request = new QueryTestPlanCaseRequest();
|
QueryTestPlanCaseRequest request = new QueryTestPlanCaseRequest();
|
||||||
request.setPlanId(planId);
|
request.setPlanId(planId);
|
||||||
request.setNodePaths(list);
|
request.setNodePaths(list);
|
||||||
|
request.setMethod("auto");
|
||||||
return testPlanTestCaseService.listByNode(request);
|
return testPlanTestCaseService.listByNode(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
<el-main class="case-content" v-loading="result.loading">
|
<el-main class="case-content" v-loading="result.loading">
|
||||||
<el-table
|
<el-table
|
||||||
:data="testCases"
|
:data="testCases"
|
||||||
|
@filter-change="filter"
|
||||||
row-key="id"
|
row-key="id"
|
||||||
@select-all="handleSelectAll"
|
@select-all="handleSelectAll"
|
||||||
@select="handleSelectionChange"
|
@select="handleSelectionChange"
|
||||||
|
@ -38,6 +39,26 @@
|
||||||
{{scope.row.name}}
|
{{scope.row.name}}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="priority"
|
||||||
|
:filters="priorityFilters"
|
||||||
|
column-key="priority"
|
||||||
|
:label="$t('test_track.case.priority')"
|
||||||
|
show-overflow-tooltip>
|
||||||
|
<template v-slot:default="scope">
|
||||||
|
<priority-table-item :value="scope.row.priority"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="type"
|
||||||
|
:filters="typeFilters"
|
||||||
|
column-key="type"
|
||||||
|
:label="$t('test_track.case.type')"
|
||||||
|
show-overflow-tooltip>
|
||||||
|
<template v-slot:default="scope">
|
||||||
|
<type-table-item :value="scope.row.type"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-main>
|
</el-main>
|
||||||
</el-container>
|
</el-container>
|
||||||
|
@ -56,10 +77,13 @@
|
||||||
|
|
||||||
import NodeTree from '../../../common/NodeTree';
|
import NodeTree from '../../../common/NodeTree';
|
||||||
import MsDialogFooter from '../../../../common/components/MsDialogFooter'
|
import MsDialogFooter from '../../../../common/components/MsDialogFooter'
|
||||||
|
import PriorityTableItem from "../../../common/tableItems/planview/PriorityTableItem";
|
||||||
|
import TypeTableItem from "../../../common/tableItems/planview/TypeTableItem";
|
||||||
|
import {_filter} from "../../../../../../common/js/utils";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "TestCaseRelevance",
|
name: "TestCaseRelevance",
|
||||||
components: {NodeTree, MsDialogFooter},
|
components: {NodeTree, MsDialogFooter, PriorityTableItem, TypeTableItem},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
result: {},
|
result: {},
|
||||||
|
@ -69,7 +93,19 @@
|
||||||
selectIds: new Set(),
|
selectIds: new Set(),
|
||||||
treeNodes: [],
|
treeNodes: [],
|
||||||
selectNodeIds: [],
|
selectNodeIds: [],
|
||||||
selectNodeNames: []
|
selectNodeNames: [],
|
||||||
|
condition: {},
|
||||||
|
priorityFilters: [
|
||||||
|
{text: 'P0', value: 'P0'},
|
||||||
|
{text: 'P1', value: 'P1'},
|
||||||
|
{text: 'P2', value: 'P2'},
|
||||||
|
{text: 'P3', value: 'P3'}
|
||||||
|
],
|
||||||
|
typeFilters: [
|
||||||
|
{text: this.$t('commons.functional'), value: 'functional'},
|
||||||
|
{text: this.$t('commons.performance'), value: 'performance'},
|
||||||
|
{text: this.$t('commons.api'), value: 'api'}
|
||||||
|
]
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
|
@ -104,12 +140,14 @@
|
||||||
getCaseNames() {
|
getCaseNames() {
|
||||||
let param = {};
|
let param = {};
|
||||||
if (this.planId) {
|
if (this.planId) {
|
||||||
param.planId = this.planId;
|
// param.planId = this.planId;
|
||||||
|
this.condition.planId = this.planId;
|
||||||
}
|
}
|
||||||
if (this.selectNodeIds && this.selectNodeIds.length > 0) {
|
if (this.selectNodeIds && this.selectNodeIds.length > 0) {
|
||||||
param.nodeIds = this.selectNodeIds;
|
// param.nodeIds = this.selectNodeIds;
|
||||||
|
this.condition.nodeIds = this.selectNodeIds;
|
||||||
}
|
}
|
||||||
this.result = this.$post('/test/case/name', param, response => {
|
this.result = this.$post('/test/case/name', this.condition, response => {
|
||||||
this.testCases = response.data;
|
this.testCases = response.data;
|
||||||
this.testCases.forEach(item => {
|
this.testCases.forEach(item => {
|
||||||
item.checked = false;
|
item.checked = false;
|
||||||
|
@ -154,7 +192,11 @@
|
||||||
this.selectIds.clear();
|
this.selectIds.clear();
|
||||||
this.selectNodeIds = [];
|
this.selectNodeIds = [];
|
||||||
this.selectNodeNames = [];
|
this.selectNodeNames = [];
|
||||||
}
|
},
|
||||||
|
filter(filters) {
|
||||||
|
_filter(filters, this.condition);
|
||||||
|
this.initData();
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -165,10 +207,12 @@
|
||||||
display: none;
|
display: none;
|
||||||
color: black;
|
color: black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tb-edit .current-row .el-input {
|
.tb-edit .current-row .el-input {
|
||||||
display: block;
|
display: block;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.tb-edit .current-row .el-input + span {
|
.tb-edit .current-row .el-input + span {
|
||||||
display: none;
|
display: none;
|
||||||
|
|
||||||
|
@ -189,10 +233,12 @@
|
||||||
height: 100%;
|
height: 100%;
|
||||||
/*border: 1px solid #EBEEF5;*/
|
/*border: 1px solid #EBEEF5;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
.tree-aside {
|
.tree-aside {
|
||||||
min-height: 300px;
|
min-height: 300px;
|
||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-content {
|
.main-content {
|
||||||
min-height: 300px;
|
min-height: 300px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
Loading…
Reference in New Issue