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
                    
                
                
            
        
浙公网安备 33010602011771号