JMeter 常见函数讲解

当使用JMeter进行性能测试或负载测试时,函数是一个非常有用的工具,可以帮助生成动态的测试数据或处理测试结果。

下面是一些常用的JMeter函数的详细讲解和并列示例:

1、__threadNum:

返回当前线程的编号。可以在测试过程中用于生成唯一的标识符或动态数据。

复制代码
生成唯一的用户名:${__threadNum}-user
动态参数化请求路径:/users/${__threadNum}

2、__time:

返回当前的时间戳(以毫秒为单位)。可以用于在测试中记录时间或生成动态的时间戳。

python 复制代码
计算请求的响应时间:${__time(,responseTime)}
创建具有时间戳的唯一订单号:order-${__time(ddMMyyHHmmss)}

3、__property:

用于获取或设置JMeter属性值。可以在测试计划中设置自定义属性,并在测试中使用。

python 复制代码
获取自定义属性值:${__property(myProperty)}
设置自定义属性值:${__setProperty(myProperty,newValue)}

4、__P:

用于获取或设置用户定义的参数。可以在执行测试时通过命令行参数或JMeter属性设置参数的值。

复制代码
获取用户定义的参数值:${__P(myParam)}
设置用户定义的参数值:${__P(myParam,newValue)}

5、__Random:

生成一个随机数。可以指定生成随机数的范围和变量名称。

python 复制代码
生成随机数并存储到变量:${__Random(1,100,randomNumber)}
在请求参数中使用随机数:${randomNumber}

6、__groovy:

执行Groovy脚本。Groovy是一种强大的脚本语言,可以用于在测试中进行复杂的逻辑操作。

python 复制代码
使用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脚本。可以用于在测试中进行简单的逻辑操作。

python 复制代码
使用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的官方文档了解更多函数的详细信息和用法。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
汽车仪器仪表相关领域几秒前
ZRT-V 机器人减速器寿命测试系统:精准破解 “寿命焦虑” 的核心测试方案
人工智能·功能测试·机器学习·单元测试·机器人·可用性测试·安全性测试
软件测试小仙女几秒前
认真测试大语言模型(LLM)
软件测试·人工智能·测试工具·ai·语言模型·自然语言处理·llm
oh-pinpin3 分钟前
【jmeter】-脚本-遇自动转义要使用CSV文件
测试工具·jmeter
大布布将军10 小时前
⚡️ 深入数据之海:SQL 基础与 ORM 的应用
前端·数据库·经验分享·sql·程序人生·面试·改行学it
可可南木11 小时前
ICT测试日志 --1--数据结构
功能测试·测试工具·pcb工艺
yaoh.wang15 小时前
力扣(LeetCode) 104: 二叉树的最大深度 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·跳槽
long31620 小时前
类与对象 | 低级别设计 (LLD)
java·spring boot·学习·程序人生·spring·设计模式·学习方法
郝学胜-神的一滴21 小时前
封装OpenGL的Shader相关类:从理论到实践
开发语言·c++·程序人生·游戏·图形渲染
我命由我1234521 小时前
开发中的英语积累 P21:Parentable、Guideline、Manifest、Expire、Condition、Optimize
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
郝学胜-神的一滴1 天前
Linux 下循环创建多线程:深入解析与实践指南
linux·服务器·c++·程序人生·算法·设计模式