JMeter java请求
idea+maven+jmeter对接口压测
一、核心步骤
1.Maven创建一个Java工程,添加依赖
2.创建类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写方法
3.生成jar,放在JMeter lib/ext目录下
4.打开JMeter,创建线程组,添加Sampler Java请求,选择类
————————————————
1、在pom.xml中添加JMeter包
<dependencies>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_core</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_java</artifactId>
<version>3.1</version>
</dependency>
</dependencies>
2、继承AbstractJavaSamplerClient类,重写的方法
public class First extends AbstractJavaSamplerClient {
public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
System.out.println("hello jmeter!");
return null;
}
}
public Arguments getDefaultParameters();设置可用参数及的默认值;
public void setupTest(JavaSamplerContext arg0):每个线程测试前执行一次,做一些初始化工作;
public SampleResult runTest(JavaSamplerContext arg0):开始测试,从arg0参数可以获得参数值;
public void teardownTest(JavaSamplerContext arg0):测试结束时调用;
执行顺序:getDefaultParameters() --> setupTest(JavaSamplerContext context) --> runTest(JavaSamplerContext context) --> teardownTest(JavaSamplerContext context)
————————————————
2、引用JavaSamplerClient类
1 package com.demo; 2 3 4 import org.apache.jmeter.config.Arguments; 5 import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient; 6 import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; 7 import org.apache.jmeter.samplers.SampleResult; 8 9 10 import java.io.IOException; 11 import java.io.InputStream; 12 import java.net.MalformedURLException; 13 import java.net.URL; 14 import java.net.URLConnection; 15 16 17 public class Second implements JavaSamplerClient { 18 19 //URLNAME就是在图形化界面当中显示的变量名称 20 private static final String URLNAME ="URL"; 21 22 //设置界面当中默认显示的变量的值 23 private static final String DEFALTURL="http://www.baidu.com"; 24 25 //用来存储响应的数据,目的是讲响应结果放到查看的结果数中 26 private String resultData; 27 28 //用户输入的url地址信息 29 private String inputURL; 30 31 32 /** 33 * 这个方法决定了在jmeter当中要显示那些属性,加载到jmeter的时候会执行一次 34 * @return 35 */ 36 public Arguments getDefaultParameters() { 37 Arguments arguments = new Arguments(); 38 arguments.addArgument(URLNAME,DEFALTURL); 39 40 System.out.println("getDefaultParameters"); 41 return arguments; 42 } 43 44 45 /** 46 * 这个方法就是一个初始化方法,我们所有的初始化的动作都可以在这里写 47 * @param javaSamplerContext 48 */ 49 public void setupTest(JavaSamplerContext javaSamplerContext) { 50 inputURL =javaSamplerContext.getParameter(URLNAME,DEFALTURL); 51 System.out.println("setupTest run"); 52 System.out.println("用户输入的URL地址是:" + inputURL); 53 54 55 } 56 /** 57 * 这个方法就是实现你具体功能逻辑的方法 58 * @param javaSamplerContext 59 * @return 60 */ 61 public SampleResult runTest(JavaSamplerContext javaSamplerContext) { 62 SampleResult result = new SampleResult(); 63 System.out.println("runTest run"); 64 StringBuffer sb = new StringBuffer(); 65 try { 66 URL url = new URL(inputURL); 67 URLConnection conn = url.openConnection(); 68 byte[] buffer = new byte[1024]; 69 int len; 70 71 result.sampleStart(); //标记事务的开始 72 InputStream in = conn.getInputStream(); 73 while ((len=in.read(buffer))!=-1){ 74 resultData = new String(buffer,"UTF-8"); 75 sb.append(resultData); 76 77 } 78 79 } catch (MalformedURLException e) { 80 e.printStackTrace(); 81 } catch (IOException e) { 82 e.printStackTrace(); 83 } 84 85 86 // resultData ="这就是响应的结果"; 87 resultData = sb.toString(); 88 result.setSampleLabel("自定义java请求访问抬头"); 89 result.setSuccessful(true); //告诉查看结果是访问是否成功 90 result.setResponseData(resultData); 91 result.setDataType(SampleResult.TEXT); 92 return result; 93 } 94 /** 95 * 这个方法就是来做一些收尾的工作的 96 * @param javaSamplerContext 97 */ 98 public void teardownTest(JavaSamplerContext javaSamplerContext) { 99 System.out.println("teardownTest run"); 100 101 } 102 }
然后在Terminal中,输入命令mvn clean package 就在此项目的target下,打包生成了demo-1.0-SNAPSHOT.jar的jar包,

然后,把此jar包,放到jmeter的安装目录下的D:\apache-jmeter-3.1\lib\ext下,最后,打开jmeter,创建线程组-->java请求,类名称的选择是此second类的路径,比如com.demo.second


执行结果:

然后进行执行就OK了。

浙公网安备 33010602011771号