2015-01-06 67 views
1

我正在尝试加载测试注册搜索应用程序,该程序将按顾名思义为大约500万手机号码进行测试。将使用100-500个线程循环遍历每个循环之间的特定延迟。递增测试数据(手机号码)用于负载测试100万次注册

我有功能测试JMeter脚本准备相同。我想要做的唯一更改是自动生成手机号码。

最简单的解决方案是将mobileNumber设为${random(${min},${max})}。但我想用财产mobileNumber

在JSR223采样器(使用Groovy脚本),我试图读取属性为

long number = ${__P(mobileNumber)} 
vars.put("mobileNumber", String.valueOf(number)) 

我想,以避免它,并获得更多的线性化方法使用UDV从而在当前线程创建mobileNumber和100试图做递增属性mobileNumber

number = number + 100 
${__setProperty(mobileNumber, String.valueOf(number)) 

对于一些原因,不能正常工作,并给予呃ror留言回应信息:

javax.script.ScriptException: javax.script.ScriptException: groovy.lang.MissingPropertyException: No such property: number for class: Script1 

不知道怎么了?

回答

1

您可以通过using just JMeter Functions做没有任何脚本为:

  • ${__longSum(${__P(mobileNumber)},100,tempNumber)}
    • 读取mobileNumber财产
    • 增加100
    • 并将结果存储在tempNumber变量(但如果你不需要它你可以省略这个)
  • ${__setProperty(mobileNumber,${tempNumber},)} - 商店tempNumber变量值作为mobileNumber属性

使用的函数是:

  • __longSum - 计算2个或更多的长值
  • __P的总和 - 一个JMeter的属性
  • 的返回值
  • __setProperty - 将值分配给JMeter属性
+0

所以我认为我的解决方案可能会像 ** vars.put(“mobileNumber”,$ {__ P(mobileNumber))** 获取属性mobileNumber的值并将其存储到当前线程循环变量mobileNumber ** $ {__ setProperty(mobileNumber,$ {__ longSum($ {__ P(mobileNumber)},100,)} ** 增加属性mobileNumber –