現在很多公司都用的是微服務,每個服務的請求協議有可能不相同,怎樣用jmeter二次開發自己的java請求?
下面是具體的開發步驟:
1,把需要的jar包 添加到maven依賴中
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>MyJmeter</groupId> <artifactId>MyJmeter</artifactId> <version>1.0-SNAPSHOT</version> <properties> <jmeter.version>3.0</jmeter.version> </properties> <dependencies> <!--jmeter--> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_core</artifactId> <version>${jmeter.version}</version> </dependency> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_java</artifactId> <version>${jmeter.version}</version> </dependency> </dependencies> <build> <plugins> <!--<plugin>--> <!--<groupId>org.apache.maven.plugins</groupId>--> <!--<artifactId>maven-jar-plugin</artifactId>--> <!--<version>2.4</version>--> <!--<configuration>--> <!--<archive>--> <!--<manifest>--> <!--<addClasspath>true</addClasspath>--> <!--<classpathPrefix>lib/</classpathPrefix>--> <!--<mainClass>etms.TestEtms</mainClass>--> <!--</manifest>--> <!--</archive>--> <!--</configuration>--> <!--</plugin>--> <!--<plugin>--> <!--<groupId>org.apache.maven.plugins</groupId>--> <!--<artifactId>maven-dependency-plugin</artifactId>--> <!--<executions>--> <!--<execution>--> <!--<phase>package</phase>--> <!--<goals>--> <!--<goal>copy-dependencies</goal>--> <!--</goals>--> <!--<configuration>--> <!--<outputDirectory>--> <!--${project.build.directory}/lib--> <!--</outputDirectory>--> <!--</configuration>--> <!--</execution>--> <!--</executions>--> <!--</plugin>--> </plugins> </build> </project>
2,然后編寫具體的Java請求方法,代碼如下
package com.niu.MyJmeter; import javafx.scene.shape.ArcTo; import org.apache.jmeter.config.Arguments; import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient; import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; import org.apache.jmeter.samplers.SampleResult; import org.apache.xmlbeans.impl.xb.xsdschema.impl.PublicImpl; /** * Created by Administrator on 2017/8/30 0030. */ public class JmeterTest implements JavaSamplerClient { private String interfaceName; private String methodName; @Override public void setupTest(JavaSamplerContext javaSamplerContext) { //某種連接只連接一次,例如數據庫 System.out.print("測試開始"); } @Override public SampleResult runTest(JavaSamplerContext javaSamplerContext) { SampleResult result = new SampleResult(); //獲取頁面上interfaceName的方法 interfaceName = javaSamplerContext.getParameter("interfaceName"); //獲取頁面上methodName的方法 methodName = javaSamplerContext.getParameter("methodName"); //測試開始的時間戳 result.sampleStart(); //設置響應數據的格式 result.setResponseData(interfaceName+":"+methodName,"UTF-8"); //測試結束的時間戳 result.sampleEnd(); //設置成功的 result.setSuccessful(true); //設置響應code碼 result.setResponseCodeOK(); //設置數據編碼格式 result.setDataEncoding("UTF-8"); return result; } @Override public void teardownTest(JavaSamplerContext javaSamplerContext) { System.out.print("測試結束"); } @Override public Arguments getDefaultParameters() { //添加參數 Arguments arguments = new Arguments(); arguments.addArgument("interfaceName",""); arguments.addArgument("methodName",""); return arguments; } public static void main(String[] args){ JmeterTest jmeterTest = new JmeterTest(); JavaSamplerContext arg0 = new JavaSamplerContext(jmeterTest.getDefaultParameters()); jmeterTest.runTest(arg0); jmeterTest.teardownTest(arg0); } }
3,IDEA打包放進jmeter里面
然后用IDEA中的clean 先清除包,再install打成jar包,放到jmeter中的javasample中,本次代碼中的參數是interfaceName, methodName ,然后面填入值,就可以用查看結果樹來查看響應結果。
原文地址https://blog.csdn.net/qq_30353203/article/details/77713754