diff --git a/Dockerfile b/Dockerfile index ce9608284737e610a4f5919a8de5c1de9438dd38..bcb7739b1340d2652488d1925370cfa6b7ec6530 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,6 +6,10 @@ RUN mkdir -p /opt/apps ADD backend/target/backend-1.0.jar /opt/apps +ADD backend/class/jmeter/apache-jmeter-5.2.1.zip /opt/jmeter + +RUN rm -rf /opt/jmeter && unzip -o apache-jmeter-5.2.1.zip && rm -rf /opt/jmeter/apache-jmeter-5.2.1.zip + ENV JAVA_APP_JAR=/opt/apps/backend-1.0.jar ENV AB_OFF=true diff --git a/backend/src/main/java/io/metersphere/api/jmeter/JMeterService.java b/backend/src/main/java/io/metersphere/api/jmeter/JMeterService.java index 147ac67d167fa4dbbfa53cfec2487958a92c1271..585d37b18632b917cab380001aff5e1334eef7d1 100644 --- a/backend/src/main/java/io/metersphere/api/jmeter/JMeterService.java +++ b/backend/src/main/java/io/metersphere/api/jmeter/JMeterService.java @@ -1,6 +1,8 @@ package io.metersphere.api.jmeter; import io.metersphere.commons.exception.MSException; +import io.metersphere.commons.utils.CommonBeanFactory; +import io.metersphere.config.JmeterProperties; import io.metersphere.i18n.Translator; import org.apache.jmeter.save.SaveService; import org.apache.jmeter.util.JMeterUtils; @@ -14,8 +16,10 @@ import java.lang.reflect.Field; public class JMeterService { public void run(InputStream is) { - JMeterUtils.loadJMeterProperties("/Users/q4speed/Downloads/apache-jmeter-5.2.1/bin/jmeter.properties"); - JMeterUtils.setJMeterHome("/Users/q4speed/Downloads/apache-jmeter-5.2.1"); + String JMETER_HOME = CommonBeanFactory.getBean(JmeterProperties.class).getHome(); + String JMETER_PROPERTIES = JMETER_HOME + "/bin/jmeter.properties"; + JMeterUtils.loadJMeterProperties(JMETER_PROPERTIES); + JMeterUtils.setJMeterHome(JMETER_HOME); try { Object scriptWrapper = SaveService.loadElement(is); HashTree testPlan = getHashTree(scriptWrapper); diff --git a/backend/src/main/java/io/metersphere/config/JmeterProperties.java b/backend/src/main/java/io/metersphere/config/JmeterProperties.java index 5621c4c24731188d1b807d94d91da3107dbd1d2a..8319b6da7ea5df3196d973c342df351dc69da899 100644 --- a/backend/src/main/java/io/metersphere/config/JmeterProperties.java +++ b/backend/src/main/java/io/metersphere/config/JmeterProperties.java @@ -10,6 +10,8 @@ public class JmeterProperties { private String image; + private String home; + public String getImage() { return image; } @@ -17,4 +19,12 @@ public class JmeterProperties { public void setImage(String image) { this.image = image; } + + public String getHome() { + return home; + } + + public void setHome(String home) { + this.home = home; + } } diff --git a/backend/src/main/resources/application.properties b/backend/src/main/resources/application.properties index 2805932dce48fd6feff73c0f984a366fd0916b38..671b65f503cd26238d14a4fe45d6d7c73465611b 100644 --- a/backend/src/main/resources/application.properties +++ b/backend/src/main/resources/application.properties @@ -63,4 +63,5 @@ kafka.ssl.provider= kafka.ssl.truststore-type= # jmeter -jmeter.image=registry.fit2cloud.com/metersphere/jmeter-master:0.0.4 \ No newline at end of file +jmeter.image=registry.fit2cloud.com/metersphere/jmeter-master:0.0.4 +jmeter.home=/opt/jmeter/apache-jmeter-5.2.1 \ No newline at end of file diff --git a/backend/src/main/resources/jmeter/apache-jmeter-5.2.1.zip b/backend/src/main/resources/jmeter/apache-jmeter-5.2.1.zip new file mode 100644 index 0000000000000000000000000000000000000000..c90e43584f822f5151586faee6891a0e2db7118e Binary files /dev/null and b/backend/src/main/resources/jmeter/apache-jmeter-5.2.1.zip differ