From 595a594d508834261ad31bfd2951a13bc20f465b Mon Sep 17 00:00:00 2001 From: Coooder-X <55648333+Coooder-X@users.noreply.github.com> Date: Fri, 5 Mar 2021 17:31:05 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=9C=BA=E6=99=AF=E6=AD=A5=E9=AA=A4?= =?UTF-8?q?=E3=80=81=E7=8E=AF=E5=A2=83=E9=85=8D=E7=BD=AE):=20=E5=9C=BA?= =?UTF-8?q?=E6=99=AF=E5=8F=98=E9=87=8F=E3=80=81=E7=8E=AF=E5=A2=83=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=20=E6=94=AF=E6=8C=81mock=E5=8F=82=E6=95=B0=20(#1566)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(测试跟踪): 测试用例下载模版增加标签列 * fix(接口定义): 扩大请求头键长度 * feat(场景步骤、环境配置): 场景变量、环境配置支持mock参数 --- .../dto/definition/request/MsScenario.java | 3 +- .../definition/request/ParameterConfig.java | 11 +++ .../request/sampler/MsHTTPSamplerProxy.java | 2 +- .../scenario/variable/EditConstant.vue | 70 ++++++++++++++----- .../components/ApiScenarioVariables.vue | 37 ++++++++-- .../test/components/ApiVariableAdvance.vue | 1 + 6 files changed, 102 insertions(+), 22 deletions(-) diff --git a/backend/src/main/java/io/metersphere/api/dto/definition/request/MsScenario.java b/backend/src/main/java/io/metersphere/api/dto/definition/request/MsScenario.java index 4f321bdca7..77e2c687db 100644 --- a/backend/src/main/java/io/metersphere/api/dto/definition/request/MsScenario.java +++ b/backend/src/main/java/io/metersphere/api/dto/definition/request/MsScenario.java @@ -15,6 +15,7 @@ import io.metersphere.api.service.ApiTestEnvironmentService; import io.metersphere.base.domain.ApiScenarioWithBLOBs; import io.metersphere.base.domain.ApiTestEnvironmentWithBLOBs; import io.metersphere.commons.utils.CommonBeanFactory; +import io.metersphere.commons.utils.ScriptEngineUtils; import io.metersphere.commons.utils.SessionUtils; import lombok.Data; import lombok.EqualsAndHashCode; @@ -132,7 +133,7 @@ public class MsScenario extends MsTestElement { // 场景变量和环境变量 Arguments arguments = arguments(config); if (arguments != null) { - tree.add(arguments); + tree.add(config.valueSupposeMock(arguments)); } this.addCsvDataSet(tree, variables); this.addCounter(tree, variables); diff --git a/backend/src/main/java/io/metersphere/api/dto/definition/request/ParameterConfig.java b/backend/src/main/java/io/metersphere/api/dto/definition/request/ParameterConfig.java index e5117db258..acf0e3313d 100644 --- a/backend/src/main/java/io/metersphere/api/dto/definition/request/ParameterConfig.java +++ b/backend/src/main/java/io/metersphere/api/dto/definition/request/ParameterConfig.java @@ -2,7 +2,9 @@ package io.metersphere.api.dto.definition.request; import io.metersphere.api.dto.definition.request.variable.ScenarioVariable; import io.metersphere.api.dto.scenario.environment.EnvironmentConfig; +import io.metersphere.commons.utils.ScriptEngineUtils; import lombok.Data; +import org.apache.jmeter.config.Arguments; import java.util.List; import java.util.Map; @@ -37,4 +39,13 @@ public class ParameterConfig { } return false; } + + static public Arguments valueSupposeMock(Arguments arguments) { + for(int i = 0; i < arguments.getArguments().size(); ++i) { + String argValue = arguments.getArgument(i).getValue(); + arguments.getArgument(i).setValue(ScriptEngineUtils.calculate(argValue)); + } + return arguments; + } + } \ No newline at end of file diff --git a/backend/src/main/java/io/metersphere/api/dto/definition/request/sampler/MsHTTPSamplerProxy.java b/backend/src/main/java/io/metersphere/api/dto/definition/request/sampler/MsHTTPSamplerProxy.java index cf61040421..128685a0e8 100644 --- a/backend/src/main/java/io/metersphere/api/dto/definition/request/sampler/MsHTTPSamplerProxy.java +++ b/backend/src/main/java/io/metersphere/api/dto/definition/request/sampler/MsHTTPSamplerProxy.java @@ -122,7 +122,7 @@ public class MsHTTPSamplerProxy extends MsTestElement { // 添加环境中的公共变量 Arguments arguments = this.addArguments(config); if (arguments != null) { - tree.add(arguments); + tree.add(config.valueSupposeMock(arguments)); } try { if (config.isEffective(this.getProjectId())) { diff --git a/frontend/src/business/components/api/automation/scenario/variable/EditConstant.vue b/frontend/src/business/components/api/automation/scenario/variable/EditConstant.vue index 23f3a945db..84cb7bc194 100644 --- a/frontend/src/business/components/api/automation/scenario/variable/EditConstant.vue +++ b/frontend/src/business/components/api/automation/scenario/variable/EditConstant.vue @@ -1,30 +1,68 @@