阅读本文大约需要10分钟
自带函数
JMeter提供了丰富的函数,编写脚本过程中可以直接使用,便于生成指定类型数据。但是,JMeter提供的函数虽然众多,编写脚本的时候却不会像IDEA一样输入首字母就可以智能地提示方法名及入参等,也因此误以为JMeter的函数很难使用。然而,事实不是这样子的。JMeter提供了函数助手对话框,使用者可以快速找到场景合适的函数以及输入入参后自动生成调用代码。
首先,我们先看一下函数对话框的打开方式,总共有3种:
1.点击工具栏图标
2.点击菜单栏菜单
3.默认快捷键: Ctrl+Shift+F1
打开函数助手对话框之后,可以选择合适的功能,根据提示填入函数参数,然后点击“生成按钮”,即会生成函数的调用代码以及函数的调用结果,将函数调用结果拷贝至需要的脚本处即可。
比如,可以将生成0-100之间的随机数函数填写到上一节(JMeter自定义JavaSampler)的入参中
测试结果如下:
自定义函数
即使JMeter自带了丰富的函数,可以满足大部分场景需求。也偶尔存在一些没有已有函数能支持的场景,此时,自定义函数就因运而生了。
代码工程
同上一节(JMeter自定义JavaSampler)一致,但需要增加ApacheJMeter_functions的依赖。如:
1 | <dependency> |
代码实现
新建类,如RadomName,继承AbstractFunction,并重写以下方法。
为让读者更好地理解重写的方法,此处先提供RadomName定义的成员变量。
1 | final String FUNCTION_NAME = "_RadomName"; |
1.getReferenceKey
1 | @Override |
获取函数名称,函数助手对话框中,下拉框中显示的名称,同时也勇于测试脚本调用的函数名。
2.getArgumentDesc
1 | @Override |
设置入参的描述语,用于函数助手对话框中,显示函数名称提示。
3.setParameters
1 | @Override |
获取函数参数,对应函数助手对话框中,传入的参数值。
4.execute
1 | @Override |
函数执行的实现逻辑写在这个方法中,返回的值即是函数最终的返回结果。
jar包生成及引用
jar包生成依然同上一节(JMeter自定义JavaSampler)一致,但引用jar包时,只能放在%JMETER_HOME%\lib\ext路径下。
调用示范
同自带函数一样,可以通过函数助手对话框生成示例代码。
然后,将随机生成名字的函数填写到上一节(JMeter自定义JavaSampler)的示例入参中。
查看结果:
从结果可见,自定义的函数已经生效。