JSON格式的数据现在用的越来越多,在MySpace.CN,存在着2中web应用,一种是基于.NET平台的web应用,另一种是记录LAMP平台的web应用,要让这两种应用能够互相通信,需要制定一种通信格式,当时选择的就是JSON格式。今天接到一个任务,是要对一个批量获取用户数据的接口进行测试,这个接口介绍JSON格式的请求,返回JSON格式的结果。由于最近LAMP团队比较忙,而且我又不太懂怎么弄一个提交JSON的页面,所以只能找找LoadRunner有没有一些函数可以用。最终找到了web_custom_request这个函数。

1
2
3
4
5
6
7
8
9
10
11
web_custom_request("request",   //随便写个名字
    "Method=POST",                         //请求的方法
    "URL=http://10.60.0.13:8002/json/getUserAccounts",        //请求地址
    "RecContentType=application/json",    //指定相应头的Content-Type,这里是JSON
    "EncType=application/json",               //指定请求头的Content-Type,这里也是JSON
    "Mode=HTML",
    RAW_BODY_START,                      //请求BODY开始的标识符
    "{\"userIds\":[1300000001,1300002029,1300003163],\"type\":0}",  //BODY的内容
    55,                                    //上面一行BODY内容的长度
    RAW_BODY_END,                  //请求BODY结束的标识符
    LAST);

这样就是一个发起JSON格式请求,接受JSON格式数据的请求了。也是我写的第一个LR脚本,居然还不是录制的……

在这里介绍一个计算BODY内容的长度的方法:

  1. 在Firefox上装好firebug这个插件
  2. 打开Firefox,然后打开控制台
  3. 在控制台里面输入BODY内容,然后用.length属性来获取该字符串的长度,如果对于上面这个例子,就是|| “{\”userIds\”:[1300000001,1300002029,1300003163],\”type\”:0}”.length ||,这样就能计算出结果“55”

很方便吧。而且还不会出错,不用数转义字符数目。

No related posts.

  4 Responses to “LoadRunner模拟客户端发送JSON格式的请求”

  1. 我记得是不需要用web_reg_save_param的

  2. 请教下,接收的json串,lr会放到缓存中吗,还是需要使用web_reg_save_param函数保存

  3. 你好请教你个问题,我现在做JSON数据的接口性能测试:如下
    写的脚本如下:
    Action()
    {
    web_custom_request(“request1″

    “URL = http://61.145.165.154:8080/uc/json“,
    “Method = POST”,

    “Resource=1″,
    “RecContentType = uc/json”,
    “EncType = uc/json”,
    “Mode = HTTP”,
    RAW_BODY_START,
    // “{action:\”DeviceActive\”,device:{deviceid:\”abc\”, devmodel:\”abc\”}}”,
    //”body = deviceid = b90f632d06cf51a176c36be73cb725d516d7c77f”
    “{action:\”DeviceActive\”, device:{deviceid:\”b90f632d06cf51a176c36be73cb725d516d7c77f\”,devmodel:\”1\”}}”,
    //”{device:{deviceid:\”b90f632d06cf51a176c36be73cb725d516d7c77f\”,devmodel:\”1\”}}”
    //55,
    RAW_BODY_END,
    LAST);

    //return 0;
    }
    运行报如下错:
    Action.c(3): Error -27226: The “Method = POST” argument (number 2) is unrecognized or misplaced [MsgId: MERR-27226]
    Action.c(3): web_custom_request(“request1URL = http://61.145.165.154:8080/uc/json“) highest severity level was “ERROR”, 0 body bytes, 0 header bytes [MsgId: MMSG-26388]

    请指教谢谢!

    • 如果你发的请求就是贴在这里的代码的话,是不是双引号有问题?我贴出来以后看双引号是中文符号的双引号,不是英文的。

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

 
© 2011 进化的测试 Suffusion theme by Sayontan Sinha