厌伴老儒烹瓠叶,强随举子踏槐花。这篇文章主要讲述性能工具之Jmeter扩展函数及压测ActiveMQ实践相关的知识,希望能为你提供帮助。
简介
JMeter作为Apache的开源性能测试工具允许使用者对其进行二次开发扩展,比如用户可以扩展自定义的函数(函数是可以在测试脚本中插入到任何Sampler或者测试元素中,可以封装一些功能,比如对用户名加解密函数或者得到一个自定义功能等)首先本文将以java扩展一个返回两个数值之和函数的例子来简单演示整个过程。总体来说,二次开发扩展JMeter的函数可以分成下面几个步骤:
- 新建Maven项目,引入扩展JMeter Function所需的依赖包
- 编写实现自定义函数的代码,并对其编译打包
- 将编译好的包拷贝至JMeter的扩展目录,编辑测试脚本,调用自定义函数
- 使用并查看自定义的函数是否正确
?&
__7DDemoPlus?
?函数,以便我们了解它是怎么生成的。创建Java Maven项目新建一个Maven项目,打开pom.xml,加入ApacheJMeter_functions依赖库
1.< dependencies>
2.< dependency>
3.< groupId> org.apache.jmeter< /groupId>
4.< artifactId> ApacheJMeter_functions< /artifactId>
5.< version> 4.0< /version>
6.< /dependency>
7.< /dependencies>
扩展自定义函数要实现二次扩展函数,主要有两点:
- 定义function的类的package声明必须包含".functions"
- 需要继承实现AbstractFunction四个方法
【性能工具之Jmeter扩展函数及压测ActiveMQ实践】
文章图片
继承并实现AbstractFunction四个抽象方法:
execute
方法用于接收Jmeter传入的参数值并执行工作setParameters
方法用于传递执行过程中的实际参数值getReferenceKey
方法用于定义函数名字getArgumentDesc
方法用于描述函数参数
1. public class Plus extends AbstractFunction {
2.
3.//定义一个obect对象去接受传入变量值
4.private Object[] values;
5.//存储第一个和第二个参数
6.private CompoundVariable first,second;
7.
8./**
9.* 执行方法
10.* @param sampleResult
11.* @param sampler
12.* @return
13.* @throws InvalidVariableException
14.*/
15.public String execute(SampleResult sampleResult, Sampler sampler) throws InvalidVariableException {
16.//接住第一个参数值
17.first = (CompoundVariable) values[0];
18.//接住第二个参数值
19.second = (CompoundVariable) values[1];
20.
21.//计算两个参数的和
22.int count = new Integer(first.execute().trim()) + new Integer(second.execute().trim());
23.System.out.println("两个参数的和是:"+count);
24.
25.//返回一个String类型的和
26.return String.valueOf(count);
27.}
28.
29./**
30.* 设置参数,接受用户传递的参数
31.* @param collection
32.* @throws InvalidVariableException
33.*/
34.public void setParameters(Collection< CompoundVariable> collection) throws InvalidVariableException {
35.//检查参数是否合法
36.checkParameterCount(collection,2);
37.//转换成数组
38.values = collection.toArray();
39.}
40.
41./**
42.* 函数名称
43.* @return
44.*/
45.public String getReferenceKey() {
46.return "__7DDemoPlus";
47.}
48.
49./**
50.* 函数描述,获取参数描述
51.* @return
52.*/
53.public List< String> getArgumentDesc() {
54.List desc = new ArrayList();
55.//界面上显示两行参数描述
56.desc.add("第一个数字");
57.desc.add("第二个数字");
58.
59.return desc;
60.}
61. }
在控制台使用 ?
?mvn cleanpackage?
?打包文章图片
拷贝自定义函数包文件到jmeter/lib/ext目录下
文章图片
重启Jmeter后打开函数助手,并生成并复制自定义函数表达式
文章图片
并使用BeanShell调用自定义函数,并检查结果
文章图片
我们可以看到控制台已经正确输出函数结果了
至此,我们的Jmeter扩展函数已经完成了,同学们是不是so easy。。。
推荐阅读
- 16. sed命令
- Lua_数据类型
- 带你掌握java反序列化漏洞及其检测
- 本图文详细教程教你win7与win10哪一个比较好
- 本图文详细教程教你如何取消电脑开机密码
- 本图文详细教程教你windows10企业版激活
- 本图文详细教程教你激活windows10
- 本图文详细教程教你windows10的映像文件还原系统
- 本图文详细教程教你激活码激活win10系统