如何用JMeter Java对RPC接口进行高效性能测试?

摘要:建立JAVA项目 建立maven项目,加入Jmeter所需要的JAR包依赖。 POM.xml 加入如下: <dependency> <groupId>o
建立JAVA项目 建立maven项目,加入Jmeter所需要的JAR包依赖。 POM.xml 加入如下: <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_core</artifactId> <version>3.2</version> </dependency> <!--https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_components--> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_components</artifactId> <version>3.2</version> </dependency> <!--https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_java--> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_java</artifactId> <version>3.2</version> </dependency> <!--https://mvnrepository.com/artifact/org.apache.jmeter/jorphan--> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>jorphan</artifactId> <version>3.2</version> </dependency> 实现JavaSamplerClient 接口 /** * jmeter测试类 * * @author hejb 2017.09.04 * */ public class AppForJmeter implements JavaSamplerClient { /** * 设置可用参数及的默认值 */ public Arguments getDefaultParameters() { System.out.println("i'm start"); return null; } /** * 开始测试,从arg0参数可以获得参数值; */ public SampleResult runTest(JavaSamplerContext arg0) { SampleResult sr = new SampleResult(); sr.sampleStart();// jmeter 开始统计响应时间标记 sr.setResponseData("test", null); sr.setDataType(SampleResult.TEXT); sr.setSuccessful(true); sr.sampleEnd();// jmeter 结束统计响应时间标记 return sr; } /** * 每个线程测试前执行一次,做一些初始化工作 */ public void setupTest(JavaSamplerContext arg0) { System.out.println("set Up Test"); } /** * 测试结束时调用; */ public void teardownTest(JavaSamplerContext arg0) { System.out.println("down..."); } public static void main(String[] args) { System.out.println("test in main"); } } ps: 记得添加main方法 导出JAR包 把项目的JAR包导出 加入JAR包 \apache-jmeter-3.2\lib\ext 添加线程组 加入JAVA请求配置 可以找到刚刚的那个JAVA类 添加察看结果树 添加察看结果树,然后运行,可以看到JAVA中输出的内容 加入聚合报告 传入JAVA接受参数参数 传入参数,并获取进行处理 String message = "test"; /** * 设置可用参数及的默认值 */ public Arguments getDefaultParameters() { Arguments arguments = new Arguments(); arguments.addArgument("message", "hello world!"); return arguments; } 在RUN中进行获取值 /** * 开始测试,从arg0参数可以获得参数值; */ public SampleResult runTest(JavaSamplerContext arg0) { message = arg0.getParameter("message"); SampleResult sr = new SampleResult(); sr.sampleStart();// jmeter 开始统计响应时间标记 sr.setResponseData("test:" + message, null); sr.setDataType(SampleResult.TEXT); sr.setSuccessful(true); try { Thread.sleep(10); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } sr.sampleEnd();// jmeter 结束统计响应时间标记 return sr; } 记得每次修改需要重新导出JAR包,放入到ext下,然后重新启动jemeter,能看到参数设置 收到参数 性能报告, 这样就可以用JAVA去压测RPC接口了,(如dubbo接口的压测,长连接的压测等) 记录下,免得下次还得重新搜怎么做