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

posted on 2024-01-26 14:03  FanF  阅读(195)  评论(0编辑  收藏  举报

导航