diff --git a/backend/services/api-test/src/main/java/io/metersphere/api/parser/api/HarParserApiDefinition.java b/backend/services/api-test/src/main/java/io/metersphere/api/parser/api/HarParserApiDefinition.java index 5236b48418..06cd9166ee 100644 --- a/backend/services/api-test/src/main/java/io/metersphere/api/parser/api/HarParserApiDefinition.java +++ b/backend/services/api-test/src/main/java/io/metersphere/api/parser/api/HarParserApiDefinition.java @@ -242,7 +242,7 @@ public class HarParserApiDefinition extends HttpApiDefinitionImportAbstractParse HarRequest harRequest = entry.request; if (harRequest != null) { // css 、 js 略过 - if (StringUtils.equalsIgnoreCase(harRequest.method, HttpMethodConstants.GET.name()) && StringUtils.endsWithAny(harRequest.url, ".css", ".js")) { + if (StringUtils.equalsIgnoreCase(harRequest.method, HttpMethodConstants.GET.name()) && StringUtils.endsWithAny(harRequest.url.toLowerCase(), ".css", ".js", ".png", ".jpg", ".jpeg")) { continue; } String url = harRequest.url; diff --git a/backend/services/api-test/src/main/java/io/metersphere/api/parser/api/HttpApiDefinitionImportAbstractParser.java b/backend/services/api-test/src/main/java/io/metersphere/api/parser/api/HttpApiDefinitionImportAbstractParser.java index 69fdeff224..ecb1521bcc 100644 --- a/backend/services/api-test/src/main/java/io/metersphere/api/parser/api/HttpApiDefinitionImportAbstractParser.java +++ b/backend/services/api-test/src/main/java/io/metersphere/api/parser/api/HttpApiDefinitionImportAbstractParser.java @@ -7,10 +7,12 @@ import io.metersphere.api.dto.converter.ApiImportFileParseResult; import io.metersphere.api.dto.definition.ApiDefinitionMockDTO; import io.metersphere.api.dto.definition.ApiTestCaseDTO; import io.metersphere.api.dto.request.ImportRequest; +import io.metersphere.api.dto.request.MsCommonElement; import io.metersphere.api.dto.request.http.MsHTTPConfig; import io.metersphere.api.dto.request.http.MsHTTPElement; import io.metersphere.api.dto.request.http.body.*; import io.metersphere.api.parser.ApiDefinitionImportParser; +import io.metersphere.plugin.api.spi.AbstractMsTestElement; import io.metersphere.project.dto.environment.auth.NoAuth; import io.metersphere.sdk.exception.MSException; import io.metersphere.sdk.util.LogUtils; @@ -24,6 +26,7 @@ import java.io.InputStreamReader; import java.net.URI; import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -109,6 +112,7 @@ public abstract class HttpApiDefinitionImportAbstractParser implements ApiDef httpConfig.setResponseTimeout(60000L); request.setOtherConfig(httpConfig); request.setAuthConfig(new NoAuth()); + // assertionConfig Body body = new Body(); body.setBinaryBody(new BinaryBody()); body.setFormDataBody(new FormDataBody()); @@ -120,6 +124,12 @@ public abstract class HttpApiDefinitionImportAbstractParser implements ApiDef body.setNoneBody(new NoneBody()); body.setBodyType(Body.BodyType.NONE.name()); request.setBody(body); + + MsCommonElement commonElement = new MsCommonElement(); + LinkedList children = new LinkedList<>(); + children.add(commonElement); + request.setChildren(children); + return request; } diff --git a/backend/services/api-test/src/main/java/io/metersphere/api/service/definition/ApiDefinitionImportService.java b/backend/services/api-test/src/main/java/io/metersphere/api/service/definition/ApiDefinitionImportService.java index 61ce967fac..6258c730a8 100644 --- a/backend/services/api-test/src/main/java/io/metersphere/api/service/definition/ApiDefinitionImportService.java +++ b/backend/services/api-test/src/main/java/io/metersphere/api/service/definition/ApiDefinitionImportService.java @@ -680,6 +680,12 @@ public class ApiDefinitionImportService { this.updateApiDefinitionRequest(importApi, msProtocolTestElement, request.getPlatform()); apiDefinitionPreImportAnalysisResult.getUpdateApiData().add(importApi); } + } else if (!StringUtils.equalsIgnoreCase(importApi.getProtocol(), "HTTP")) { + /* + 非http的要进行更新,例如tcp最重要的是请求内容,不更新的话就会导致导入的内容丢失 + 而http判断是否一致主要还是请求里的key,不是value。只要key还不变就没关系 + */ + apiDefinitionPreImportAnalysisResult.getUpdateApiData().add(importApi); } } else { if (!isSameApi) {