一、前言
JMeter函数是一些能够转化在测试树中取样器或者其他配置元件的域的特殊值。一个函数的调用就像这样:${_ functionName(var1,var2,var3)} ,_ _functionName 匹配函数名,圆括号内设置函数的参数,例如${ _time(YMD)}实际参数因函数而不同。不需要参数的函数使圆括号内为空,例如${ _theadNum()}.
Jmeter函数有两种函数:自定义静态值(用户变量)和内置函数。自定义静态值允许当一个测试树编译提交运行时, 自定义变量被它们的静态值代替。这个替代在测试运行开始时发生一次。内置函数允许写进任何非控制器测试组件的任何域,这包括取样器,定时器,监听器,断言等
注意:如果使用和内置函数同样的名字定义一个自定义变量,你的自定义静态变量会覆盖内置函数,但不建议名字相同。
二、jmeter常用内置函数
1.__CSVRead函数
_CSVRead函数是从外部读取参数,_ _CSVRead 函数可以从一个文件中读取多个参数。
( 1 )先新建一 个文件,例如CSVRead.txt ,里面的数据存放如下:11,22,33,44
( 2 )在jmeter中的[Tools]中选择[Function Helper Dialog] ,将会弹出如下对话框:选择_ _CSVRead
备注说明:
- CSV file to get values from | *alias:要读取的文件路径,为绝对路径+文件名
- Column number of CSV file | next | *alias:从第几列开始读取,注意第一列是0
注意:
- 文件后缀.txt不要漏掉
- 使用函数时${}不要漏掉
( 3 )设置好相关参数,将生成的函数复制到对应的请求参数之中
2.__StringFromFile函数
__StringFromFile函数是从一个文件中读取一个字符串,用来实现参数化,如果读取或者打开这个文件发生错误时,将会返回“**ERR**”字符串
( 1 )先新建一 个文件,例如StringFromFile.adt,里面的字符串存放如下:baidu
( 2 )在jmeter中的[Tools]中选择[Function Helper Dialog] ,将会弹出如下对话框:选择__StringFromFile
备注说明:
- Enter path (absolute or relative) to file:输入文件的路径(绝对或相对)
- Name of variable in which to store the result (optional):存储结果的变量名(可选)
- Start file sequence number (opt):开始文件序列号(opt)
( 3 )设置好相关参数,将生成的函数复制到对应的请求参数之中
3.__counter函数
每次调用计数器函数都会产生一个新值,从1开始每次加1。计数器既可以被配置成针对每个虚拟用户是独立的,也可以被配置成所有虚拟用户公用的。如果每个虚拟用户的计数器是独立增长的,那么通常被用于记录测试计划运行了多少遍。全局计数器通常被用于记录发送了多少次请求。计数器使用一个整数值来记录,允许的最大值为2147483647
备注说明:
TRUE, for each user to have own counter, FALSE for a global counter:TRUE,对于每个用户都有自己的计数器,对于全局计数器为FALSE
Name of variable in which to store the result (optional):存储结果的变量名(可选),即重复使用计数器函数创建值的引用名。测试人员可以这样引用计数器的值:${count}。这样一来,测试人员就可以创建一个计数器后,在多个地方引用它的值。
格式:${__counter(FALSE,count)}
使用:将__counter函数生成的参数复制到某个参数下面,如果为TRUE格式,则每个线程各自统计,最大数为循环数;如果为FALSE,则所有线程一起统计,最大数为线程数乘以循环数