1.背景
相信大家在使用JMeter工具测试的时候,经常会遇到自带采样器无法满足测试要求的情况。面对这种情况,通常的办法是使用万能的自定义Java Request的达到测试目的。这个方法有个弊端,只要是改动了底层逻辑代码,就要重新打包,还要重启JMeter以便新字节码得以加载到JVM中。很麻烦,如果接口很多的话,能让你烦到吐血而且对于代码薄弱的人来说,感觉像是在看天书,有木有。
2.目的
针对以上情况,就有了定制开发Sampler的想法。大家一定要明确两点:
- 你要发的这种请求,JMeter自带采样器不能满足你测试。
- 这种发起交易的方式,在你今后测试过程中经常会用。
基于以上两点,笔者才觉得可以定制一个采样器,反之意义不大。(开发功底薄弱的可以“贿赂”下开发同学,帮忙写插件。大家好才是真的好!)
3.思路
- 定制开发一个Sampler大致思路如下:
- 教大家一个最简单的思路,直接将JMeter的源码包反编译,找到相关采样器源码,简单的看看,就知道怎么写了。
4.实战
如何搭建插件开发环境,笔者就不再赘述了,大家自行百度下,比如需要那些jar包,可以使用Maven形式,也可以自己将指定的包copy到自己的工程中,进行构建。
- 编写两个类
我们看看xxxSamplerGui类中一些重点内容:
主要方法:
直接返回采样器的名字,在GUI页面看到的采样器名就是这里定义的。
该方法创建一个新的Sampler,然后将界面中的数据设置到这个新的Sampler实例中。
用于把界面的数据移到Sampler中,在调用自己的实现方法之前,调用super.configureTestElement(element),这个会帮助配置一些缺省的数据。
在重置GUI时调用,用于重置GUI界面控件中需要显示的一些缺省的值。
再看看xxxSampler类中一些重点内容:
主要方法:
大致就是要编写以上内容,写的不是特别详细,其实主要就是写个思路,希望能帮助大家(唯一的快的方法就是要自己多看JMeter底层源码,读懂源码后,写这些再写这些代码,轻而易举)。