jmeter中虽然有很多的插件,但是有些需要安装,有些具有一定的局限性。函数助手是一个快捷的工具库。下面记录一下函数助手中一些主要的函数的使用方法。
注:不内容中所有的实例均基于3.2记录
1、_BeanShell
表达式请求值后的值:可以是一个程序语句也可以是BeanShell脚本文件。如:“test”+“ing”
Name of variable in which to store the result (optional):存储变量的表达式。如:name
点击生成按钮则会生成一串以$开头的表达式,如图。该表达式在请求中是可以直接调用的。
2、_char
作用:将一个数字转化成Unicode字符。比如图中输入的是67、68,则对应的Unicode码就应该是:C、D。在请求时自动转化为C、D 作为参数进行传递
3、_counter
作用:可以作为一个计数器进行使用。
特点:支持多线程(类似于多用户),比如有线程1、线程2.这个计数器可以吧两个线程进行分开记录(此时选择true),也可以把两个线程合在一起就行记录(此时选false)
可以与函数${_threadNum}合在一起使用,该函数主要是显示当前线程ID的.
4、_CSVRead
作用:主要是从文件中读取指定列的值,具体用法以及使用场景如下:
- » 读取固定值
如图表示是从testing.txt这个文件中的第0列(实际是读取第1列,编号是从0开始),多次迭代时值是不会改变的,还是第一行第一列的值。
实际使用的较少,类似于读取的是一个定值。
- » 读取动态值
在表达式结尾加上next(),既:${__CSVRead(D:\test\testing.txt,next())},这样会告知程序在下一次迭代时取下一行值
但是在实际使用的时候我们可以这样填写:${__CSVRead(D:\test\testing.txt,0)}${__CSVRead(D:\test\testing.txt,next())} 至于前边为什么要加${__CSVRead(D:\test\testing.txt,0)},具体差异可以自己试一试,你肯定有收获的。
- » 可以使用文件别名
我们使用file作为D:\test\testing.txt文件的别名,在正常使用时我们只用使用别名就可以正常引用文件中的值了,使用格式为:${__CSVRead(*file,1)},个人不喜欢用。
5、_FileTostring
用途:一次性的读取指定文件中的所有内容
表达式解读:将文件testing.txt文件中的所有的内容一次性全部读取,并且以utf-8的格式存储在变量名test中,在其他请求中可以通过test来引用testing.txt文件中的值
6、_intSum
用来对整数的求和,支持多个整数相加,多个输之间用英文逗号分隔开。
如:相加过程为20+20+30,将相加结果存储在变量名test中,可以在其他请求中进行正常调用。
使用场景,当有多个变量数字需要相加后将相加的结果进行传递时可以使用。
7、_javaScript
此函数相对于了解java的人使用起来更方便,在于对java函数的了解
对生成的函数进行解释:调用java中的时间函数new Date()来获取当前时间,然后保存在变量名test中,可以被其他函数进行调用。在实际使用过程中可以换成自己所需要的函数进行调用
8、_log
日志,如图:输入的字符串是testing,正常情况下返回也是testing。
参数说明:
string be logged:将会被日志输出的字符串
Log level or OUT orERR:用来指定日志的输出级别。日志级别分别有:OUT 、ERR、DEBUG、INFO、WARN or ERROR
OUT:在控制台打印出来(可以点击菜单栏的警告符号按钮查看)也会打印在标准输出窗口。
ERR:在控制台输出日志信息,同时也打印到标准输出。
DEBUG:在控制台打印信息,DEBUG级别以上的都将打印。
Throwable text:抛出异常信息
9、_machineIP
生成的函数解释:通过该函数将本机的IP返回并存储在变量test中,可以被其他请求正常所引用
使用场景:一个请求需要使用本机IP且每次本机IP为可变时的场景
10、关于随机数函数的使用请到这里:https://www.cnblogs.com/Zhan-W/p/9812625.html
11、_threadNum
用来返回显示当前请求的线程号
12、_time
返回时间,将返回的时间存储在test变量名中,可以被其他请求所正常所引用。
当输入:yyyy-MM-dd HH:mm:ss 时返回的时间格式为:2018-12-31 17:57:59
当输入:yyyyMMdd 时返回的时间格式为:20181213
当函数为:${__time(YMDHMS,)}时,返回的时间格式为:20181213-1802598
当函数为:${__time(,)}时,返回的是时间戳,精确到毫秒级别, 13位数
当函数为:${__time(/1000,)}时,返回的是时间戳,精确到秒级别, 10位数
13 Xpath后续