From 827d43c4e5b189152dc2b0a3a309b7e8efbd1bb2 Mon Sep 17 00:00:00 2001 From: chenjianxing Date: Mon, 12 Oct 2020 10:08:47 +0800 Subject: [PATCH 01/10] =?UTF-8?q?fix(=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95)?= =?UTF-8?q?:=20swagger=E5=AF=BC=E5=85=A5=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/metersphere/api/parse/Swagger2Parser.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/io/metersphere/api/parse/Swagger2Parser.java b/backend/src/main/java/io/metersphere/api/parse/Swagger2Parser.java index a982f5798a..0cd0d62e18 100644 --- a/backend/src/main/java/io/metersphere/api/parse/Swagger2Parser.java +++ b/backend/src/main/java/io/metersphere/api/parse/Swagger2Parser.java @@ -137,8 +137,10 @@ public class Swagger2Parser extends ApiImportAbstractParser { Model model = definitions.get(simpleRef); HashSet refSet = new HashSet<>(); refSet.add(simpleRef); - JSONObject bodyParameters = getBodyJSONObjectParameters(model.getProperties(), definitions, refSet); - body.setRaw(bodyParameters.toJSONString()); + if (model != null ) { + JSONObject bodyParameters = getBodyJSONObjectParameters(model.getProperties(), definitions, refSet); + body.setRaw(bodyParameters.toJSONString()); + } } else if (schema instanceof ArrayModel) { ArrayModel arrayModel = (ArrayModel) bodyParameter.getSchema(); Property items = arrayModel.getItems(); From 27e50e9ff0f44f955043a7f06dde83f47870124d Mon Sep 17 00:00:00 2001 From: q4speed Date: Mon, 12 Oct 2020 10:15:06 +0800 Subject: [PATCH 02/10] =?UTF-8?q?fix(=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95)?= =?UTF-8?q?:=20=E4=BF=AE=E5=A4=8D=E8=B7=A8=E5=9C=BA=E6=99=AF=E6=8B=BC?= =?UTF-8?q?=E6=8E=A5=E6=97=A0=E6=B3=95=E5=A4=9A=E6=AC=A1=E5=A4=8D=E5=88=B6?= =?UTF-8?q?=E5=90=8C=E4=B8=80=E5=9C=BA=E6=99=AF=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #509 --- .../components/api/test/components/ApiScenarioSelect.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/frontend/src/business/components/api/test/components/ApiScenarioSelect.vue b/frontend/src/business/components/api/test/components/ApiScenarioSelect.vue index 434341fac4..7c90de1762 100644 --- a/frontend/src/business/components/api/test/components/ApiScenarioSelect.vue +++ b/frontend/src/business/components/api/test/components/ApiScenarioSelect.vue @@ -99,6 +99,8 @@ export default { clone(row) { let scenarios = []; row.selected.forEach(options => { + // 去掉ID,创建新的ID + options.id = undefined; scenarios.push(new Scenario(options)); }) this.$emit('select', scenarios); From 70d677c4fc520e4bc1ac26a2b96d5d0a0a90a717 Mon Sep 17 00:00:00 2001 From: chenjianxing Date: Mon, 12 Oct 2020 11:34:38 +0800 Subject: [PATCH 03/10] =?UTF-8?q?fit(=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95)?= =?UTF-8?q?:=20=E5=AF=BC=E5=85=A5=E6=B5=8B=E8=AF=95=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=9C=AA=E5=8B=BE=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/metersphere/api/dto/scenario/KeyValue.java | 3 +++ backend/src/main/java/io/metersphere/xpack | 2 +- .../business/components/api/test/components/ApiKeyValue.vue | 2 +- .../business/components/api/test/components/ApiVariable.vue | 2 +- frontend/src/business/components/xpack | 2 +- 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/io/metersphere/api/dto/scenario/KeyValue.java b/backend/src/main/java/io/metersphere/api/dto/scenario/KeyValue.java index 64ec5780c1..45ab26da49 100644 --- a/backend/src/main/java/io/metersphere/api/dto/scenario/KeyValue.java +++ b/backend/src/main/java/io/metersphere/api/dto/scenario/KeyValue.java @@ -16,16 +16,19 @@ public class KeyValue { private boolean enable; public KeyValue() { + this.enable = true; } public KeyValue(String name, String value) { this.name = name; this.value = value; + this.enable = true; } public KeyValue(String name, String value, String description) { this.name = name; this.value = value; + this.enable = true; this.description = description; } } diff --git a/backend/src/main/java/io/metersphere/xpack b/backend/src/main/java/io/metersphere/xpack index c2dacf960c..cf6b065263 160000 --- a/backend/src/main/java/io/metersphere/xpack +++ b/backend/src/main/java/io/metersphere/xpack @@ -1 +1 @@ -Subproject commit c2dacf960cdb1ed35664bdd3432120b1203b73d8 +Subproject commit cf6b06526324326a563d933e07118fac014a63b4 diff --git a/frontend/src/business/components/api/test/components/ApiKeyValue.vue b/frontend/src/business/components/api/test/components/ApiKeyValue.vue index 5cd862e449..f1362e6322 100644 --- a/frontend/src/business/components/api/test/components/ApiKeyValue.vue +++ b/frontend/src/business/components/api/test/components/ApiKeyValue.vue @@ -103,7 +103,7 @@ }, }, created() { - if (this.items.length === 0) { + if (this.items.length === 0 || this.items[this.items.length - 1].name) { this.items.push(new KeyValue({enable: true})); } } diff --git a/frontend/src/business/components/api/test/components/ApiVariable.vue b/frontend/src/business/components/api/test/components/ApiVariable.vue index 68d02ab625..cd36f59bf1 100644 --- a/frontend/src/business/components/api/test/components/ApiVariable.vue +++ b/frontend/src/business/components/api/test/components/ApiVariable.vue @@ -168,7 +168,7 @@ } }, created() { - if (this.parameters.length === 0) { + if (this.parameters.length === 0 || this.parameters[this.parameters.length - 1].name) { this.parameters.push(new KeyValue( {type: 'text', enable: true, uuid: this.uuid(), contentType: 'text/plain'})); } } diff --git a/frontend/src/business/components/xpack b/frontend/src/business/components/xpack index cc38137a69..06d935cd1d 160000 --- a/frontend/src/business/components/xpack +++ b/frontend/src/business/components/xpack @@ -1 +1 @@ -Subproject commit cc38137a69a0f20fadece9c0f9f50a9468c4ace9 +Subproject commit 06d935cd1d22ab36f09763745c2aff8ad3fb08c1 From a043722a05d047fe88f180a25381450c16326d6f Mon Sep 17 00:00:00 2001 From: wenyann <64353056+wenyann@users.noreply.github.com> Date: Mon, 12 Oct 2020 13:05:07 +0800 Subject: [PATCH 04/10] =?UTF-8?q?fix:=20=E5=AF=BC=E5=87=BA=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=94=A8=E4=BE=8B=E5=8A=A0=E5=A4=87=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/metersphere/track/service/TestCaseService.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/io/metersphere/track/service/TestCaseService.java b/backend/src/main/java/io/metersphere/track/service/TestCaseService.java index 156dc23ca8..dc827b3246 100644 --- a/backend/src/main/java/io/metersphere/track/service/TestCaseService.java +++ b/backend/src/main/java/io/metersphere/track/service/TestCaseService.java @@ -41,7 +41,9 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; -import java.io.*; +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.OutputStream; import java.net.URLEncoder; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; @@ -492,7 +494,7 @@ public class TestCaseService { if (t.getTestId() != null && t.getTestId().equals("other")) { data.setRemark(t.getOtherTestName()); } else { - data.setRemark(t.getApiName()); + data.setRemark("[" + t.getApiName() + "]" + "\n" + t.getRemark()); } } else if (t.getMethod().equals("auto") && t.getType().equals("performance")) { From 62a6af8758a8b7c32c55ec55ffa7259b555d25bf Mon Sep 17 00:00:00 2001 From: q4speed Date: Mon, 12 Oct 2020 13:09:40 +0800 Subject: [PATCH 05/10] =?UTF-8?q?fix(=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95)?= =?UTF-8?q?:=20=E4=BF=AE=E5=A4=8D=E6=9D=A1=E4=BB=B6=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E5=99=A8=E5=88=A4=E6=96=ADbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/api/test/model/ScenarioModel.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/src/business/components/api/test/model/ScenarioModel.js b/frontend/src/business/components/api/test/model/ScenarioModel.js index 7e6c44c8d6..fb32d13cab 100644 --- a/frontend/src/business/components/api/test/model/ScenarioModel.js +++ b/frontend/src/business/components/api/test/model/ScenarioModel.js @@ -1219,21 +1219,22 @@ class JMXGenerator { if (request.controller.isValid() && request.controller.enable) { if (request.controller instanceof IfController) { let name = request.controller.label(); - let variable = request.controller.variable; + let variable = "\"" + request.controller.variable + "\""; let operator = request.controller.operator; - let value = request.controller.value; + let value = "\"" + request.controller.value + "\""; + if (operator === "=~" || operator === "!~") { - value = "\".*" + value + ".*\""; + value = "\".*" + request.controller.value + ".*\""; } if (operator === "is empty") { - variable = "empty(\"" + variable + "\")"; + variable = "empty(" + variable + ")"; operator = ""; value = ""; } if (operator === "is not empty") { - variable = "!empty(\"" + variable + "\")"; + variable = "!empty(" + variable + ")"; operator = ""; value = ""; } From 9f2eeda2768f56a19eefacb7e32423c643b47438 Mon Sep 17 00:00:00 2001 From: "Captain.B" Date: Mon, 12 Oct 2020 09:54:28 +0800 Subject: [PATCH 06/10] =?UTF-8?q?refactor:=20=E8=A1=A8=E6=A0=BC=E8=BE=B9?= =?UTF-8?q?=E6=A1=86hover=E4=B9=8B=E5=90=8E=E7=9A=84=E9=A2=9C=E8=89=B2?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit d524f7654940f5935231c72e78f51f58a0f8490b) --- frontend/src/common/css/main.css | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/frontend/src/common/css/main.css b/frontend/src/common/css/main.css index 5a45490239..183089bbd6 100644 --- a/frontend/src/common/css/main.css +++ b/frontend/src/common/css/main.css @@ -27,14 +27,14 @@ body { } /*解决高度塌陷和边距重叠*/ -.clearfix:before,.clearfix:after{ +.clearfix:before, .clearfix:after { content: ""; display: table; clear: both; } /*解决富文本框中link显示问题*/ -.ck-rounded-corners .ck.ck-balloon-panel,.ck.ck-balloon-panel.ck-rounded-corners { +.ck-rounded-corners .ck.ck-balloon-panel, .ck.ck-balloon-panel.ck-rounded-corners { z-index: 10055 !important; } @@ -74,12 +74,18 @@ body { width: 3px; background-color: #EBEEF5; } + +.adjust-table tr:hover td { + border-color: #f5f7fa; +} + /* 表格拖拽表头调整宽度 --> */ /* <-- 表格 input 编辑效果*/ .table-edit-input .el-textarea__inner { border-style: hidden; } + .table-edit-input.is-disabled .el-textarea__inner { background-color: white; color: #606266; @@ -93,6 +99,7 @@ body { .table-edit-input .el-textarea__inner:focus { border: 1px solid #409EFF; } + /* 表格 input 编辑效果 --> */ .ms-border { From b6a064e5cc66f48ab06f8d70ab109081f57c03fa Mon Sep 17 00:00:00 2001 From: "Captain.B" Date: Mon, 12 Oct 2020 13:08:19 +0800 Subject: [PATCH 07/10] =?UTF-8?q?refactor:=20=E8=A1=A8=E6=A0=BC=E8=BE=B9?= =?UTF-8?q?=E6=A1=86hover=E4=B9=8B=E5=90=8E=E7=9A=84=E9=A2=9C=E8=89=B2?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 6d1fb1583f86a00eca06a5705e758bb9ae2e726d) --- frontend/src/common/css/main.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/common/css/main.css b/frontend/src/common/css/main.css index 183089bbd6..5733ca60f5 100644 --- a/frontend/src/common/css/main.css +++ b/frontend/src/common/css/main.css @@ -50,7 +50,7 @@ body { /* <-- 表格拖拽表头调整宽度,在 t-bable 上添加 border 属性,并添加 adjust-table 类名*/ .adjust-table td { - border-right-color: white; + border: 0; } .adjust-table th { @@ -76,7 +76,7 @@ body { } .adjust-table tr:hover td { - border-color: #f5f7fa; + border: 0; } /* 表格拖拽表头调整宽度 --> */ From 00424b0255606ec1a6d2674b156c727b20da4c44 Mon Sep 17 00:00:00 2001 From: "Captain.B" Date: Mon, 12 Oct 2020 13:18:02 +0800 Subject: [PATCH 08/10] =?UTF-8?q?revert:=20=E5=9B=9E=E9=80=80td=E7=9A=84?= =?UTF-8?q?=E5=BA=95=E9=83=A8border?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit ff7454f6efe13e69d090193c2e8d103a51330936) --- frontend/src/common/css/main.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/common/css/main.css b/frontend/src/common/css/main.css index 5733ca60f5..47be41d8f7 100644 --- a/frontend/src/common/css/main.css +++ b/frontend/src/common/css/main.css @@ -50,7 +50,7 @@ body { /* <-- 表格拖拽表头调整宽度,在 t-bable 上添加 border 属性,并添加 adjust-table 类名*/ .adjust-table td { - border: 0; + border-right-color: white; } .adjust-table th { From 5803eccc2b41936b425ad7f77007601727734a61 Mon Sep 17 00:00:00 2001 From: "Captain.B" Date: Mon, 12 Oct 2020 13:25:43 +0800 Subject: [PATCH 09/10] =?UTF-8?q?refactor:=20=E8=A1=A8=E6=A0=BC=E5=8F=88?= =?UTF-8?q?=E8=BE=B9=E6=A1=86=E8=AE=BE=E7=BD=AE=E4=B8=BA0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit fed5d15589eccd1d035a3d7ddc1f0d25f3a717a0) --- frontend/src/common/css/main.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/common/css/main.css b/frontend/src/common/css/main.css index 47be41d8f7..495579dc6a 100644 --- a/frontend/src/common/css/main.css +++ b/frontend/src/common/css/main.css @@ -50,7 +50,7 @@ body { /* <-- 表格拖拽表头调整宽度,在 t-bable 上添加 border 属性,并添加 adjust-table 类名*/ .adjust-table td { - border-right-color: white; + border-right: 0; } .adjust-table th { @@ -76,7 +76,7 @@ body { } .adjust-table tr:hover td { - border: 0; + border-right: 0; } /* 表格拖拽表头调整宽度 --> */ From 9b1ff67b7f1fcc668441b97b3dd885ba4bccadad Mon Sep 17 00:00:00 2001 From: chenjianxing Date: Mon, 12 Oct 2020 16:03:17 +0800 Subject: [PATCH 10/10] =?UTF-8?q?fix(=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95)?= =?UTF-8?q?:=20=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E8=A1=A8=E5=A4=B4=E6=8F=90=E7=A4=BA=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/metersphere/excel/listener/EasyExcelListener.java | 7 +------ .../metersphere/excel/listener/TestCaseDataListener.java | 6 ++++-- .../java/io/metersphere/track/service/TestCaseService.java | 5 +++-- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/backend/src/main/java/io/metersphere/excel/listener/EasyExcelListener.java b/backend/src/main/java/io/metersphere/excel/listener/EasyExcelListener.java index 77ce4d66f4..85f6dc31f6 100644 --- a/backend/src/main/java/io/metersphere/excel/listener/EasyExcelListener.java +++ b/backend/src/main/java/io/metersphere/excel/listener/EasyExcelListener.java @@ -29,12 +29,7 @@ public abstract class EasyExcelListener extends AnalysisEventListener { */ protected static final int BATCH_COUNT = 2000; - protected Class clazz; - - public EasyExcelListener() { - Type type = getClass().getGenericSuperclass(); - this.clazz = (Class) ((ParameterizedType) type).getActualTypeArguments()[0]; - } + protected Class clazz; /** * 每条数据解析都会调用 diff --git a/backend/src/main/java/io/metersphere/excel/listener/TestCaseDataListener.java b/backend/src/main/java/io/metersphere/excel/listener/TestCaseDataListener.java index d4d590586d..1dff285527 100644 --- a/backend/src/main/java/io/metersphere/excel/listener/TestCaseDataListener.java +++ b/backend/src/main/java/io/metersphere/excel/listener/TestCaseDataListener.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import io.metersphere.base.domain.TestCaseWithBLOBs; import io.metersphere.commons.constants.TestCaseConstants; import io.metersphere.commons.utils.BeanUtils; +import io.metersphere.commons.utils.CommonBeanFactory; import io.metersphere.excel.domain.TestCaseExcelData; import io.metersphere.i18n.Translator; import io.metersphere.track.service.TestCaseService; @@ -25,8 +26,9 @@ public class TestCaseDataListener extends EasyExcelListener { Set userIds; - public TestCaseDataListener(TestCaseService testCaseService, String projectId, Set testCaseNames, Set userIds) { - this.testCaseService = testCaseService; + public TestCaseDataListener(Class clazz, String projectId, Set testCaseNames, Set userIds) { + this.clazz = clazz; + this.testCaseService = (TestCaseService) CommonBeanFactory.getBean("testCaseService"); this.projectId = projectId; this.testCaseNames = testCaseNames; this.userIds = userIds; diff --git a/backend/src/main/java/io/metersphere/track/service/TestCaseService.java b/backend/src/main/java/io/metersphere/track/service/TestCaseService.java index 156dc23ca8..f168a2cf07 100644 --- a/backend/src/main/java/io/metersphere/track/service/TestCaseService.java +++ b/backend/src/main/java/io/metersphere/track/service/TestCaseService.java @@ -317,8 +317,9 @@ public class TestCaseService { Set userIds = userRoleMapper.selectByExample(userRoleExample).stream().map(UserRole::getUserId).collect(Collectors.toSet()); try { - EasyExcelListener easyExcelListener = new TestCaseDataListener(this, projectId, testCaseNames, userIds); - EasyExcelFactory.read(multipartFile.getInputStream(), new TestCaseExcelDataFactory().getExcelDataByLocal(), easyExcelListener).sheet().doRead(); + Class clazz = new TestCaseExcelDataFactory().getExcelDataByLocal(); + EasyExcelListener easyExcelListener = new TestCaseDataListener(clazz, projectId, testCaseNames, userIds); + EasyExcelFactory.read(multipartFile.getInputStream(), clazz, easyExcelListener).sheet().doRead(); errList = easyExcelListener.getErrList(); } catch (Exception e) { LogUtil.error(e.getMessage(), e);