jmeter二次开发:对jmeter Sampler(取样器)的“java请求”进行简单的二次开发【对自己以后入门jmeter二次开发很有帮助】

由于很多新型的请求协议,Jmeter并不能够都支持,所以Jmeter中的很多Sampler插件需要我们自己进行二次开发。

第一步,把需要的jar包,先添加到maven依赖中(jar包下载地址:https://pan.baidu.com/s/1ge5aUAn

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
 
    <groupId>MyJmeter</groupId>
    <artifactId>MyJmeter</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <jmeter.version>3.0</jmeter.version>
    </properties>
    <dependencies>
        <!--jmeter-->
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_core</artifactId>
            <version>${jmeter.version}</version>
        </dependency>
 
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_java</artifactId>
            <version>${jmeter.version}</version>
        </dependency>
    </dependencies>
 
  
</project>

 

然后编写代码如下:

package com.niu.MyJmeter;
 
import javafx.scene.shape.ArcTo;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.xmlbeans.impl.xb.xsdschema.impl.PublicImpl;
 
/**
 * Created by Administrator on 2017/8/30 0030.
 */
public class JmeterTest implements JavaSamplerClient {
    private String interfaceName;
    private String methodName;
 
    @Override
    public void setupTest(JavaSamplerContext javaSamplerContext) {
        //某种连接只连接一次,例如数据库
        System.out.print("测试开始");
 
    }
 
    @Override
    public SampleResult runTest(JavaSamplerContext javaSamplerContext) {  //由实参arg0传入
        SampleResult result = new SampleResult();   //实例化来自ApacheJmeter_core.jar包中的SampleResult类
        interfaceName = javaSamplerContext.getParameter("interfaceName");  //获取Jmeter页面上interfaceName的方法        
        methodName = javaSamplerContext.getParameter("methodName");  //获取Jmeter页面上methodName的方法
        result.sampleStart();  //测试开始的时间戳
        result.setResponseData(interfaceName+":"+methodName,"UTF-8");  //设置响应数据的格式
        result.sampleEnd();   //测试结束的时间戳
        result.setSuccessful(true);  //设置成功的        
        result.setResponseCodeOK();   //设置响应code码        
        result.setDataEncoding("UTF-8");   //设置数据编码格式
        return result;
    }
 
    @Override
    public void teardownTest(JavaSamplerContext javaSamplerContext) {
        System.out.print("测试结束");
    }
 
    @Override
    public Arguments getDefaultParameters() {
        //添加参数
        Arguments arguments = new Arguments();
        arguments.addArgument("interfaceName","");   //显示在Jmter页面上的interfaceName和methodName
        arguments.addArgument("methodName","");
        return arguments;
    }
 
    public static void main(String[] args){
        JmeterTest jmeterTest = new JmeterTest();  //实例化这个从JavaSamplerClient类实现过来的JmeterTest类
        JavaSamplerContext arg0 = new JavaSamplerContext(jmeterTest.getDefaultParameters()); //实例化来自ApacheJmeter_java.jar包的JavaSamplerContext类,并且实例化了JavaSamplerContext带参数的构造方法,参数是Arguments args,获取的参数是包括key和value的
        jmeterTest.runTest(arg0);  //将key和value键值对的参数带入到runTest(arg0)进行执行
        jmeterTest.teardownTest(arg0);    //测试结束
    }
}

然后用IDEA中的clean 先清除包,再install打成jar包,放到jmeter中的javasample中,本次代码中的参数是interfaceName, methodName ,然后面填入值,就可以用查看结果树来查看响应结果。

 

 

【2018年12月17日 新增如何用eclipse打Maven包】

右键工程Maven -> Update project

再然后,在工程名上,右键Run as -> Maven install

现在看看target目录

这块的jar就是我们需要的包含依赖jar包的可执行jar文件,然后放到jmeter的lib\ext文件夹中,最后重启正在打开着的Jmeter。

 

参考下面两项资料:

https://blog.csdn.net/qq_30353203/article/details/77713754

https://www.cnblogs.com/breg/p/6898959.html

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值