JMeter定制Sampler

1.背景

相信大家在使用JMeter工具测试的时候,经常会遇到自带采样器无法满足测试要求的情况。面对这种情况,通常的办法是使用万能的自定义Java Request的达到测试目的。这个方法有个弊端,只要是改动了底层逻辑代码,就要重新打包,还要重启JMeter以便新字节码得以加载到JVM中。很麻烦,如果接口很多的话,能让你烦到吐血而且对于代码薄弱的人来说,感觉像是在看天书,有木有。

2.目的

针对以上情况,就有了定制开发Sampler的想法。大家一定要明确两点:

  1. 你要发的这种请求,JMeter自带采样器不能满足你测试。
  2. 这种发起交易的方式,在你今后测试过程中经常会用。

基于以上两点,我才觉得可以定制一个采样器,反之意义不大。(开发功底薄弱的可以“贿赂”下开发同学,帮忙写插件。大家好才是真的好!)

3.思路

  • 定制开发一个Sampler大致思路如下:

image

  • 教大家一个最简单的思路,直接将JMeter的源码包反编译,找到相关采样器源码,简单的看看,就知道怎么写了。

4.实战

如何搭建插件开发环境,我就不再赘述了,大家自行百度下,比如需要那些jar包,可以使用Maven形式,也可以自己将指定的包copy到自己的工程中,进行构建。

  • 编写两个类

image

我们看看xxxSamplerGui类中一些重点内容:

image

主要方法:

image

直接返回采样器的名字,在GUI页面看到的采样器名就是这里定义的。

image

该方法创建一个新的Sampler,然后将界面中的数据设置到这个新的Sampler实例中。

image

用于把界面的数据移到Sampler中,在调用自己的实现方法之前,请先调用一下super.configureTestElement(element),这个会帮助移到一些缺省的数据。

image

在reset新界面的时候调用,用于重置GUI界面控件中需要显示的一些缺省的值。

我们再看看xxxSampler类中一些重点内容:

image

主要方法:

image

image

大致就是要编写以上内容,写的不是特比详细,其实主要就是写个思路,希望能帮助大家(唯一的快的方法就是要自己多看JMeter底层源码,读懂源码后,写这些再写这些代码,轻而易举)。

猜你喜欢

转载自www.cnblogs.com/leebaul/p/11305555.html