JMeter的。带有随机数的Http采样器和json中的字符串集合元素

时间:2013-07-09 10:35:59

标签: json jmeter

我是Jmeter的新手,我的http请求主体就像:

{
   "List":{
      "ListAPPInfo":[
         {
            "first_time":"2013-06-24 10:00:00",
            "lasttime":"2013-06-24 10:00:00"
         }
      ],
      "device_id":"015d24a409441203",
      "device_model":"Nexus 7"
   }
}

我想发送带有随机参数的Http采样器,如first_time值,请参阅2013-01-01结束2013-12-31

1 个答案:

答案 0 :(得分:3)

您想要添加此树节点的种类:

Simple Controller
  |_ HTTP Request Defaults
  |_ Your Request Controller
    |_ Random Variable Year
    |_ Random Variable Month
    |_ Other...

现在随机变量的参数: 年

Random Variable: 
Variable Name: RND_YEAR
Output Format: 0000
Minimum Value: 0000
Maximum Value: 2999

Random Variable: 
Variable Name: RND_MONTH
Output Format: 00
Minimum Value: 01
Maximum Value: 12

Random Variable: 
Variable Name: RND_DAY
Output Format: 00
Minimum Value: 01
Maximum Value: 30

和其他变量。

请注意,格式和值中的数字数应相等。

现在将此类文字${RND_VARIABLE}放入Your Request Controller请求。

像这样:

{
   "List":{
      "ListAPPInfo":[
         {
            "first_time":"${RND_YEAR}-${RND_MONTH}-${RND_DAY} 10:00:00",
            "lasttime":"2013-06-24 10:00:00"
         }
      ],
      "device_id":"015d24a409441203",
      "device_model":"Nexus 7"
   }
}

保存并开始您的测试计划。

您可以使用BeanShell处理器生成随机日期 http://justjmeter.blogspot.ru/2012/04/2.html http://jmeter.apache.org/usermanual/functions.html

如果要替换某些集合的随机字符串元素,则应在java上的BeanShell PreProcessor内编写自己的beanshell函数。

import java.util.Random;

enum locales {UK, RU};
Random randGenerator = new Random();
int randInt = randGenerator.nextInt(locales.values().length);
vars.put("randomLocale",locales.values()[randInt].toString());

然后像往常一样将${randomLocale}粘贴到您的请求中。