Jmeter 的 jar 包开发环境搭建(配置maven环境)(jmeter调用java请求)
配置maven环境:
1、下载地址:https://maven.apache.org/download.cgi
windows环境下载下面这个:
解压下载完的文件
2、编辑系统变量
win+r键,输入sysdm.cpl回车,打开环境变量设置页面,
1)新建一个:MAVEN_HOME
值输入:D:\apache-maven-3.9.6
2)编辑path变量,在path值的最后输入:%MAVEN_HOME%\bin
3、验证是否成功:在命令提示符中输入命令 mvn -version
4、配置本地仓库
在mvn的conf/setting.xml文件中配置本地仓库的路径
<localRepository>D:\maven\repository</localRepository>
在D:\maven\repository 配置文件,配置加速
nexus-aliyun central Nexus aliyun http://maven.aliyun.com/nexus/content/groups/public/
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
执行结果:
参考地址 https://blog.csdn.net/a448335587/article/details/134209846
参考地址 https://www.cnblogs.com/qiaoxin/articles/11803953.html