diff --git a/backend/pom.xml b/backend/pom.xml index a1772fb09f..6876f40434 100644 --- a/backend/pom.xml +++ b/backend/pom.xml @@ -243,7 +243,7 @@ io.metersphere jmeter-plugins-dubbo - 2.7.10 + 2.7.11 diff --git a/backend/src/main/java/io/metersphere/api/dto/scenario/request/DubboRequest.java b/backend/src/main/java/io/metersphere/api/dto/scenario/request/DubboRequest.java index db5cce8a74..9f88f3d706 100644 --- a/backend/src/main/java/io/metersphere/api/dto/scenario/request/DubboRequest.java +++ b/backend/src/main/java/io/metersphere/api/dto/scenario/request/DubboRequest.java @@ -4,30 +4,22 @@ import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONType; import com.fasterxml.jackson.annotation.JsonProperty; import io.metersphere.api.dto.scenario.KeyValue; -import io.metersphere.api.dto.scenario.assertions.Assertions; -import io.metersphere.api.dto.scenario.controller.IfController; -import io.metersphere.api.dto.scenario.extract.Extract; import io.metersphere.api.dto.scenario.processor.BeanShellPostProcessor; import io.metersphere.api.dto.scenario.processor.BeanShellPreProcessor; -import io.metersphere.api.dto.scenario.processor.JSR223PostProcessor; -import io.metersphere.api.dto.scenario.processor.JSR223PreProcessor; import io.metersphere.api.dto.scenario.request.dubbo.ConfigCenter; import io.metersphere.api.dto.scenario.request.dubbo.ConsumerAndService; import io.metersphere.api.dto.scenario.request.dubbo.RegistryCenter; -import io.metersphere.api.dto.scenario.timer.ConstantTimer; import lombok.Data; +import lombok.EqualsAndHashCode; import java.util.List; @Data +@EqualsAndHashCode(callSuper = true) @JSONType(typeName = RequestType.DUBBO) -public class DubboRequest implements Request { +public class DubboRequest extends Request { // type 必须放最前面,以便能够转换正确的类 private String type = RequestType.DUBBO; - @JSONField(ordinal = 1) - private String id; - @JSONField(ordinal = 1) - private String name; @JSONField(ordinal = 2) private String protocol; @JsonProperty(value = "interface") @@ -47,22 +39,8 @@ public class DubboRequest implements Request { private List args; @JSONField(ordinal = 9) private List attachmentArgs; - @JSONField(ordinal = 10) - private Assertions assertions; - @JSONField(ordinal = 11) - private Extract extract; @JSONField(ordinal = 12) private BeanShellPreProcessor beanShellPreProcessor; @JSONField(ordinal = 13) private BeanShellPostProcessor beanShellPostProcessor; - @JSONField(ordinal = 14) - private Boolean enable; - @JSONField(ordinal = 15) - private JSR223PreProcessor jsr223PreProcessor; - @JSONField(ordinal = 16) - private JSR223PostProcessor jsr223PostProcessor; - @JSONField(ordinal = 17) - private IfController controller; - @JSONField(ordinal = 18) - private ConstantTimer timer; } diff --git a/backend/src/main/java/io/metersphere/api/dto/scenario/request/HttpRequest.java b/backend/src/main/java/io/metersphere/api/dto/scenario/request/HttpRequest.java index 95477f8c6d..b9744d0cb8 100644 --- a/backend/src/main/java/io/metersphere/api/dto/scenario/request/HttpRequest.java +++ b/backend/src/main/java/io/metersphere/api/dto/scenario/request/HttpRequest.java @@ -4,27 +4,19 @@ import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONType; import io.metersphere.api.dto.scenario.Body; import io.metersphere.api.dto.scenario.KeyValue; -import io.metersphere.api.dto.scenario.assertions.Assertions; -import io.metersphere.api.dto.scenario.controller.IfController; -import io.metersphere.api.dto.scenario.extract.Extract; import io.metersphere.api.dto.scenario.processor.BeanShellPostProcessor; import io.metersphere.api.dto.scenario.processor.BeanShellPreProcessor; -import io.metersphere.api.dto.scenario.processor.JSR223PostProcessor; -import io.metersphere.api.dto.scenario.processor.JSR223PreProcessor; -import io.metersphere.api.dto.scenario.timer.ConstantTimer; import lombok.Data; +import lombok.EqualsAndHashCode; import java.util.List; @Data +@EqualsAndHashCode(callSuper = true) @JSONType(typeName = RequestType.HTTP) -public class HttpRequest implements Request { +public class HttpRequest extends Request { // type 必须放最前面,以便能够转换正确的类 private String type = RequestType.HTTP; - @JSONField(ordinal = 1) - private String id; - @JSONField(ordinal = 1) - private String name; @JSONField(ordinal = 2) private String url; @JSONField(ordinal = 3) @@ -39,28 +31,14 @@ public class HttpRequest implements Request { private List headers; @JSONField(ordinal = 8) private Body body; - @JSONField(ordinal = 9) - private Assertions assertions; - @JSONField(ordinal = 10) - private Extract extract; @JSONField(ordinal = 11) private BeanShellPreProcessor beanShellPreProcessor; @JSONField(ordinal = 12) private BeanShellPostProcessor beanShellPostProcessor; - @JSONField(ordinal = 13) - private Boolean enable; @JSONField(ordinal = 14) private Long connectTimeout; @JSONField(ordinal = 15) private Long responseTimeout; @JSONField(ordinal = 16) private Boolean followRedirects; - @JSONField(ordinal = 17) - private JSR223PreProcessor jsr223PreProcessor; - @JSONField(ordinal = 18) - private JSR223PostProcessor jsr223PostProcessor; - @JSONField(ordinal = 19) - private IfController controller; - @JSONField(ordinal = 20) - private ConstantTimer timer; } diff --git a/backend/src/main/java/io/metersphere/api/dto/scenario/request/Request.java b/backend/src/main/java/io/metersphere/api/dto/scenario/request/Request.java index 94be3e48d1..540132a56d 100644 --- a/backend/src/main/java/io/metersphere/api/dto/scenario/request/Request.java +++ b/backend/src/main/java/io/metersphere/api/dto/scenario/request/Request.java @@ -1,8 +1,16 @@ package io.metersphere.api.dto.scenario.request; +import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONType; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import io.metersphere.api.dto.scenario.assertions.Assertions; +import io.metersphere.api.dto.scenario.controller.IfController; +import io.metersphere.api.dto.scenario.extract.Extract; +import io.metersphere.api.dto.scenario.processor.JSR223PostProcessor; +import io.metersphere.api.dto.scenario.processor.JSR223PreProcessor; +import io.metersphere.api.dto.scenario.timer.ConstantTimer; +import lombok.Data; @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "type") @JsonSubTypes({ @@ -11,5 +19,24 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo; @JsonSubTypes.Type(value = SqlRequest.class, name = RequestType.SQL) }) @JSONType(seeAlso = {HttpRequest.class, DubboRequest.class, SqlRequest.class}, typeKey = "type") -public interface Request { +@Data +public abstract class Request { + @JSONField(ordinal = 1) + private String id; + @JSONField(ordinal = 2) + private String name; + @JSONField(ordinal = 3) + private Boolean enable; + @JSONField(ordinal = 4) + private Assertions assertions; + @JSONField(ordinal = 5) + private Extract extract; + @JSONField(ordinal = 6) + private JSR223PreProcessor jsr223PreProcessor; + @JSONField(ordinal = 7) + private JSR223PostProcessor jsr223PostProcessor; + @JSONField(ordinal = 8) + private IfController controller; + @JSONField(ordinal = 9) + private ConstantTimer timer; } diff --git a/backend/src/main/java/io/metersphere/api/dto/scenario/request/SqlRequest.java b/backend/src/main/java/io/metersphere/api/dto/scenario/request/SqlRequest.java index b46dfb6ac0..d48c75ac3a 100644 --- a/backend/src/main/java/io/metersphere/api/dto/scenario/request/SqlRequest.java +++ b/backend/src/main/java/io/metersphere/api/dto/scenario/request/SqlRequest.java @@ -2,23 +2,15 @@ package io.metersphere.api.dto.scenario.request; import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONType; -import io.metersphere.api.dto.scenario.assertions.Assertions; -import io.metersphere.api.dto.scenario.controller.IfController; -import io.metersphere.api.dto.scenario.extract.Extract; -import io.metersphere.api.dto.scenario.processor.JSR223PostProcessor; -import io.metersphere.api.dto.scenario.processor.JSR223PreProcessor; -import io.metersphere.api.dto.scenario.timer.ConstantTimer; import lombok.Data; +import lombok.EqualsAndHashCode; +@EqualsAndHashCode(callSuper = true) @Data @JSONType(typeName = RequestType.SQL) -public class SqlRequest implements Request { +public class SqlRequest extends Request { // type 必须放最前面,以便能够转换正确的类 private String type = RequestType.SQL; - @JSONField(ordinal = 1) - private String id; - @JSONField(ordinal = 2) - private String name; @JSONField(ordinal = 3) private String dataSource; @JSONField(ordinal = 4) @@ -28,23 +20,9 @@ public class SqlRequest implements Request { @JSONField(ordinal = 6) private Boolean useEnvironment; @JSONField(ordinal = 7) - private Assertions assertions; - @JSONField(ordinal = 8) - private Extract extract; - @JSONField(ordinal = 9) - private Boolean enable; - @JSONField(ordinal = 10) private Boolean followRedirects; - @JSONField(ordinal = 11) - private JSR223PreProcessor jsr223PreProcessor; - @JSONField(ordinal = 12) - private JSR223PostProcessor jsr223PostProcessor; @JSONField(ordinal = 13) private String resultVariable; @JSONField(ordinal = 14) private String variableNames; - @JSONField(ordinal = 15) - private IfController controller; - @JSONField(ordinal = 16) - private ConstantTimer timer; }