From f39933664f8c1da1e81eb3ac56b7247850d56ba2 Mon Sep 17 00:00:00 2001 From: song-tianyang Date: Tue, 2 Nov 2021 18:51:34 +0800 Subject: [PATCH] =?UTF-8?q?fix(Mock=E6=9C=9F=E6=9C=9B):=20#1003659=20#1003?= =?UTF-8?q?753=20=20=E6=96=B0=E5=BB=BAMock=E8=A7=84=E5=88=99=E6=97=B6?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=8A=A0=E8=BD=BD=E6=8E=A5=E5=8F=A3=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E4=B8=AD=E7=9A=84=E5=8F=82=E6=95=B0=EF=BC=8C=E5=8E=BB?= =?UTF-8?q?=E6=8E=89=E9=A1=B5=E9=9D=A2=E5=A4=9A=E4=BD=99=E7=9A=84=E5=86=85?= =?UTF-8?q?=E5=AE=B9=EF=BC=9BMock=E5=93=8D=E5=BA=94=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E8=84=9A=E6=9C=AC=E5=AE=9E=E7=8E=B0=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --story=1003659 --user=宋天阳 新建Mock规则时自动加载接口定义中的参数,去掉页面多余的内容 https://www.tapd.cn/55049933/s/1063157;--story=1003753 --user=宋天阳 Mock响应自定义脚本实现优化 https://www.tapd.cn/55049933/s/1063158 --- .../api/controller/MockConfigController.java | 5 +- .../api/dto/mock/MockApiUtils.java | 138 +++---- .../api/dto/mock/MockParamSuggestions.java | 10 + .../api/service/MockConfigService.java | 125 +++--- .../mock/Components/MockApiBody.vue | 10 +- .../mock/Components/MockApiScriptEditor.vue | 14 +- .../mock/Components/MockApiVariable.vue | 357 ++++++++++++++++++ .../mock/Components/MockRequestParam.vue | 23 +- .../components/mock/MockEditDrawer.vue | 5 +- .../definition/components/mock/MockTab.vue | 19 +- .../components/mock/TcpMockConfig.vue | 17 +- 11 files changed, 558 insertions(+), 165 deletions(-) create mode 100644 backend/src/main/java/io/metersphere/api/dto/mock/MockParamSuggestions.java create mode 100644 frontend/src/business/components/api/definition/components/mock/Components/MockApiVariable.vue diff --git a/backend/src/main/java/io/metersphere/api/controller/MockConfigController.java b/backend/src/main/java/io/metersphere/api/controller/MockConfigController.java index b0976073f5..cde61deaa6 100644 --- a/backend/src/main/java/io/metersphere/api/controller/MockConfigController.java +++ b/backend/src/main/java/io/metersphere/api/controller/MockConfigController.java @@ -1,6 +1,7 @@ package io.metersphere.api.controller; import io.metersphere.api.dto.mock.MockApiUtils; +import io.metersphere.api.dto.mock.MockParamSuggestions; import io.metersphere.api.dto.mockconfig.MockConfigRequest; import io.metersphere.api.dto.mockconfig.MockExpectConfigRequest; import io.metersphere.api.dto.mockconfig.response.MockConfigResponse; @@ -69,9 +70,9 @@ public class MockConfigController { } @GetMapping("/getApiParams/{id}") - public List> getApiParams(@PathVariable String id) { + public Map> getApiParams(@PathVariable String id) { ApiDefinitionWithBLOBs apiDefinitionWithBLOBs = apiDefinitionService.getBLOBs(id); - List> apiParams = mockConfigService.getApiParamsByApiDefinitionBLOBs(apiDefinitionWithBLOBs); + Map> apiParams = mockConfigService.getApiParamsByApiDefinitionBLOBs(apiDefinitionWithBLOBs); return apiParams; } diff --git a/backend/src/main/java/io/metersphere/api/dto/mock/MockApiUtils.java b/backend/src/main/java/io/metersphere/api/dto/mock/MockApiUtils.java index 785d59a050..61b54bc1de 100644 --- a/backend/src/main/java/io/metersphere/api/dto/mock/MockApiUtils.java +++ b/backend/src/main/java/io/metersphere/api/dto/mock/MockApiUtils.java @@ -5,9 +5,9 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONValidator; import io.metersphere.api.dto.mockconfig.response.JsonSchemaReturnObj; -import io.metersphere.base.domain.ApiDefinitionWithBLOBs; import io.metersphere.commons.exception.MSException; import io.metersphere.commons.json.JSONSchemaGenerator; +import io.metersphere.commons.utils.LogUtil; import io.metersphere.commons.utils.XMLUtils; import io.metersphere.jmeter.utils.ScriptEngineUtils; import org.apache.commons.collections.MapUtils; @@ -16,6 +16,7 @@ import org.apache.jmeter.protocol.java.sampler.JSR223Sampler; import org.apache.jmeter.samplers.SampleResult; import org.json.XML; +import javax.script.ScriptException; import javax.servlet.http.HttpServletRequest; import java.io.*; import java.util.*; @@ -40,11 +41,8 @@ public class MockApiUtils { Map mockExpectHeaders = new HashMap<>(); for(int i = 0; i < mockExpectHeaderArray.size(); i++){ JSONObject obj = mockExpectHeaderArray.getJSONObject(i); - if(obj.containsKey("name") && obj.containsKey("value") && obj.containsKey("enable")){ - boolean enable = obj.getBoolean("enable"); - if(enable){ - mockExpectHeaders.put(obj.getString("name"),obj.getString("value")); - } + if(obj.containsKey("name") && obj.containsKey("value")){ + mockExpectHeaders.put(obj.getString("name"),obj.getString("value")); } } if(MapUtils.isEmpty(requestHeaderMap) && MapUtils.isNotEmpty(mockExpectHeaders)){ @@ -212,11 +210,8 @@ public class MockApiUtils { JSONObject returnObject = new JSONObject(); for(int i = 0; i < array.size();i ++){ JSONObject obj = array.getJSONObject(i); - if(obj.containsKey("name") && obj.containsKey("value") && obj.containsKey("enable")){ - boolean isEnable = obj.getBoolean("enable"); - if(isEnable){ - returnObject.put(obj.getString("name"),obj.getString("value")); - } + if(obj.containsKey("name") && obj.containsKey("value")){ + returnObject.put(obj.getString("name"),obj.getString("value")); } } return returnObject; @@ -354,14 +349,17 @@ public class MockApiUtils { String script = scriptObj.getString("script"); String scriptLanguage =scriptObj.getString("scriptLanguage"); - Map scrpitParseMap = parseScript(script,url,headerMap,requestMockParams); - if(scrpitParseMap.containsKey("returnMsg")){ - returnStr = scrpitParseMap.get("returnMsg"); + String baseScript = parseScript(url,headerMap,requestMockParams); + try { + script = baseScript + script; + System.out.println(script); + if(StringUtils.isEmpty(scriptLanguage)){ + scriptLanguage = "beanshell"; + } + returnStr = runScript(script,scriptLanguage); + }catch (Exception e){ + LogUtil.error(e); } - if(scrpitParseMap.containsKey("script")){ - script = scrpitParseMap.get("script"); - } - runScript(script,scriptLanguage); } } @@ -370,75 +368,59 @@ public class MockApiUtils { } } - private static Map parseScript(String script,String url,Map headerMap,RequestMockParams requestMockParams) { - Map returnMap = new HashMap<>(); - String returnMsg = ""; - String newScript = ""; - if(StringUtils.isNotEmpty(script)){ - String [] scriptRowArr = StringUtils.split(script,"\n"); - for (String scriptItemRows : scriptRowArr) { - String [] scriptItemArr = scriptItemRows.split(";"); - for (String scriptRow :scriptItemArr) { - scriptRow = scriptRow.trim(); - if(StringUtils.startsWith(scriptRow,"returnMsg.add(") && StringUtils.endsWith(scriptRow,")")){ - scriptRow = scriptRow.substring(14,scriptRow.length()-1).trim(); - if(StringUtils.equalsIgnoreCase(scriptRow,"@address")){ - returnMsg += url; - }else if(StringUtils.startsWith(scriptRow,"@header(${") && StringUtils.endsWith(scriptRow,"})")){ - String paramName = scriptRow.substring(10,scriptRow.length()-2); - if(headerMap.containsKey(paramName)){ - returnMsg += headerMap.get(paramName); - } - }else if(StringUtils.startsWith(scriptRow,"@body(${") && StringUtils.endsWith(scriptRow,"})")){ - String paramName = scriptRow.substring(8,scriptRow.length()-2); - if(requestMockParams.getBodyParams() != null && requestMockParams.getBodyParams().size() > 0){ - JSONObject bodyParamObj = requestMockParams.getBodyParams().getJSONObject(0); - if(bodyParamObj.containsKey(paramName)){ - returnMsg += String.valueOf(bodyParamObj.get(paramName)); - } - } - }else if(StringUtils.equalsIgnoreCase(scriptRow,"@bodyRaw")){ - if(requestMockParams.getBodyParams() != null && requestMockParams.getBodyParams().size() > 0){ - JSONObject bodyParamObj = requestMockParams.getBodyParams().getJSONObject(0); - if(bodyParamObj.containsKey("raw")){ - returnMsg += String.valueOf(bodyParamObj.get("raw")); - } - } - }else if(StringUtils.startsWith(scriptRow,"@query(${") && StringUtils.endsWith(scriptRow,"})")){ - String paramName = scriptRow.substring(9,scriptRow.length()-2); - if(requestMockParams.getQueryParamsObj() != null && requestMockParams.getQueryParamsObj().containsKey(paramName)){ - returnMsg += String.valueOf(requestMockParams.getQueryParamsObj().get(paramName)); - } - }else if(StringUtils.startsWith(scriptRow,"@rest(${") && StringUtils.endsWith(scriptRow,"})")){ - String paramName = scriptRow.substring(8,scriptRow.length()-2); - if(requestMockParams.getRestParamsObj() != null && requestMockParams.getRestParamsObj().containsKey(paramName)){ - returnMsg += String.valueOf(requestMockParams.getRestParamsObj().get(paramName)); - } - }else { - returnMsg += scriptRow; - } - }else { - newScript += scriptRow +";"; + private static String parseScript(String url,Map headerMap,RequestMockParams requestMockParams) { + StringBuffer scriptStringBuffer = new StringBuffer(); + scriptStringBuffer.append("import java.util.HashMap;\n\n"); + scriptStringBuffer.append("HashMap requestParams = new HashMap();\n"); + scriptStringBuffer.append("requestParams.put(\"address\",\""+url+"\");\n"); + //写入请求头 + for (Map.Entry headEntry: headerMap.entrySet()){ + String headerKey = headEntry.getKey(); + String headerValue = headEntry.getValue(); + scriptStringBuffer.append("requestParams.put(\"header."+headerKey+"\",\""+headerValue+"\");\n"); + } + //写入body参数 + if(requestMockParams.getBodyParams() != null){ + if(requestMockParams.getBodyParams().size() == 1){ + //参数是jsonObject + JSONObject bodyParamObj = requestMockParams.getBodyParams().getJSONObject(0); + for(String key : bodyParamObj.keySet()){ + String value = String.valueOf(bodyParamObj.get(key)); + scriptStringBuffer.append("requestParams.put(\"body."+key+"\",\""+value+"\");\n"); + if(StringUtils.equalsIgnoreCase(key,"raw")){ + scriptStringBuffer.append("requestParams.put(\"bodyRaw\",\""+value+"\");\n"); } } - if(StringUtils.isNotEmpty(newScript)){ - newScript += "\n"; - } - if(StringUtils.isNotEmpty(returnMsg)){ - returnMsg += "\n"; - } + }else { + scriptStringBuffer.append("requestParams.put(\"bodyRaw\",\""+requestMockParams.getBodyParams().toJSONString()+"\");\n"); + } + + } + //写入query参数 + if(requestMockParams.getQueryParamsObj() != null){ + JSONObject queryParamsObj = requestMockParams.getQueryParamsObj(); + for(String key : queryParamsObj.keySet()){ + String value = String.valueOf(queryParamsObj.get(key)); + scriptStringBuffer.append("requestParams.put(\"query."+key+"\",\""+value+"\");\n"); } } - returnMap.put("script",newScript); - returnMap.put("returnMsg",returnMsg); - return returnMap; + //写入rest参数 + if(requestMockParams.getRestParamsObj() != null){ + JSONObject restParamsObj = requestMockParams.getRestParamsObj(); + for(String key : restParamsObj.keySet()){ + String value = String.valueOf(restParamsObj.get(key)); + scriptStringBuffer.append("requestParams.put(\"rest."+key+"\",\""+value+"\");\n"); + } + } + return scriptStringBuffer.toString(); } - private static void runScript(String script, String scriptLanguage) { + private static String runScript(String script, String scriptLanguage) throws ScriptException { JSR223Sampler jmeterScriptSampler = new JSR223Sampler(); jmeterScriptSampler.setScriptLanguage(scriptLanguage); jmeterScriptSampler.setScript(script); - jmeterScriptSampler.sample(null); + SampleResult result = jmeterScriptSampler.sample(null); + return result.getResponseDataAsString(); } diff --git a/backend/src/main/java/io/metersphere/api/dto/mock/MockParamSuggestions.java b/backend/src/main/java/io/metersphere/api/dto/mock/MockParamSuggestions.java new file mode 100644 index 0000000000..acd26bcda6 --- /dev/null +++ b/backend/src/main/java/io/metersphere/api/dto/mock/MockParamSuggestions.java @@ -0,0 +1,10 @@ +package io.metersphere.api.dto.mock; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class MockParamSuggestions { + private String value; +} diff --git a/backend/src/main/java/io/metersphere/api/service/MockConfigService.java b/backend/src/main/java/io/metersphere/api/service/MockConfigService.java index 76224f9874..addefd2e08 100644 --- a/backend/src/main/java/io/metersphere/api/service/MockConfigService.java +++ b/backend/src/main/java/io/metersphere/api/service/MockConfigService.java @@ -10,6 +10,7 @@ import io.metersphere.api.dto.automation.TcpTreeTableDataStruct; import io.metersphere.api.dto.automation.parse.TcpTreeTableDataParser; import io.metersphere.api.dto.definition.parse.ApiDefinitionImport; import io.metersphere.api.dto.mock.MockApiUtils; +import io.metersphere.api.dto.mock.MockParamSuggestions; import io.metersphere.api.dto.mock.RequestMockParams; import io.metersphere.api.dto.mockconfig.MockConfigImportDTO; import io.metersphere.api.dto.mockconfig.MockConfigRequest; @@ -358,14 +359,11 @@ public class MockConfigService { JSONArray headerArr = expectParamsObj.getJSONArray("headers"); for (int i = 0; i < headerArr.size(); i++) { JSONObject jsonObject = headerArr.getJSONObject(i); - if (jsonObject.containsKey("enable") && jsonObject.containsKey("name") && jsonObject.containsKey("value")) { - boolean isEnable = jsonObject.getBoolean("enable"); - if (isEnable) { - String headerName = jsonObject.getString("name"); - String headerValue = jsonObject.getString("value"); - if (!requestHeaderMap.containsKey(headerName) || !StringUtils.equals(requestHeaderMap.get(headerName), headerValue)) { - return false; - } + if (jsonObject.containsKey("name") && jsonObject.containsKey("value")) { + String headerName = jsonObject.getString("name"); + String headerValue = jsonObject.getString("value"); + if (!requestHeaderMap.containsKey(headerName) || !StringUtils.equals(requestHeaderMap.get(headerName), headerValue)) { + return false; } } } @@ -510,11 +508,8 @@ public class MockConfigService { JSONArray restArray = paramsObj.getJSONArray("rest"); for (int i = 0; i < restArray.size(); i++) { JSONObject restObj = restArray.getJSONObject(i); - if (restObj.containsKey("enable") && restObj.containsKey("name") && restObj.containsKey("value")) { - boolean isEnable = restObj.getBoolean("enable"); - if (isEnable) { - return null; - } + if (restObj.containsKey("name") && restObj.containsKey("value")) { + return null; } } } @@ -523,11 +518,8 @@ public class MockConfigService { JSONArray argumentsArray = paramsObj.getJSONArray("arguments"); for (int i = 0; i < argumentsArray.size(); i++) { JSONObject argumentsObj = argumentsArray.getJSONObject(i); - if (argumentsObj.containsKey("enable") && argumentsObj.containsKey("name") && argumentsObj.containsKey("value")) { - boolean isEnable = argumentsObj.getBoolean("enable"); - if (isEnable) { - return null; - } + if (argumentsObj.containsKey("name") && argumentsObj.containsKey("value")) { + return null; } } } @@ -566,11 +558,8 @@ public class MockConfigService { JSONArray kvsArray = bodyObj.getJSONArray("kvs"); for (int i = 0; i < kvsArray.size(); i++) { JSONObject kvsObj = kvsArray.getJSONObject(i); - if (kvsObj.containsKey("enable") && kvsObj.containsKey("name") && kvsObj.containsKey("value")) { - boolean isEnable = kvsObj.getBoolean("enable"); - if (isEnable) { - return null; - } + if (kvsObj.containsKey("name") && kvsObj.containsKey("value")) { + return null; } } } @@ -732,14 +721,11 @@ public class MockConfigService { JSONArray jsonArray = responseJsonObj.getJSONArray("headers"); for (int i = 0; i < jsonArray.size(); i++) { JSONObject object = jsonArray.getJSONObject(i); - if (object.containsKey("name") && object.containsKey("enable") && object.containsKey("value")) { - boolean isEnable = object.getBoolean("enable"); - if (isEnable) { - String name = String.valueOf(object.get("name")).trim(); - String value = String.valueOf(object.get("value")).trim(); - if (StringUtils.isNotEmpty(name)) { - response.setHeader(name, value); - } + if (object.containsKey("name") && object.containsKey("value")) { + String name = String.valueOf(object.get("name")).trim(); + String value = String.valueOf(object.get("value")).trim(); + if (StringUtils.isNotEmpty(name)) { + response.setHeader(name, value); } } } @@ -966,9 +952,9 @@ public class MockConfigService { } mockConfigMapper.deleteByExample(configExample); } - public List> getApiParamsByApiDefinitionBLOBs(ApiDefinitionWithBLOBs apiModel) { + public Map> getApiParamsByApiDefinitionBLOBs(ApiDefinitionWithBLOBs apiModel) { if (apiModel == null) { - return new ArrayList<>(); + return new HashMap<>(); } else if (StringUtils.equalsIgnoreCase("tcp", apiModel.getMethod())) { return this.getTCPApiParams(apiModel); } else { @@ -976,8 +962,8 @@ public class MockConfigService { } } - private List> getTCPApiParams(ApiDefinitionWithBLOBs apiModel) { - List> list = new ArrayList<>(); + private Map> getTCPApiParams(ApiDefinitionWithBLOBs apiModel) { + Map> returnMap = new HashMap<>(); List paramNameList = new ArrayList<>(); if (apiModel != null) { if (apiModel.getRequest() != null) { @@ -997,18 +983,23 @@ public class MockConfigService { } } } - - for (String param : paramNameList) { - Map map = new HashMap<>(); - map.put("value", param); - list.add(map); - } - return list; + List list = new ArrayList<>(); + paramNameList.forEach(item -> { + MockParamSuggestions model = new MockParamSuggestions(); + model.setValue(item); + list.add(model); + }); + returnMap.put("value",list); + return returnMap; } - private List> getHTTPApiParams(ApiDefinitionWithBLOBs apiModel) { - List> list = new ArrayList<>(); - List paramNameList = new ArrayList<>(); + private Map> getHTTPApiParams(ApiDefinitionWithBLOBs apiModel) { + Map> returnMap = new HashMap<>(); + + List queryParamList = new ArrayList<>(); + List restParamList = new ArrayList<>(); + List formDataList = new ArrayList<>(); + if (apiModel != null) { if (apiModel.getRequest() != null) { JSONObject requestObj = this.genJSONObject(apiModel.getRequest()); @@ -1020,8 +1011,8 @@ public class MockConfigService { for (int index = 0; index < headArr.size(); index++) { JSONObject headObj = headArr.getJSONObject(index); - if (headObj.containsKey("name") && !paramNameList.contains(headObj.containsKey("name"))) { - paramNameList.add(String.valueOf(headObj.get("name"))); + if (headObj.containsKey("name") && !queryParamList.contains(headObj.containsKey("name"))) { + queryParamList.add(String.valueOf(headObj.get("name"))); } } } catch (Exception e) { @@ -1032,8 +1023,8 @@ public class MockConfigService { JSONArray headArr = requestObj.getJSONArray("rest"); for (int index = 0; index < headArr.size(); index++) { JSONObject headObj = headArr.getJSONObject(index); - if (headObj.containsKey("name") && !paramNameList.contains(headObj.containsKey("name"))) { - paramNameList.add(String.valueOf(headObj.get("name"))); + if (headObj.containsKey("name") && !restParamList.contains(headObj.containsKey("name"))) { + restParamList.add(String.valueOf(headObj.get("name"))); } } } catch (Exception e) { @@ -1052,8 +1043,8 @@ public class MockConfigService { Map previewObjMap = new LinkedHashMap<>(); for (int i = 0; i < kvsArr.size(); i++) { JSONObject kv = kvsArr.getJSONObject(i); - if (kv.containsKey("name") && !paramNameList.contains(kv.containsKey("name"))) { - paramNameList.add(String.valueOf(kv.get("name"))); + if (kv.containsKey("name") && !formDataList.contains(kv.containsKey("name"))) { + formDataList.add(String.valueOf(kv.get("name"))); } } } @@ -1067,12 +1058,34 @@ public class MockConfigService { } } - for (String param : paramNameList) { - Map map = new HashMap<>(); - map.put("value", param); - list.add(map); + if(CollectionUtils.isNotEmpty(queryParamList)){ + List list = new ArrayList<>(); + queryParamList.forEach(item -> { + MockParamSuggestions model = new MockParamSuggestions(); + model.setValue(item); + list.add(model); + }); + returnMap.put("query",list); } - return list; + if(CollectionUtils.isNotEmpty(restParamList)){ + List list = new ArrayList<>(); + restParamList.forEach(item -> { + MockParamSuggestions model = new MockParamSuggestions(); + model.setValue(item); + list.add(model); + }); + returnMap.put("rest",list); + } + if(CollectionUtils.isNotEmpty(formDataList)){ + List list = new ArrayList<>(); + formDataList.forEach(item -> { + MockParamSuggestions model = new MockParamSuggestions(); + model.setValue(item); + list.add(model); + }); + returnMap.put("form",list); + } + return returnMap; } private JSONObject genJSONObject(String request) { diff --git a/frontend/src/business/components/api/definition/components/mock/Components/MockApiBody.vue b/frontend/src/business/components/api/definition/components/mock/Components/MockApiBody.vue index b32a044bd7..1cd30cb3d2 100644 --- a/frontend/src/business/components/api/definition/components/mock/Components/MockApiBody.vue +++ b/frontend/src/business/components/api/definition/components/mock/Components/MockApiBody.vue @@ -21,12 +21,13 @@ {{ $t('api_test.definition.request.body_raw') }} -
+
{{ $t("commons.batch_add") }} - +
+ + {{ description }} + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ + + + + diff --git a/frontend/src/business/components/api/definition/components/mock/Components/MockRequestParam.vue b/frontend/src/business/components/api/definition/components/mock/Components/MockRequestParam.vue index 04d680f937..a2f10b7357 100644 --- a/frontend/src/business/components/api/definition/components/mock/Components/MockRequestParam.vue +++ b/frontend/src/business/components/api/definition/components/mock/Components/MockRequestParam.vue @@ -17,7 +17,8 @@ {{ $t("commons.batch_add") }} - + @@ -31,7 +32,10 @@ {{ $t("commons.batch_add") }} - + @@ -47,12 +51,18 @@ {{ $t("commons.batch_add") }} - + - + @@ -100,7 +103,7 @@ export default { visible: false, mockConfigData: {}, tableSearch:"", - apiParams: [], + apiParams: {}, pageSize: 10, screenHeight:document.documentElement.clientHeight - 250, operators: [ @@ -125,7 +128,6 @@ export default { }, created() { this.mockConfigData = this.baseMockConfigData; - this.searchApiParams(this.mockConfigData.mockConfig.apiId); }, computed: { projectId() { @@ -136,7 +138,17 @@ export default { searchApiParams(apiId) { let selectUrl = "/mockConfig/getApiParams/" + apiId; this.$get(selectUrl, response => { + this.apiParams = response.data; + if(!this.apiParams.query){ + this.apiParams.query = []; + } + if(!this.apiParams.rest){ + this.apiParams.rest = []; + } + if(!this.apiParams.form){ + this.apiParams.form = []; + } }); }, changeStatus(row) { @@ -196,6 +208,7 @@ export default { }); }, addApiMock(){ + this.searchApiParams(this.mockConfigData.mockConfig.apiId); this.$refs.mockEditDrawer.open(); }, removeExpect(row) { diff --git a/frontend/src/business/components/api/definition/components/mock/TcpMockConfig.vue b/frontend/src/business/components/api/definition/components/mock/TcpMockConfig.vue index c6f6df0e16..62bf3831fc 100644 --- a/frontend/src/business/components/api/definition/components/mock/TcpMockConfig.vue +++ b/frontend/src/business/components/api/definition/components/mock/TcpMockConfig.vue @@ -183,15 +183,18 @@ export default { }, created() { this.mockConfigData = this.baseMockConfigData; - this.searchApiParams(this.mockConfigData.mockConfig.apiId); + // this.searchApiParams(this.mockConfigData.mockConfig.apiId); }, methods: { - searchApiParams(apiId) { - let selectUrl = "/mockConfig/getApiParams/" + apiId; - this.$get(selectUrl, response => { - this.apiParams = response.data; - }); - }, + // searchApiParams(apiId) { + // let selectUrl = "/mockConfig/getApiParams/" + apiId; + // this.$get(selectUrl, response => { + // let respData = response.data; + // if(respData.value){ + // this.apiParams = respData.value; + // } + // }); + // }, copyExpect(row) { let selectUrl = "/mockConfig/mockExpectConfig/" + row.id; this.$get(selectUrl, response => {