jmeter 函数「uuid函数」
今天给大家普及一下jmeter 函数「uuid函数」相关知识,最近很多在问jmeter 函数「uuid函数」,希望能帮助到您。
1.1. 函数测试脚本最常用的方式,使用函数功能实现。
JMeter 提供了很多函数,可以很方便的实现一些小功能,几乎可以用于测试计划中的任何元件。
函数调用的格式如下所示:
${__functionName(var1,var2,var3)}
其中,__functionName 为函数名,括号内是函数的参数,无参数时可以不用括号,如 ${__UUID}。
Tips:
(1) 如果参数包含逗号,那么一定要使用来转义,否则 JMeter 会把它当作一个参数分隔符;
(2) 实际使用时,一般通过函数助手对话框来生成函数字符串,不容易出错。
(3) JMeter 中的提供很多函数,熟悉其中常用的十几个函数基本满足90%的测试要求。
1.2. 常用函数列表__threadNum: 返回当前正在执行的线程的编号
__iterationNum: 返回当前正在执行的迭代次数
__UUID: 通用唯一标识符函数,返回UUID
__time: 返回指定格式的当前时间
__Random:返回指定最大值和最小值之间的随机整数
__RandomDate:返回给定开始日期和结束日期值之间的随机日期
__RandomString:根据给定的字符生成指定长度的随机字符串
__CSVRead: 从CSV文件读取指定列的值
__FileToString: 把整个文件读取成一个字符串
__longSum: 长整型求和
__intSum: 整形求和
__substring: 截取指定位置字符串
__machineIP: 获取当前机器IP
__uppercase: 将给定字符串转化为大写
1.3. __threadNum
作用:返回当前正在执行的线程的编号,而且不依赖于线程组;
也就是说以这个函数的结果来看,不能区别线程组1的线程#1 和 线程组2的线程#1,如下图所示:
threadNum测试结果
1.4. __iterationNum作用:${__iterationNum},返回当前正在执行的线程的迭代次数;
样例:
iterationNum测试结果
1.5. __UUID作用:${__UUID},返回唯一标识符函数;UUID为36位字符串
样例:
UUID测试结果
1.6. __time作用:返回当前时间,可以指定返回格式,由SimpleDateFormat类来处理函数格式。
${__time(,)} 默认返回当前时间的毫秒数;
日期/时间格式中的字母及其含义与示例
y:年份。一般用 yy 表示两位年份,yyyy 表示 4 位年份。
M:月份。一般用 MM 表示月份,如果使用 MMM,则会根据语言环境显示不同语言的月份;使用 MM 表示的月份,如 05;使用MMM 表示月份,在 Locale.CHINA语言环境下,如“十月”;在 Locale.US语言环境下,如 Oct。
d:月份中的天数。一般用 dd 表示天数。
D:年份中的天数。表示当天是当年的第几天,用 D 表示。
E:星期几。用 E 表示,会根据语言环境的不同, 显示不同语言的星期几;使用 E 表示星期几,在 Locale.CHINA 语言环境下,如“星期四”;在 Locale.US语言环境下,如 Thu。
H:一天中的小时数(0~23)。一般用 HH 表示小时数。
h:一天中的小时数(1~12)。一般使用 hh 表示小时数。
m:分钟数。一般使用 mm 表示分钟数。
s:秒数。一般使用 ss 表示秒数。
S:毫秒数。一般使用 SSS 表示毫秒数。
样例:
__time测试
1.7. __Random作用:随机数函数返回指定最大值和最小值之间的随机整数
样例:
random测试结果
1.8. __RandomDate作用:返回位于给定开始日期和结束日期值之间的随机日期
randomDate函数助手
第1个参数:指定生成日期的格式
第2个参数:指定开始日期
第3个参数:指定结束日期
第4个参数:指定本地日期格式
第5个参数:指定保存结果变量名
样例:
randomDate 测试结果
注意:此方法只能随机生成日期,不能包括时间值,并且如果设置了开始日期或结束日期,必须与DataTimeFormater中格式一致。
1.9. __RandomString
作用:生成定长的随机字符串
randomeString设置
第一个参数:指定生成字符串的长度
第二个参数:指定生成随机字符串的字符
第三个参数:指定保存结果的变量名
样例:
randomString 测试结果
1.10. __CSVRead作用:
(1) 从一个 CSV 文件中返回一个字符串,支持多个文件名。
(2) 当第一次调用该函数时,文件将被打开并读取到一个内部数组中。如果检测到空行,这将被视为文件的末尾。
(3) 所有对同一文件名的后续引用都使用相同的内部数组,文件名区分大小写。
(4) 每个线程都有自己的指向文件数组中当前行的内部指针。当线程首先引用文件时,它将在数组中分配下一个空闲行,因此每个线程将访问与所有其他线程不同的行(除非数组中的线程多于行)。
CSVRead函数助手
第1个参数:要读取的文件名或者别名。
第2个参数:文件中的列号或者别名。0–第一列,1–第二列,next–文件的下一行。
样例:
CSVRead测试结果
备注:默认windows新建的txt,默认带有BOM,当csvread读时再转码就会出现乱码。对此问题,可使用UltraEdit编辑文件,保存为UTF-8 无BOM
解决CSVRead,第一行有乱码问题
1.11. __longSum和__intSum作用:
(1)可以被用来计算两个或者更多整数值的和。至少需要两个整数,如果指定变量名则名称中必须包含一个非数字字母,否则它会被当成另一个整数值,而被函数用于计算
(2)__longSum和__intSum中,使用一样的,只使用数据范围不一样。
样例:
intSum测试结果
1.12. __machineIP作用:获取本地机器IP
IP测试结果
1.13. __uppercase和__lowercase作用:将指定字符串转化为大/小写
lowercase函数助手
样例:
大小写函数,测试结果
1.14. __FileToString作用:
把文件读取成一个字符串,每次调用都是读取整个文件。
如果出现打开或读取文件的错误,则函数将返回字符串**ERR**。
FileToString函数助手
第1个参数:文件名的路径。(相对路径可以相对于JMeterbin目录)
第2个参数:用于读取文件的编码。如果未指定,则使用平台默认值。
第3个参数:用于后续调用该函数的变量名称,获取值。
例子
FileToString测试结果