jmeter 自定义java请求(dobbo等微服务协议)

AbstractJavaSamplerClient介绍

AbstractJavaSamplerClient是org.apache.jmeter.protocol.java.sampler包下的抽象类。需要引用的jar包在jmeter插件包目录(apache-jmeter-5.1.1\lib\ext)下,jar包名称是ApacheJMeter_java.jar。实现了JavaSamplerClient接口,接口中只有runTest()方法没有实现,所以AbstractJavaSamplerClient的子类必须要实现这个方法。

public interface JavaSamplerClient {
    void setupTest(JavaSamplerContext var1);

    SampleResult runTest(JavaSamplerContext var1);

    void teardownTest(JavaSamplerContext var1);

    Arguments getDefaultParameters();
}

java请求实现

第一步:引用jmeter jar包(ApacheJMeter_java.jar、ApacheJMeter_core.jar),位置在apache-jmeter-5.1.1\lib\ext目录下

第二步:新建一个java类继承AbstractJavaSamplerClient
示例:

public class DubboRequest extends AbstractJavaSamplerClient

第三步:实现runTest方法

 public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
        SampleResult sampleResult = new SampleResult();
        Long code = javaSamplerContext.getLongParameter("code");
        String response = this.getAdd(code);//封装了通过公司的微服务协议获取广告
        sampleResult.setSuccessful(true);
        sampleResult.setResponseMessageOK();
        sampleResult.setResponseData(response,"UTF-8");
        return sampleResult;
    }

这个方法中调用具体的java请求,getAdd(code)方法是我封装的微服务方法,具体实现我就不展示了,你这边调用你们的微服务接口就行

第四步:实例化SampleResult ,设置请求在jmeter接口响应信息。SampleResult 是提供取样器返回值设置方法的类
常用方法:

sampleResult.setSuccessful(true);//设置SampleResult对象的成功状态
sampleResult.setResponseMessageOK();//设置响应代码ok,例如http 的200状态码
sampleResult.setResponseData(response,"UTF-8");//设置返回结果和编码方式

第五步:设置jmeter GUI界面上参数值
getDefaultParameters方法返回对象Arguments 是jmeter GUI界面上参数值对象,通过addArgument方法设置界面展示的参数变量,我这边设置了code变量,赋了一个默认值

public Arguments getDefaultParameters(){
      Arguments arg = new Arguments();
       arg.addArgument("code","100000");
       return arg;
   }

第六步:runTest方法中通过javaSamplerContext获取参数值

Long code = javaSamplerContext.getLongParameter("code");

生成插件包(打成jar包)

1、maven工程打包带上依赖包,在pom文件中增加如下配置

  <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <appendAssemblyId>false</appendAssemblyId>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <!-- 此处指定main方法入口的class -->
                            <mainClass>入口类全类名</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>assembly</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

2、生成的jar包拷贝到apache-jmeter-5.1.1\lib\ext目录下

jmeter配置

1、jmeter 线程组上添加取样器中的java请求
在这里插入图片描述
2、类名称:选择你重写的java请求类,下方展示需要配置的参数

3、执行测试,查看结果,可以看见编码方式是我设置的UTF-8,Response message :OK, Response code:没有设置 空值,具体的响应接口查看响应数据
在这里插入图片描述
在这里插入图片描述
4、如果执行过程没有达到预期结果,查看jmeter的bin目录jmeter.log,应该是报错了

最后jmeter更多内容查看jmeter文档,目录如下
D:\opensource\apache-jmeter-5.1.1\docs\api

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值