${__counter(,)} 计数器-加1的功能
疑问:假如加2,使用计数器 -计数器超过最大值后重新开始计数
重点:最大值, 如果运行结果超过最大值时,又会从起始值开始循环
每个用户独立计数器: 多线程时,每个用户都是从起始值开始计数,跟线程号有关(${__threadNum} 获取线程号函数)
计数器注意事项如图显示:
时间相关的几个函数
${__time(,)} 默认获取当前时间戳函数,但可以设置格式,比如yyyy-MM-dd 年月日的格式 HHmmss 时分秒 S毫秒
${__dateTimeConvert(,,,)} 时间格式转换,默认转换当前时间,参数为时间,原来的格式,目标格式
${__timeShift(,,,,)} 数据格式化,时间偏移---直接查看帮助文档,时间区间,可能要用到
${__RandomDate(,,,,)} 随机日期
加密函数- ${__digest(,,,,)}
加密 简单加密
${__intSum(,,)} 整数相加函数
属性相关的函数
${__P(,)} 获取属性函数
${__property(,,)} 获取属性函数--P 只是property这个函数的简写
${__setProperty(,,)} 设置属性函数--设置jmeter的动态属性
jmeter工具属性:
- jmeter属性:可能被改变
动态属性:运行过程中,动态定义属性
- 系统属性: os、jdk ===这个系统属性信息,是不可改变
问题1:属性vs参数\变量区别
属性是jmeter工具具有,所有,jmeter中的线程组要使用属性,都可以使用
参数、变量,有局限访问
问题2:动态属性:一直存在?还是朝生夕死?
----------动态属性,是在运行过程中产生的,关闭jmeter,就是自动释放了。
问题3:线程组执行顺序-并行的?取样器是从上到下的
jmeter中,多个启用线程组,在执行时,默认是并行执行,性能测试中就是并行执行
在性能测试中,我们不会勾选 测试计划中 “独立运行每个线程组”,
因为混合场景设计不会等一个线程组运行结束后再取运行其他线程组,就是说一个可能登录,一个人可能在注册,模拟的是多个人,所以不同场景
跨线程组引用动态属性的方法
- 获取线程组1的变量保存为新的属性名-${__setProperty(,,)} 设置属性函数--设置jmeter的动态属性
- 属性显示里可以查看到保存的属性
- 线程组2引用步骤1保存的属性名 -${__P(,)} 获取属性函数
可能第一个还没获取到值,但因为性能测试是是并行的大量的,第1.2个获取不到值不影响大局
拼接函数-${__V(,)} 拼接函数
错误方法:${var_${__counter(,)}} -----我们期望它得到过程是${var_1} ${var_2} ${var_3} 最终的结果是变量的值 实际是要进行两次变量计算
正确方法:
${__V(var_${__counter(,)},)} -----“前缀_可变后缀” 变量名值
应用场景:
类似: var_1 var_2 前缀相同,后缀是递增数字的变量名称,常见于 jdbc从数据库中获取数据时。
select name from table where id like '123%'; ---结果可能有多条数据
这个脚本就会返回多个name值, 我用table_name这个变量来接收值,table_name_1,table_name_2
标签:__,jmeter,重要,函数,线程,var,Jmeter,属性 From: https://www.cnblogs.com/shishibuwan/p/17085624.html