为什么一个网站外链那么多,公司团建活动,免费的进销存软件哪个简单好用,做网站哪种域名好记Loadrunner模拟JSON接口请求进行测试一、loadrunner脚本创建1.Insert - New step -选择Custom Request -web_custom_request2.填入相应参数3.生成脚本#xff0c;并修改如下(参数中的引号前需要加斜杠\转译)Action(){web_custom_request(web_custom_request…Loadrunner模拟JSON接口请求进行测试一、loadrunner脚本创建1.Insert - New step -选择Custom Request -web_custom_request2.填入相应参数3.生成脚本并修改如下(参数中的引号前需要加斜杠\转译)Action(){web_custom_request(web_custom_request,URLhttp://urlhead/CpcService.ashx?MethodcheckXXXed,MethodPOST,Resource0,RecContentTypeapplication/json,Referer,ModeHTTP,EncTypeapplication/json,Body{\user\:{\uid\:\C8-9C-DC-70-BD-B2\}},LAST);return 0;}4.捕获页面返回值返回格式{IsError:0,ErrorMsg:,user_tags:[0]}将光标移动到脚本顶部插入关联点insert-newstep-service-web_reg_save_param在脚本顶部插入并修改脚本如下web_reg_save_param(user_tags,LBuser_tags\:[\,RB\]},LAST);在脚本尾部加入输出日志验证是否获取成功lr_message (user_tags:%s,lr_eval_string({user_tags}));5.对我们的接口做自动化功能测试写验证脚本如下if(atoi(lr_eval_string({user_tags}))0)lr_output_message(user_tags:%s,succeed!,(lr_eval_string({user_tags})));elseif(atoi(lr_eval_string({user_tags}))1)lr_output_message(user_tags:%s,failed!,(lr_eval_string({user_tags})));elselr_output_message(user_tags:%s,unknow!,(lr_eval_string({user_tags})));6.参数化脚本运行脚本重要日志输出如下Action.c(24):[C8-9C-DC-70-BD-B2]0,succeed!Action.c(26):[C8-9C-DC-70-BD-B3]1,failed!---------------------------------------END---------------------------------------二、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来完成这个删除的请求需要很多个web_submit_data请求才能完成但使用web_custom_request就可以通过一个请求完成方法是自己写代码拼一个web_custom_request方法POST请求的Body值。1. web_submit_data请求中提交的数据格式“Name属性名称,”,“Value属性值”例如Nameusername″,Value12044″,ENDITEM,Namepassword″,Value123456″,ENDITEM,NametypeId″,Value1″,ENDITEM,如果想提交的某个属性包含包含多个值(比如说批量删除)单个web_submit_data就无法处理了只能通过多个web_submit_data来处理。2. web_custom_request提交的数据(body)格式“Body属性名称属性值属性名称属性值……”下面是一个典型的web_submit_data和web_custom_request请求可以看到web_custom_request中提交的数据(body)是以这样的方式存在的如下web_submit_data(searchRecvOrgsname,Actionhttp://{url}/searchRecvOrgsname,MethodPOST,TargetFrame,RecContentTypetext/html,Refererhttp://{url}/login_wj;jsessionid{jsessionid},Snapshott18.inf,ModeHTML,ITEMDATA,NameorgsId,Value{orgsId}, ENDITEM,Namecode,Value{order_end_station_code}, ENDITEM,LAST);web_custom_request(searchVehiclePopUp,URLhttp://{url}/searchVehiclePopUp,MethodPOST,TargetFrame,Resource0,RecContentTypetext/html,Refererhttp://{url}/login_wanjia;jsessionid{jsessionid},Snapshott19.inf,ModeHTML,EncTypeapplication/x-www-form-urlencoded;charsetUTF-8,BodyorgsId{orgsId}order_start_station_id{order_start_station_id}targetcodeorder_truck_notargetnameorder_truck_nametargetidorder_truck_id,LAST);两种情况下的POST请求会被LoadRunner录制为web_custom_request1.上文提到的批量提交多条同属性名称的数据的请求2.header属性x-requested-by值为XMLHttpRequest的POST请求这两种实现请求的方法还有一个需要注意的地方就是web_custom_request中body中的属性值如果包含一些特殊字符必须通过URL编码否则Web服务器会返回500错误一个典型的例子是如果Body中包含ViewStateViewState中常常有“”之类的特殊字符此时必须通过URL编码LoadRuner中提供了一个这样的编码转换函数web_convert_param(“vs1″,“SourceEncodingHTML”,“TargetEncodingURL”, LAST);3. web_custom_request函数详解A.语法int web_custom_request( const char*RequestName, ,[EXTRARES, ,] LAST );B.返回值返回LR_PASS(0)代表成功LR_FAIL(1)代表失败。C.参数(1)RequestName步骤的名称VuGen中树形视图中显示的名称。(2)List ofAttribute属性列表支持的属性有以下几种a.URL页面地址。b.Method页面的提交方式POST或GET。c.TargetFrame当前链接或资源所在Frame的名称。除了Frame的名字还可以指定下面的参数_BLANK打开一个空窗口。_PARENT把最新更改过的的Frame替换为它的上级。_SELF替换最新更改过的的Frame。_TOP替换整个页面。d.EncType编码类型。