From 90a9877178b0d78c932caab3235487aad4fedb45 Mon Sep 17 00:00:00 2001 From: fit2-zhao Date: Thu, 10 Dec 2020 18:16:30 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat(=E6=8E=A5=E5=8F=A3=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8C=96):=20=E7=BB=9F=E4=B8=80=E6=B7=BB=E5=8A=A0=E5=A4=8D?= =?UTF-8?q?=E5=88=B6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/automation/scenario/ApiComponent.vue | 6 +++- .../scenario/ApiScenarioComponent.vue | 6 +++- .../api/automation/scenario/ConstantTimer.vue | 8 +++-- .../automation/scenario/EditApiScenario.vue | 34 +++++++++++-------- .../api/automation/scenario/IfController.vue | 6 +++- .../automation/scenario/Jsr233Processor.vue | 6 +++- .../components/assertion/ApiAssertions.vue | 6 +++- .../components/extract/ApiExtract.vue | 6 +++- .../components/processor/Jsr233Processor.vue | 6 +++- .../request/database/BasisParameters.vue | 16 ++++++--- .../request/dubbo/BasisParameters.vue | 17 +++++++--- .../request/http/ApiHttpRequestForm.vue | 18 +++++++--- .../request/tcp/BasisParameters.vue | 17 +++++++--- 13 files changed, 110 insertions(+), 42 deletions(-) diff --git a/frontend/src/business/components/api/automation/scenario/ApiComponent.vue b/frontend/src/business/components/api/automation/scenario/ApiComponent.vue index 05c7970ca4..6b35d98651 100644 --- a/frontend/src/business/components/api/automation/scenario/ApiComponent.vue +++ b/frontend/src/business/components/api/automation/scenario/ApiComponent.vue @@ -26,7 +26,8 @@ - + + @@ -101,6 +102,9 @@ remove() { this.$emit('remove', this.request, this.node); }, + copyRow() { + this.$emit('copyRow', this.request, this.node); + }, active(item) { item.active = !item.active; this.reload(); diff --git a/frontend/src/business/components/api/automation/scenario/ApiScenarioComponent.vue b/frontend/src/business/components/api/automation/scenario/ApiScenarioComponent.vue index ef62a2ee8f..c2f9e326c0 100644 --- a/frontend/src/business/components/api/automation/scenario/ApiScenarioComponent.vue +++ b/frontend/src/business/components/api/automation/scenario/ApiScenarioComponent.vue @@ -11,7 +11,8 @@ {{ $t('api_test.scenario.reference') }}
- + +
@@ -55,6 +56,9 @@ item.active = !item.active; this.reload(); }, + copyRow() { + this.$emit('copyRow', this.scenario, this.node); + }, reload() { this.loading = true this.$nextTick(() => { diff --git a/frontend/src/business/components/api/automation/scenario/ConstantTimer.vue b/frontend/src/business/components/api/automation/scenario/ConstantTimer.vue index 7be535dcb6..d872f6d562 100644 --- a/frontend/src/business/components/api/automation/scenario/ConstantTimer.vue +++ b/frontend/src/business/components/api/automation/scenario/ConstantTimer.vue @@ -10,7 +10,8 @@ ms
- + +
@@ -30,7 +31,10 @@ methods: { remove() { this.$emit('remove', this.timer, this.node); - } + }, + copyRow() { + this.$emit('copyRow', this.timer, this.node); + }, } } diff --git a/frontend/src/business/components/api/automation/scenario/EditApiScenario.vue b/frontend/src/business/components/api/automation/scenario/EditApiScenario.vue index dd621b6b3d..d18e7fe79c 100644 --- a/frontend/src/business/components/api/automation/scenario/EditApiScenario.vue +++ b/frontend/src/business/components/api/automation/scenario/EditApiScenario.vue @@ -79,8 +79,7 @@ - + @@ -513,9 +512,6 @@ this.$post('/user/ws/member/tester/list', {workspaceId: workspaceId}, response => { this.maintainerOptions = response.data; }); - }, - tagChange() { - }, openTagConfig() { if (!this.projectId) { @@ -546,6 +542,16 @@ this.sort(); this.reload(); }, + copyRow(row, node) { + const parent = node.parent + const hashTree = parent.data.hashTree || parent.data; + let obj = {}; + Object.assign(obj, row); + obj.resourceId = getUUID(); + hashTree.push(obj); + this.sort(); + this.reload(); + }, reload() { this.isReloadData = true this.$nextTick(() => { diff --git a/frontend/src/business/components/api/automation/scenario/IfController.vue b/frontend/src/business/components/api/automation/scenario/IfController.vue index 653c12f298..2f54518256 100644 --- a/frontend/src/business/components/api/automation/scenario/IfController.vue +++ b/frontend/src/business/components/api/automation/scenario/IfController.vue @@ -16,7 +16,8 @@
- + +
@@ -72,6 +73,9 @@ remove() { this.$emit('remove', this.controller, this.node); }, + copyRow() { + this.$emit('copyRow', this.controller, this.node); + }, change(value) { if (value.indexOf("empty") > 0 && !!this.controller.value) { this.controller.value = ""; diff --git a/frontend/src/business/components/api/automation/scenario/Jsr233Processor.vue b/frontend/src/business/components/api/automation/scenario/Jsr233Processor.vue index eca34b346b..d0a346b054 100644 --- a/frontend/src/business/components/api/automation/scenario/Jsr233Processor.vue +++ b/frontend/src/business/components/api/automation/scenario/Jsr233Processor.vue @@ -10,7 +10,8 @@
- + +
@@ -142,6 +143,9 @@ remove() { this.$emit('remove', this.jsr223ProcessorData, this.node); }, + copyRow() { + this.$emit('copyRow', this.jsr223ProcessorData, this.node); + }, reload() { this.isCodeEditAlive = false; this.$nextTick(() => (this.isCodeEditAlive = true)); diff --git a/frontend/src/business/components/api/definition/components/assertion/ApiAssertions.vue b/frontend/src/business/components/api/definition/components/assertion/ApiAssertions.vue index 4e7c5dcd00..53cc15c9c6 100644 --- a/frontend/src/business/components/api/definition/components/assertion/ApiAssertions.vue +++ b/frontend/src/business/components/api/definition/components/assertion/ApiAssertions.vue @@ -11,7 +11,8 @@
- + +
@@ -109,6 +110,9 @@ this.reloadData = getUUID().substring(0, 8); this.reload(); }, + copyRow() { + this.$emit('copyRow', this.assertions, this.node); + }, suggestJsonOpen() { if (!this.request.debugRequestResult) { this.$message(this.$t('api_test.request.assertions.debug_first')); diff --git a/frontend/src/business/components/api/definition/components/extract/ApiExtract.vue b/frontend/src/business/components/api/definition/components/extract/ApiExtract.vue index d377491f48..620fcd5218 100644 --- a/frontend/src/business/components/api/definition/components/extract/ApiExtract.vue +++ b/frontend/src/business/components/api/definition/components/extract/ApiExtract.vue @@ -9,7 +9,8 @@
- + +
@@ -87,6 +88,9 @@ remove() { this.$emit('remove', this.extract, this.node); }, + copyRow() { + this.$emit('copyRow', this.extract, this.node); + }, reload() { this.loading = true this.$nextTick(() => { diff --git a/frontend/src/business/components/api/definition/components/processor/Jsr233Processor.vue b/frontend/src/business/components/api/definition/components/processor/Jsr233Processor.vue index c3aeaa2f01..7135715b86 100644 --- a/frontend/src/business/components/api/definition/components/processor/Jsr233Processor.vue +++ b/frontend/src/business/components/api/definition/components/processor/Jsr233Processor.vue @@ -9,7 +9,8 @@
- + +
@@ -147,6 +148,9 @@ remove() { this.$emit('remove', this.jsr223ProcessorData); }, + copyRow() { + this.$emit('copyRow', this.jsr223ProcessorData); + }, reload() { this.isCodeEditAlive = false; this.$nextTick(() => (this.isCodeEditAlive = true)); diff --git a/frontend/src/business/components/api/definition/components/request/database/BasisParameters.vue b/frontend/src/business/components/api/definition/components/request/database/BasisParameters.vue index c89477a188..1a43a0cde1 100644 --- a/frontend/src/business/components/api/definition/components/request/database/BasisParameters.vue +++ b/frontend/src/business/components/api/definition/components/request/database/BasisParameters.vue @@ -65,15 +65,15 @@
- - - + - +
@@ -107,6 +107,7 @@ import {parseEnvironment} from "../../../model/EnvironmentModel"; import ApiEnvironmentConfig from "../../environment/ApiEnvironmentConfig"; import {getCurrentProjectID} from "@/common/js/utils"; + import {getUUID} from "@/common/js/utils"; export default { name: "MsDatabaseConfig", @@ -165,6 +166,13 @@ this.request.hashTree.splice(index, 1); this.reload(); }, + copyRow(row) { + let obj = {}; + Object.assign(obj, row); + obj.id = getUUID(); + this.request.hashTree.push(obj); + this.reload(); + }, reload() { this.isReloadData = true this.$nextTick(() => { diff --git a/frontend/src/business/components/api/definition/components/request/dubbo/BasisParameters.vue b/frontend/src/business/components/api/definition/components/request/dubbo/BasisParameters.vue index 9b380867b3..532089f8b1 100644 --- a/frontend/src/business/components/api/definition/components/request/dubbo/BasisParameters.vue +++ b/frontend/src/business/components/api/definition/components/request/dubbo/BasisParameters.vue @@ -44,15 +44,15 @@
- - - + - +
@@ -81,11 +81,11 @@ import MsApiScenarioVariables from "../../ApiScenarioVariables"; import {createComponent} from "../../jmeter/components"; import {Assertions, Extract, DubboRequest} from "../../../model/ApiTestModel"; - import {parseEnvironment} from "../../../model/EnvironmentModel"; import MsDubboInterface from "../../request/dubbo/Interface"; import MsDubboRegistryCenter from "../../request/dubbo/RegistryCenter"; import MsDubboConfigCenter from "../../request/dubbo/ConfigCenter"; import MsDubboConsumerService from "../../request/dubbo/ConsumerAndService"; + import {getUUID} from "@/common/js/utils"; export default { name: "MsDatabaseConfig", @@ -140,6 +140,13 @@ this.request.hashTree.splice(index, 1); this.reload(); }, + copyRow(row) { + let obj = {}; + Object.assign(obj, row); + obj.id = getUUID(); + this.request.hashTree.push(obj); + this.reload(); + }, reload() { this.isReloadData = true this.$nextTick(() => { diff --git a/frontend/src/business/components/api/definition/components/request/http/ApiHttpRequestForm.vue b/frontend/src/business/components/api/definition/components/request/http/ApiHttpRequestForm.vue index a90510fc67..8d26af88e6 100644 --- a/frontend/src/business/components/api/definition/components/request/http/ApiHttpRequestForm.vue +++ b/frontend/src/business/components/api/definition/components/request/http/ApiHttpRequestForm.vue @@ -30,7 +30,7 @@ - + {{$t('api_test.definition.request.rest_param')}} @@ -61,15 +61,15 @@
- - - + - +
@@ -99,6 +99,7 @@ import MsApiAssertions from "../../assertion/ApiAssertions"; import MsApiExtract from "../../extract/ApiExtract"; import {Assertions, Body, Extract} from "../../../model/ApiTestModel"; + import {getUUID} from "@/common/js/utils"; export default { name: "MsApiHttpRequestForm", @@ -180,6 +181,13 @@ this.request.hashTree.splice(index, 1); this.reload(); }, + copyRow(row) { + let obj = {}; + Object.assign(obj, row); + row.id = getUUID(); + this.request.hashTree.push(obj); + this.reload(); + }, reload() { this.isReloadData = true this.$nextTick(() => { diff --git a/frontend/src/business/components/api/definition/components/request/tcp/BasisParameters.vue b/frontend/src/business/components/api/definition/components/request/tcp/BasisParameters.vue index b98b266794..39d3f889ff 100644 --- a/frontend/src/business/components/api/definition/components/request/tcp/BasisParameters.vue +++ b/frontend/src/business/components/api/definition/components/request/tcp/BasisParameters.vue @@ -92,15 +92,15 @@
- - - + - +
@@ -132,7 +132,7 @@ import ApiEnvironmentConfig from "../../environment/ApiEnvironmentConfig"; import {API_STATUS} from "../../../model/JsonData"; import TCPSampler from "../../jmeter/components/sampler/tcp-sampler"; - import {getCurrentProjectID} from "@/common/js/utils"; + import {getCurrentProjectID, getUUID} from "@/common/js/utils"; export default { name: "MsDatabaseConfig", @@ -194,6 +194,13 @@ this.request.hashTree.splice(index, 1); this.reload(); }, + copyRow(row) { + let obj = {}; + Object.assign(obj, row); + obj.id = getUUID(); + this.request.hashTree.push(obj); + this.reload(); + }, reload() { this.isReloadData = true this.$nextTick(() => { From 38cf12fbcbe684c09cd2b5562bd6a3f590193905 Mon Sep 17 00:00:00 2001 From: shiziyuan9527 Date: Thu, 10 Dec 2020 18:29:23 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat(=E6=80=A7=E8=83=BD=E6=B5=8B=E8=AF=95):?= =?UTF-8?q?=20=E8=B5=84=E6=BA=90=E6=8C=89=E7=85=A7=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/ext/ExtLoadTestReportMapper.xml | 7 ++++--- .../controller/request/ReportRequest.java | 1 + .../service/PerformanceTestService.java | 8 +++++++- .../performance/service/ReportService.java | 3 +++ backend/src/main/java/io/metersphere/xpack | 2 +- .../components/common/head/SearchList.vue | 19 ------------------- frontend/src/business/components/xpack | 2 +- 7 files changed, 17 insertions(+), 25 deletions(-) diff --git a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtLoadTestReportMapper.xml b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtLoadTestReportMapper.xml index 24da5a2b22..d89c770d7c 100644 --- a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtLoadTestReportMapper.xml +++ b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtLoadTestReportMapper.xml @@ -71,9 +71,7 @@ from load_test_report ltr join load_test lt on ltr.test_id = lt.id join user on ltr.user_id = user.id - - JOIN project on project.id = lt.project_id - + join project on project.id = lt.project_id @@ -90,6 +88,9 @@ AND workspace_id = #{reportRequest.workspaceId,jdbcType=VARCHAR} + + AND project.id = #{reportRequest.projectId,jdbcType=VARCHAR} + diff --git a/backend/src/main/java/io/metersphere/performance/controller/request/ReportRequest.java b/backend/src/main/java/io/metersphere/performance/controller/request/ReportRequest.java index b1f47e9166..fa6b697f59 100644 --- a/backend/src/main/java/io/metersphere/performance/controller/request/ReportRequest.java +++ b/backend/src/main/java/io/metersphere/performance/controller/request/ReportRequest.java @@ -16,4 +16,5 @@ public class ReportRequest { private List orders; private Map> filters; private Map combine; + private String projectId; } diff --git a/backend/src/main/java/io/metersphere/performance/service/PerformanceTestService.java b/backend/src/main/java/io/metersphere/performance/service/PerformanceTestService.java index add70f7054..dcf8c57919 100644 --- a/backend/src/main/java/io/metersphere/performance/service/PerformanceTestService.java +++ b/backend/src/main/java/io/metersphere/performance/service/PerformanceTestService.java @@ -79,6 +79,7 @@ public class PerformanceTestService { public List list(QueryTestPlanRequest request) { request.setOrders(ServiceUtils.getDefaultOrder(request.getOrders())); + request.setProjectId(SessionUtils.getCurrentProjectId()); return extLoadTestMapper.list(request); } @@ -320,6 +321,7 @@ public class PerformanceTestService { orderRequest.setType("desc"); orders.add(orderRequest); request.setOrders(orders); + request.setProjectId(SessionUtils.getCurrentProjectId()); return extLoadTestMapper.list(request); } @@ -462,7 +464,11 @@ public class PerformanceTestService { .collect(Collectors.toList()); if (!resourceIds.isEmpty()) { LoadTestExample example = new LoadTestExample(); - example.createCriteria().andIdIn(resourceIds); + LoadTestExample.Criteria criteria = example.createCriteria(); + if (StringUtils.isNotBlank(SessionUtils.getCurrentProjectId())) { + criteria.andProjectIdEqualTo(SessionUtils.getCurrentProjectId()); + } + criteria.andIdIn(resourceIds); List loadTests = loadTestMapper.selectByExample(example); Map loadTestMap = loadTests.stream().collect(Collectors.toMap(LoadTest::getId, LoadTest::getName)); scheduleService.build(loadTestMap, schedules); diff --git a/backend/src/main/java/io/metersphere/performance/service/ReportService.java b/backend/src/main/java/io/metersphere/performance/service/ReportService.java index 1e6cc8b353..016852399b 100644 --- a/backend/src/main/java/io/metersphere/performance/service/ReportService.java +++ b/backend/src/main/java/io/metersphere/performance/service/ReportService.java @@ -10,6 +10,7 @@ import io.metersphere.commons.constants.ReportKeys; import io.metersphere.commons.exception.MSException; import io.metersphere.commons.utils.LogUtil; import io.metersphere.commons.utils.ServiceUtils; +import io.metersphere.commons.utils.SessionUtils; import io.metersphere.controller.request.OrderRequest; import io.metersphere.dto.LogDetailDTO; import io.metersphere.dto.ReportDTO; @@ -59,11 +60,13 @@ public class ReportService { orderRequest.setType("desc"); orders.add(orderRequest); request.setOrders(orders); + request.setProjectId(SessionUtils.getCurrentProjectId()); return extLoadTestReportMapper.getReportList(request); } public List getReportList(ReportRequest request) { request.setOrders(ServiceUtils.getDefaultOrder(request.getOrders())); + request.setProjectId(SessionUtils.getCurrentProjectId()); return extLoadTestReportMapper.getReportList(request); } diff --git a/backend/src/main/java/io/metersphere/xpack b/backend/src/main/java/io/metersphere/xpack index bb494fc68a..905ca8af61 160000 --- a/backend/src/main/java/io/metersphere/xpack +++ b/backend/src/main/java/io/metersphere/xpack @@ -1 +1 @@ -Subproject commit bb494fc68a2367359c9048fa7250c7618de4afb6 +Subproject commit 905ca8af61ce966d26109e9c5c8c0aee3ca1324e diff --git a/frontend/src/business/components/common/head/SearchList.vue b/frontend/src/business/components/common/head/SearchList.vue index b3f47d280f..5bf6e2fa18 100644 --- a/frontend/src/business/components/common/head/SearchList.vue +++ b/frontend/src/business/components/common/head/SearchList.vue @@ -32,12 +32,8 @@ export default { options: Object }, mounted() { - console.log('mounted') this.init(); }, - beforeDestroy() { - console.log('beforeDestroy') - }, data() { return { result: {}, @@ -55,21 +51,6 @@ export default { } } }, - computed: { - // getIndex: function () { - // return function (item) { - // return this.options.index(item); - // } - // }, - // getRouter: function () { - // return function (item) { - // if (this.options.router) { - // return this.options.router(item); - // } - // } - // } - }, - methods: { init: function () { if (hasRoles(ROLE_TEST_VIEWER, ROLE_TEST_USER, ROLE_TEST_MANAGER)) { diff --git a/frontend/src/business/components/xpack b/frontend/src/business/components/xpack index a22a3005d9..29a8fc0960 160000 --- a/frontend/src/business/components/xpack +++ b/frontend/src/business/components/xpack @@ -1 +1 @@ -Subproject commit a22a3005d9bd254793fcf634d72539cbdf31be3a +Subproject commit 29a8fc09602fde5708af06582ac972d98eb69836 From 069e3105de650f0f8433859695a529c3dd37188d Mon Sep 17 00:00:00 2001 From: fit2-zhao Date: Thu, 10 Dec 2020 18:29:32 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat(=E6=8E=A5=E5=8F=A3=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8C=96):=20=E4=BF=AE=E5=A4=8D=E7=BC=BA=E9=99=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/definition/components/ApiCaseList.vue | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/frontend/src/business/components/api/definition/components/ApiCaseList.vue b/frontend/src/business/components/api/definition/components/ApiCaseList.vue index a66ae5a779..449e7eb761 100644 --- a/frontend/src/business/components/api/definition/components/ApiCaseList.vue +++ b/frontend/src/business/components/api/definition/components/ApiCaseList.vue @@ -357,16 +357,18 @@ this.apiCaseList.unshift(obj); }, addCase() { - // 初始化对象 - let request = {}; - if (this.api.request instanceof Object) { - request = this.api.request; - } else { - request = JSON.parse(this.api.request); + if (this.api.request) { + // 初始化对象 + let request = {}; + if (this.api.request instanceof Object) { + request = this.api.request; + } else { + request = JSON.parse(this.api.request); + } + let obj = {apiDefinitionId: this.api.id, name: '', priority: 'P0', type: 'create', active: false}; + obj.request = request; + this.apiCaseList.unshift(obj); } - let obj = {apiDefinitionId: this.api.id, name: '', priority: 'P0', type: 'create', active: false}; - obj.request = request; - this.apiCaseList.unshift(obj); }, active(item) {