jmeter xml 请求_性能测试 | 扩展你的jmeter(2) - Java sampler client

JMeter的扩展机制使得编写JMeter扩展非常简单,而且其本身使用Java开发,这样使得但凡能使用Java实现的功能,JMeter都可以实现,从而给与JMeter以无穷的想象空间。在实际工作当中,我们往往会遇到JMeter提供的自带的采样器无法满足实际工作的情况,这个情况下,我们需要对JMeter进行扩展。JMeter默认提供了如下比较通用的方式方便用户快速进行二次开发:

  • Beanshell sampler:在这种模式下,可以方便的在Beanshell sampler中编写Java代码进行采样器开发,无须自定义class,一种开发模式就是在IDE中写好代码直接拷过来。不足之处在于易用性不好。类似的,是JSR223 sampler,增加了对groovy、js等语言的支持功能更加强大,性能也要比beanshell sampler好
  • Java sampler:这种方式需要自行编写class并安装到jmeter中,功能强大,易用性也还不错。

下面我们主要介绍下Java sampler的编写。

新建工程

在idea中新建一个Maven项目,在pom.xml中加入JMeter的依赖:

org.apache.jmeter

ApacheJMeter_core

5.1.1

org.apache.jmeter

ApacheJMeter_java

4.0

注意里面的version与大家实际运行的jmeter版本对上。

然后新建一个package: plugins.client,并新建一个类DemoJavaSamplerClient,该类集成自AbstractJavaSamplerClient,其有一个必须实现的方法runTest,整个类图如下所示:

8164c2f564e6866de04717010e3005e2.png

可以看到,AbstractJavaSamplerClient实现了JavaSamplerClient接口,并包含setupTest(测试开始之前执行)、tearDownTest(测试完成之后执行)、getDefaultParameters(从界面获取参数)、getNewLogger几个方法。我们在DemoJavaSamplerClient中也重写这几个方法,以查看下具体的应用。

具体实现

简单描述下我们提供的功能:在界面上提供一个入参url,然后我们自己编写一个get请求访问该url。如果返回结果为200,则本次采样成功,并把返回的文本值放入到jmeter的变量content中;否则返回500,采样失败。

实际实现过程中,我们使用Unirest进行实际http请求,所以首先在pom中增加对unirest的依赖:

com.mashape.unirest unirest-java 1.4.9

最终实现的代码如下:

public class DemoJavaSamplerClient extends AbstractJavaSamplerClient { @Override public void setupTest(JavaSamplerContext context) { getNewLogger().info("测试执行之前..."); } @Override public void teardownTest(JavaSamplerContext context) { getNewLogger().info("测试执行之后..."); } @Override public Arguments getDefaultParameters() { Arguments arguments = new Arguments(); arguments.addArgument("url
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值