我正在尝试加载测试一个注册搜索应用程序,该应用程序将按照名称建议~500万个手机号码执行。将使用 100-500 个线程,在每个循环之间循环通过特定的延迟。
我已经准备好了功能测试 JMeter 脚本。我唯一想做的更改是自动生成手机号码。
最简单的解决方案是将mobileNumber
作为${random(${min},${max})}
。但我想避免它,并通过使用属性mobileNumber
获得更线性的方法
在JSR223采样器(使用Groovy脚本)中,我试图将属性读取为
long number = ${__P(mobileNumber)}
vars.put("mobileNumber", String.valueOf(number))
我希望使用在当前线程中创建的 UDV mobileNumber
并将属性mobileNumber
增加 100。尝试做:
number = number + 100
${__setProperty(mobileNumber, String.valueOf(number))
由于某些原因,它不起作用并给出错误消息响应消息:
javax.script.ScriptException: javax.script.ScriptException: groovy.lang.MissingPropertyException: No such property: number for class: Script1
想不通出了什么问题?
您只需使用 JMeter 函数即可完成此操作
,如下所示:-
${__longSum(${__P(mobileNumber)},100,tempNumber)}
- 读取
mobileNumber
属性 - 添加
100
- 将结果存储到变量
tempNumber
(但是,如果您不需要它,则可以省略它)
- 读取
-
${__setProperty(mobileNumber,${tempNumber},)}
- 将变量值存储tempNumber
mobileNumber
属性
使用的函数有:
- __longSum - 计算 2 个或更多长值的总和
- __P - 返回 JMeter 属性的值
- __setProperty - 为 JMeter 属性赋值