Jmeter系列__常用函数及使用场景

 Jmeter自带30+种函数,每种函数都有自己适用的场景,今天我们来梳理下。

1、beanshell函数

    它有两个参数,第一个参数是要执行的语句,可以是beanshell语句或者是文件地址,是必选参数;第二个参数是保存结果的变量名称,非必选参数。

Example:

${__BeanShell(123*456)}:返回56088

${__BeanShell(source("function.bsh"))}:会执行外部脚本function.bsh,并返回结果

常见使用场景:页面单元格计算,常见于财务人资系统,等等

2、__regexFunction:正则表达式函数

 

函数用于使用任何正则表达式(由用户提供)解析以前的响应(或变量的值)。函数返回带有变量值的模板字符串。 __regexFunction还可以存储起来,以便供后续使用。在第六个参数中,可以指定一个引用名称。在执行该函数之后,可以在稍后使用用户定义值的语法检索相同的值。 例如,如果您输入”refName”作为第六个参数,您将能够使用: ${refName}来引用第2个参数的计算结果,这依赖于函数的解析结果。

${refName_g0}来引用函数解析后发现的所有匹配结果。

${refName_g1}来引用函数解析后发现的第一个匹配组合。

${refName_g#}来引用函数解析后发现的第n个匹配组合。

${refName_matchNr}来引用函数总共发现的匹配组合数目。

常见使用场景:正则提取变量,实现关联,等等

3、__counter:计数器函数

1、每次调用计数器函数都会产生一个新值,依据循环次数,每次迭代加1

2、如果每个虚拟用户的计数器是独立增长的,那么通常被用于记录测试计划运行了多少遍。全局计数器通常被用于记录发送了多少次请求。

3、计数器使用一个整数值来记录,允许的最大值为2,147,483,647。

4、该函数也有对应的配置元件:计数器,功能类似。

 常见使用场景:大批量造数据,调试循环次数,等等

4、__intSum:整数求和函数

1、函数__intSum可以被用来计算两个或者更多整数值的合。至少需要两个整数,如果指定变量名则名称中必须包含一个非数字字母,否则它会被当成另一个整数值,而被函数用于计算。

2、当有多个整数时点击添加按钮来增加参数,但是需要注意的是,添加完参数后,点击”生成”的函数默认是把手动添加的函数放在后面,这时需要手动调整变量名的位置,把它放到最后,否则会报错。

常见使用场景:前端页面求和校验,入参存在求和的场景,等等

5、__longSum:长整型求和函数

该函数用来计算两个或更多长整型值的和,使用方法跟上面的__intSum函数一样。

常见使用场景:前端页面求和校验,入参存在求和的场景,与time函数实现时间推移,等等

6、__machineName

函数__machineName返回本机的主机名

常见使用场景:分布式压测,打印运行主机名,等等

7、__Random:随机数函数

 

函数__Random会返回指定最大值和最小值之间的随机数。

常见使用场景:适用于造数据居多,参数要求整数,等等

8、_RandomString():随机字符串函数

 

1、Random string length:随机字符的长度

2、Chars to use for random string generation:用来生成随机字符串的字符,可以是纯数字,纯字符,字符字母数字组合

3、Name of variable in which to store the result (optional):随机生成的字符被变量保存

4、${__RandomString(6,abcdefgh1234566,ranstr)},解释:随机生成一个6位长度的字符串被ranstr保存

常见使用场景:造数据,等等

9、__time

1、函数__time可以通过多种格式返回当前时间。

2、如果省略了格式字符串,那么函数会以毫秒的形式返回当前时间。其他情况下,当前时间会被转成简单日期格式。包含如下形式:

YMD = yyyyMMdd。

HMS = HHmmss。

YMDHMS = yyyyMMdd-HHmmss。

USER1 = JMeter属性time.USER1。

USER2 = JMeter属性time.USER2。

用户可以通过修改JMeter属性文件来改变默认格式,或者自定义格式,例如修改YMD格式: time.YMD=yyMMdd。

年: yyyy 月:MM 日:dd 时: HH 分:mm 秒:ss

关于时间戳的格式,可以自由组合定义,可以写成这样

${__time(YMD)}

${__time(HMS)}

${__time(YMDHMS)}

${__time(yyMMdd)}

${__time(yyyy-MM-dd)}

${__time(yyyy-MM-dd HH:mm:ss)}

生成的函数是这样的:${__time(yyyy-MM-dd HH:mm:ss,)}

 常见使用场景:入参要求时间格式,造数据,实现脚本灵活性,等等

10、_matchNr

用于统计前一个接口返回值的总数。可以给后续的控制器提供可控的循环次数

 常见使用场景:debug调试,获取循环次数,等等

11、__StringFromFile 读取数据函数

 常见使用场景:参数化,等等

假设我们要读取三行数据,那么可以把循环次数设置为3,函数将依次读取这三行数据

纸上得来终觉浅,绝知此事要躬行
原文地址:https://www.cnblogs.com/testing2018/p/14442448.html