Jmeter入门级--函数助手的使用
启动jmeter后,可以在JMeter的选项菜单中找到函数助手对话框(快捷键:Ctrl+Shift+F1)
可以从下拉列表中选择一个函数,并为其参数设定值,不同函数要求的参数也不同;
表格的左边一列是函数参数的简要描述,右边一列是供用户填充参数的值
Tips:
- 如果参数包含逗号,那么一定要使用
\
来转义,否则 JMeter 会把它当作一个参数分隔符; - 实际使用时,一般通过函数助手对话框来生成函数字符串,不容易出错。
- 一些函数中此项参数:Name of variable in which to store the result (optional) 变量名 :用于后续调用该函数的变量名称
JMeter 中的函数主要分为如下几类:
__setProperty
函数__setProperty用于设置JMeter属性的值。函数的默认返回值是空字符串,因此该函数可以被用在任何地方,只要对函数本身调用是正确的。
通过将函数可选的第3个参数设置为"true",函数就会返回属性的原始值。属性对于JMeter是全局的,因此可以被用来在线程和线程组之间通信。
_CSVRead
- 从一个 CSV 文件中返回一个字符串,支持多个文件名。
- 当第一次调用该函数时,文件将被打开并读取到一个内部数组中。如果检测到空行,这将被视为文件的末尾。
- 所有对同一文件名的后续引用都使用相同的内部数组,文件名区分大小写。
- 每个线程都有自己的指向文件数组中当前行的内部指针。当线程首先引用文件时,它将在数组中分配下一个空闲行,因此每个线程将访问与所有其他线程不同的行(除非数组中的线程多于行)。
注意:
该函数不适合用于大型文件,因为整个文件都存储在内存中。
对于较大的文件,最好使用 CSV Data Set Config 或者 StringFromFile。
默认情况下,该函数在每个逗号处拆分行。如果要输入包含逗号的列,则需要通过设置属性将分隔符更改为不出现在任何列数据中的字符,修改 jmeter.properties 文件中的 csvread.delimiter=。
1.点击选项----选择 函数助手对话框,选择_CSVRead
CSV file to get values from | * ,这个参数是文件的路径,csv的文件分隔符是逗号,也可以使用txt文本进行逗号分隔
CSV文件列号| next| *alias 取列数,一一对应
点击生成,这里是从0开始取值的,0代表取的文件第一列,1代表取的第二列
2.将${__CSVRead(E:\JMeter\BI\schoolName.txt,0)}复制
设置线程组--线程数
将依次取不同入参值请求
__StringFromFile
- 用于从文本文件中读取字符串,每次读取一行,支持读取多个文件。
- 使用配置元件CSV Data Set Config ,也能达到相同的目的,而且方法更简单,但是它目前不支持多个输入文件。
- 每次调用函数,都会从文件中读取下一行。当到达文件末尾时,函数又会从文件开始处重新读取,直到最大循环次数。如果在一个测试脚本中对该函数有多次引用,那么每一次引用都会独立打开文件,即使文件名是相同的(如果函数读取的值,在脚本其他地方也有使用,那么就需要为每一次函数调用指定不同的变量名)。
- 如果在打开或者读取文件时发生错误,那么函数就会返回字符串 **ERR**。
- 启动序号:初始的序列号,如果省略,那么结束序列号就代表文件的循环读取次数。
- 末端序号:结束序列号,如果省略,那么序列号会无限增长。
#
:插入数字,没有前导零或空格。000
:插入数字,数字不足三位时,将插入前导零补足三位;数字超过三位时,则插入数字实际位数。
用法说明:
上面的 .
是格式化字符,必须用单引号括起来
__RandomFromMultipleVars
1.首先要创建用户定义的变量,如下图
2.创建函数 ${__RandomFromMultipleVars(name1|name2|name3,name)},函数中几个变量名用‘|’隔开,这个函数的意义在于:在设定的几个值中随机使用其一,如下在name1、nema2、name3中随机使用
3.在body中使用:"name":"${__RandomFromMultipleVars(name1|name2|name3,name)}",必须和用户定义的变量一起使用
__time
${__time(,)} 实时获取时间,精确到 13 位数(“毫秒” 格式)时间戳:1555655388515
${__time(/1000,)} 实时获取时间,精确到 10 位数(“秒” 格式)时间戳:1555655438
${__time(yyyy-MM-dd HH:mm:ss:SSS,参数名)} 实时获取时间,格式化生成时间格式 yyyy-MM-dd HH:mm:ss:SSS (年-月-日 时:分:秒:毫秒)
__TimeShift(格式,日期,移位,语言环境,变量):可对日期进行移位加减操作
“PT20.345S”解析为“20.345秒”
“PT15M”解析为“15分钟”
“PT10H”解析为“10小时”
“P2D”解析为“2天”
“P2DT3H4M”解析为“2天,3小时和4分钟”
“P-6H3M”解析为“-6小时+3分钟”
“-P6H3M”解析为“-6小时-3分钟”
“-P-6H + 3M”解析为“+6小时和-3分钟”
指定格式:
${__timeShift(yyyy-MM-dd HH:mm:ss,,PT20.345S,,)}:以指定格式创建当前日期,再加上20.345S
${__timeShift(dd-MM-y-HH-mm-ss,,P1DT3H4M,,)}:以指定格式创建当前日期,再加上一天,三小时和四分钟
${__timeShift(dd/MM/yyyy,,P-1D,,)}:以指定格式创建当前日期,减去一天
${__timeShift(dd/MM/yyyy,,P365D,,)}:以指定格式创建当前日期,再加上365天
参考文件:https://blog.csdn.net/lijing742180/article/details/86579160