当使用JMeter进行性能测试或负载测试时,函数是一个非常有用的工具,可以帮助生成动态的测试数据或处理测试结果。
下面是一些常用的JMeter函数的详细讲解和并列示例:
1、__threadNum:
返回当前线程的编号。可以在测试过程中用于生成唯一的标识符或动态数据。
-
生成唯一的用户名:${__threadNum}-user
-
动态参数化请求路径:/users/${__threadNum}
2、__time:
返回当前的时间戳(以毫秒为单位)。可以用于在测试中记录时间或生成动态的时间戳。
-
计算请求的响应时间:${__time(,responseTime)}
-
创建具有时间戳的唯一订单号:order-${__time(ddMMyyHHmmss)}
3、__property:
用于获取或设置JMeter属性值。可以在测试计划中设置自定义属性,并在测试中使用。
-
获取自定义属性值:${__property(myProperty)}
-
设置自定义属性值:${__setProperty(myProperty,newValue)}
4、__P:
用于获取或设置用户定义的参数。可以在执行测试时通过命令行参数或JMeter属性设置参数的值。
-
获取用户定义的参数值:${__P(myParam)}
-
设置用户定义的参数值:${__P(myParam,newValue)}
5、__Random:
生成一个随机数。可以指定生成随机数的范围和变量名称。
-
生成随机数并存储到变量:${__Random(1,100,randomNumber)}
-
在请求参数中使用随机数:${randomNumber}
6、__groovy:
执行Groovy脚本。Groovy是一种强大的脚本语言,可以用于在测试中进行复杂的逻辑操作。
-
使用Groovy生成动态数据:${__groovy('Hello ’ + vars.get(‘username’),)}
-
执行Groovy脚本并存储结果:${__groovy(import java.time.LocalDate; return LocalDate.now().plusDays(1),)}
7、__urlencode:
对字符串进行URL编码。可以用于生成具有特殊字符的URL参数。
对参数进行URL编码:{__urlencode({paramValue})}
8、__javaScript:
执行JavaScript脚本。可以用于在测试中进行简单的逻辑操作。
-
使用JavaScript生成动态数据:${__javaScript('Hello ’ + vars.get(‘username’))}
-
执行JavaScript脚本并存储结果:${__javaScript(new Date().toString())}
9、__CSVRead:
从CSV文件中读取数据。可以用于从文件中获取测试数据。
从CSV文件中读取数据:${__CSVRead(data.csv,0)}
10、__regex:
使用正则表达式从字符串中提取数据。可以用于处理返回结果或提取关键信息。
从响应结果中提取信息:{__regex({response},,$1)}
以上示例演示了如何使用常用的JMeter函数来生成动态数据、处理测试结果或执行逻辑操作。可以根据具体需求调整这些示例或查看JMeter的官方文档了解更多函数的详细信息和用法。