Loadrunner中web_custom_request使用场景

其中有一段从服务器段动态返回的字符串需要重新提交给服务器(见红色标注)

录制自动生成的脚本是:
web_submit_data("generateYfLstAction.do", 
    "Action=http://172.32.234.213:8001/SAPIR/commission/generateYfLstAction.do", 
    "Method=POST", 
    "TargetFrame=", 
    "RecContentType=text/html", 
    "Referer=http://172.32.234.213:8001/SAPIR/commission/listCommissionAction.do", 
    "Snapshot=t10.inf", 
    "Mode=HTML", 
    ITEMDATA, 
    "Name=proc", "Value=page", ENDITEM, 
    "Name=companyCode", "Value=2000", ENDITEM, 
    "Name=tradeZone", "Value=", ENDITEM, 
    "Name=trade", "Value=", ENDITEM, 
    "Name=genDateBegin", "Value=2007-06-18", ENDITEM, 
    "Name=genDateEnd", "Value=2007-07-18", ENDITEM, 
    "Name=tradeLane", "Value=", ENDITEM, 
    "Name=actvyDateBegin", "Value=", ENDITEM, 
    "Name=actvyDateEnd", "Value=", ENDITEM, 
    "Name=svcLoopCodeBase", "Value=", ENDITEM, 
    "Name=svvdBase", "Value=", ENDITEM, 
    "Name=portCodeBase", "Value=", ENDITEM, 
    "Name=svcLoopCode", "Value=", ENDITEM, 
    "Name=svvd", "Value=", ENDITEM, 
    "Name=portCode", "Value=", ENDITEM, 
    "Name=commMode", "Value=", ENDITEM, 
    "Name=commType", "Value=", ENDITEM, 
    "Name=commClass", "Value=", ENDITEM, 
    "Name=blRefCode", "Value=", ENDITEM, 
    "Name=totalPage", "Value=1211", ENDITEM, 
    "Name=currentPage", "Value=5", ENDITEM, 
    "Name=downloadInd", "Value=0", ENDITEM, 
    "Name=page", "Value=5", ENDITEM, 
    "Name=commYfLstIds", "Value=1902189472274599&9999203000&Cargo&USD&SAL&1&1", ENDITEM, 
    "Name=commYfLstIds", "Value=1902189472274599&9999203000&Operation&USD&FPOL&1&1", ENDITEM, 
    "Name=commYfLstIds", "Value=1903184294047663&9999203000&Cargo&USD&SAL&1&1", ENDITEM, 
    "Name=commYfLstIds", "Value=1903184294047663&9999203000&Operation&USD&FPOL&1&1", ENDITEM, 
    "Name=commYfLstIds", "Value=1902644201920888&9999203000&Cargo&USD&SAL&1&1", ENDITEM, 
    "Name=commYfLstIds", "Value=1902644201920888&9999203000&Operation&USD&FPOL&1&1", ENDITEM, 
    "Name=commYfLstIds", "Value=1903191810240974&9999203000&Cargo&USD&SAL&1&1", ENDITEM, 
    "Name=commYfLstIds", "Value=1903191810240974&9999203000&Operation&USD&FPOL&1&1", ENDITEM, 
    "Name=commYfLstIds", "Value=1903191810240966&9999203000&Cargo&USD&SAL&1&1", ENDITEM, 
    "Name=commYfLstIds", "Value=1903191810240966&9999203000&Operation&USD&FPOL&1&1", ENDITEM, 
    "Name=companyCode", "Value=2000", ENDITEM, 
    LAST);
    

因为这些value都是动态提交,因此需要改用web_custom_request函数
修改后的脚本如下:
web_custom_request("generateYfLstAction.do", 
     "URL=http://172.32.234.213:8001/SAPIR/commission/generateYfLstAction.do", 
      "Method=POST", 
      "Resource=0", 
      "RecContentType=text/html", 
      "Referer=http://172.32.234.213:8001/SAPIR/commission/listCommissionAction.do", 
      "Snapshot=t27.inf", 
      "Mode=HTTP", 
      "Body=proc=page&companyCode=2000&tradeZone=&trade=&genDateBegin=2007-06-18&genDateEnd=2007-07-18&tradeLane=&actvyDateBegin=&actvyDateEnd=&svcLoopCodeBase=&svvdBase=&portCodeBase=&svcLoopCode=&svvd=&portCode=&commMode=&commType=&commClass=&blRefCode=&totalPage=1206&currentPage=3&downloadInd=0&page=3&commYfLstIds=1902457907718192&9999203000&Cargo&USD&SAL&1&1&commYfLstIds=1902457907718192&9999203000&Operation&USD&FPOL&1&1&commYfLstIds="1903242276105507&9999203000&Operation&USD&FPOL&1&1&commYfLstIds=1903242276105522&9999203000&Cargo&USD&SAL&1&1&commYfLstIds=1903242276105522&9999203000&Operation&USD&FPOL&1&1&commYfLstIds=1902525553448997&9999203000&Cargo&USD&SAL&1&1&commYfLstIds=1902525553448997&9999203000&Operation&USD&FPOL&1&1&companyCode=2000", 
       LAST);

但是这个动态字符串中包含“&”,和函数中默认&代表连接符冲突,因此提交服务器端是报错。
我手工把body段的凡是commYfLstIds=后不是连接符的“&”都替换成%26,才能提交成功(手动修改后代码如下)

"Body=proc=page&companyCode=2000&tradeZone=&trade=&genDateBegin=2007-06-18&genDateEnd=2007-07-18&tradeLane=&actvyDateBegin=&actvyDateEnd=&svcLoopCodeBase=&svvdBase=&portCodeBase=&svcLoopCode=&svvd=&portCode=&commMode=&commType=&commClass=&blRefCode=&totalPage=1206&currentPage=3&downloadInd=0&page=3&commYfLstIds=1902457907718192%269999203000%26Cargo%26USD%26SAL%261%261&commYfLstIds=1902457907718192%269999203000%26Operation%26USD%26FPOL%261%261&commYfLstIds="1903242276105507%269999203000%26Operation%26USD%26FPOL%261%261&commYfLstIds=1903242276105522%269999203000%26Cargo%26USD%26SAL%261%261&commYfLstIds=1903242276105522%269999203000%26Operation%26USD%26FPOL%261%261&commYfLstIds=1902525553448997%269999203000%26Cargo%26USD%26SAL%261%261&commYfLstIds=1902525553448997%269999203000%26Operation%26USD%26FPOL%261%261&companyCode=2000", 
我是把服务器动态返回的“1902189472274599&9999203000&Cargo&USD&SAL&1&1”这类记录都进行了动态关联,因此请问大家如何才能让lr自动将动态关联所得参数中出现的“&”转义变成%26呢?
时间: 2024-11-01 15:01:15

Loadrunner中web_custom_request使用场景的相关文章

转:LoadRunner中web_custom_request 和 web_submit_data的差别

web_custom_request方法可以发送POST和GET类型的请求 web_submit_data只能发送POST类型的请求 所有web_submit_data方法发送的请求都可以使用web_custom_request来实现 web_custom_request可以实现web_submit_data无法实现的请求, 比如"查询所有邮件并删除"这个案例中,查询时我们使用关联把所有邮件对应的标识抓取成一个数组,如果使用web_submit_data来完成这 个删除的请求,需要很多

loadrunner中面向目标场景的设计

在一个面向目标的方案中,可以定义五种类型的目标:虚拟用户数.每秒点击次数(仅 Web Vuser).每秒事务数.每分钟页面数(仅 Web Vuser)或方案的事务响应时间.使用“编辑方案目标”对话框可以对方案目标进行定义.就是设置一个运行目标,在Controller中运行相关负载,如果测试的结果达到目标,则说明系统的性能符合测试目标,否则就提示无法到达目标.目标场景是定性型的性能测试,我们只关心最后性能测试的结论是否符合性能需求,常常用在验收测试的场合. 1.下拉选择运行方式: 2.设置方式 3

LoadRunner中获取一个场景运行时的唯一值

/* * 本代码产生一个从1970年1月1日0时开始累计以毫秒为单位的数值, * 在需要唯一值的地方使用时前缀上VuserID以保证场景运行期内该值为唯一 * (局限:不适用于脚本单次执行时间小于1毫秒的情况,当然该情况非常罕见,所以请放心使用) */ int a; int b; typedef long time_t; struct _timeb { time_t time; unsigned short millitm; short timezone; short dstflag; }; s

LoadRunner中web_custom_request 和 web_submit_data的差别

LoadRunner中Action的迭代次数的设置和运行场景中设置

LoadRunner中Action的迭代次数的设置和运行场景中设置 LoadRunner是怎么重复迭代和怎么增加并发运行的呢? 另外,在参数化时,对于一次压力测试中均只能用一次的资源应该怎么参数化呢?就是说这些资源用了一次就不能在用了的. --参数化时,在select  next row选择unique,update value on选择 each occurence, 1. 迭代跟虚拟用户数没什么必然联系 迭代是这样的: 迭代1次   迭代2次  迭代3次 用户1     X1        

LoadRunner中运行场景时提示"You do not have a license for this Vuser type."

LoadRunner中运行场景时提示"You do not have a license for this Vuser type." 2012-06-15 17:09:07|  分类: Software Testing |举报 |字号 订阅 问题: 使用Java Vuser协议调用Java应用程序,脚本执行通过后,在Controller中运行场景时,均为Errors不通过,报错如下: 解决: 百度"You do not have a license for this Vuse

LoadRunner中的Web 函数列表

web test LoadRunner fuction_list D:\Program Files (x86)\Mercury Interactive\Mercury LoadRunner\bin>ls -l *.chm -rw-rw-rw-   1 user     group       25893 May 20  2004 FuncRef.chm -rw-rw-rw-   1 user     group       29443 May 20  2004 RPM_Configuration

LoadRunner中log的使用总结

LoadRunner中log的使用总结 1.log的设置方式. 在 runtime setting中可以设置log的生成方式: 默认的log方式: Enable logging选中,log option是Send messages only when an error occurs. 可以修改日志的方式: Always send messages(这种方式会一直打印输出日志,不仅在错误时) standard log——记录所有的请求反馈的日志,包括successful和fail的日志. Exte

LoadRunner中常用函数参考手册

基础篇1:LoadRunner中常用函数参考手册 常用函数列表 web_url web_submmit_form VS web_submmit_data VS web_custom_request web_custom_request web_concurrent_start(NULL); web_concurrent_end(NULL); ============================分割线================================ 1. web_url Loa