From a637659723f24e0f559fbe54edbc7c9187e2c81e Mon Sep 17 00:00:00 2001 From: guoyuqi Date: Thu, 7 Jul 2022 12:28:07 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95):=20po?= =?UTF-8?q?stman=20=E5=AF=BC=E5=85=A5=E5=92=8Char=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E6=97=B6=E4=B8=8D=E5=8E=BB=E9=87=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --user=郭雨琦 --bug=1014714 https://www.tapd.cn/55049933/bugtrace/bugs/view/1155049933001014715 --- .../api/dto/definition/parse/HarParser.java | 7 --- .../parse/PostmanDefinitionParser.java | 46 ++++++------------- .../api/service/ApiModuleService.java | 3 ++ .../api/service/ApiScenarioModuleService.java | 16 +++---- 4 files changed, 24 insertions(+), 48 deletions(-) diff --git a/backend/src/main/java/io/metersphere/api/dto/definition/parse/HarParser.java b/backend/src/main/java/io/metersphere/api/dto/definition/parse/HarParser.java index d18702a7d0..a9f545265c 100644 --- a/backend/src/main/java/io/metersphere/api/dto/definition/parse/HarParser.java +++ b/backend/src/main/java/io/metersphere/api/dto/definition/parse/HarParser.java @@ -64,7 +64,6 @@ public class HarParser extends HarAbstractParser { harEntryList = har.log.entries; } - List savedUrl = new ArrayList<>(); for (HarEntry entry : harEntryList) { HarRequest harRequest = entry.request; @@ -81,12 +80,6 @@ public class HarParser extends HarAbstractParser { } catch (Exception e) { } - if (savedUrl.contains(harRequest.url)) { - continue; - } else { - savedUrl.add(harRequest.url); - } - //默认取路径的最后一块 String reqName = ""; if (harRequest.url != null) { diff --git a/backend/src/main/java/io/metersphere/api/dto/definition/parse/PostmanDefinitionParser.java b/backend/src/main/java/io/metersphere/api/dto/definition/parse/PostmanDefinitionParser.java index cb0f25bf25..051e792850 100644 --- a/backend/src/main/java/io/metersphere/api/dto/definition/parse/PostmanDefinitionParser.java +++ b/backend/src/main/java/io/metersphere/api/dto/definition/parse/PostmanDefinitionParser.java @@ -8,22 +8,16 @@ import io.metersphere.api.dto.definition.request.sampler.MsHTTPSamplerProxy; import io.metersphere.api.dto.definition.response.HttpResponse; import io.metersphere.api.dto.parse.postman.PostmanCollection; import io.metersphere.api.dto.parse.postman.PostmanItem; -import io.metersphere.api.dto.parse.postman.PostmanKeyValue; import io.metersphere.api.parse.PostmanAbstractParserParser; import io.metersphere.base.domain.ApiDefinitionWithBLOBs; import io.metersphere.base.domain.ApiTestCaseWithBLOBs; -import io.metersphere.base.domain.Project; -import io.metersphere.base.mapper.ProjectMapper; -import io.metersphere.commons.constants.ProjectApplicationType; import io.metersphere.commons.exception.MSException; import io.metersphere.commons.utils.BeanUtils; -import io.metersphere.commons.utils.CommonBeanFactory; -import io.metersphere.dto.ProjectConfig; -import io.metersphere.service.ProjectApplicationService; import org.apache.commons.lang3.StringUtils; import java.io.InputStream; -import java.util.*; +import java.util.ArrayList; +import java.util.List; public class PostmanDefinitionParser extends PostmanAbstractParserParser { @@ -42,7 +36,6 @@ public class PostmanDefinitionParser extends PostmanAbstractParserParser variables = postmanCollection.getVariable(); ApiDefinitionImport apiImport = new ApiDefinitionImport(); List results = new ArrayList<>(); @@ -51,23 +44,15 @@ public class PostmanDefinitionParser extends PostmanAbstractParserParser cases = new ArrayList<>(); - Map repeatMap = new HashMap(); - ProjectMapper projectMapper = CommonBeanFactory.getBean(ProjectMapper.class); - Project project = projectMapper.selectByPrimaryKey(request.getProjectId()); - ProjectApplicationService projectApplicationService = CommonBeanFactory.getBean(ProjectApplicationService.class); - ProjectConfig config = projectApplicationService.getSpecificTypeValue(project.getId(), ProjectApplicationType.URL_REPEATABLE.name()); - boolean urlRepeat = config.getUrlRepeatable(); - parseItem(postmanCollection.getItem(), modulePath, variables, results, - cases, repeatMap, urlRepeat); - Collections.reverse(results); // 调整顺序 - Collections.reverse(cases); + parseItem(postmanCollection.getItem(), modulePath, results, + cases); apiImport.setData(results); apiImport.setCases(cases); return apiImport; } - protected void parseItem(List items, String modulePath, List variables, List results, - List cases, Map repeatMap, Boolean repeatable) { + protected void parseItem(List items, String modulePath, List results, + List cases) { for (PostmanItem item : items) { List childItems = item.getItem(); if (childItems != null) { @@ -75,7 +60,7 @@ public class PostmanDefinitionParser extends PostmanAbstractParserParser { moduleMap.remove(modulePath); removeModulePath(moduleMap, moduleOptionData, modulePath); } + moduleDatas.remove(apiDefinitionWithBLOBs); } optionData.remove(apiDefinitionWithBLOBs); } @@ -984,7 +985,9 @@ public class ApiModuleService extends NodeTreeService { moduleMap.remove(modulePath); removeModulePath(moduleMap, moduleOptionData, modulePath); } + moduleDatas.remove(apiDefinitionWithBLOBs); } + optionData.remove(apiDefinitionWithBLOBs); } }; diff --git a/backend/src/main/java/io/metersphere/api/service/ApiScenarioModuleService.java b/backend/src/main/java/io/metersphere/api/service/ApiScenarioModuleService.java index 119431dcbb..ab4c1a34af 100644 --- a/backend/src/main/java/io/metersphere/api/service/ApiScenarioModuleService.java +++ b/backend/src/main/java/io/metersphere/api/service/ApiScenarioModuleService.java @@ -601,15 +601,15 @@ public class ApiScenarioModuleService extends NodeTreeService { ApiScenarioWithBLOBs apiScenarioWithBLOBs = nameModuleMap.get(k); if (apiScenarioWithBLOBs != null) { - if (apiScenarioWithBLOBs != null) { - String modulePath = apiScenarioWithBLOBs.getModulePath(); - List moduleDatas = moduleOptionData.get(modulePath); - if (moduleDatas != null) { - if (moduleDatas.size() <= 1) { - moduleMap.remove(modulePath); - removeModulePath(moduleMap, moduleOptionData, modulePath); - } + String modulePath = apiScenarioWithBLOBs.getModulePath(); + List moduleDatas = moduleOptionData.get(modulePath); + if (moduleDatas != null) { + if (moduleDatas.size() <= 1) { + moduleMap.remove(modulePath); + removeModulePath(moduleMap, moduleOptionData, modulePath); } + moduleDatas.remove(apiScenarioWithBLOBs); + } optionData.remove(apiScenarioWithBLOBs); }