十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。

【Loadrunner】解决post json问题

上一篇 / 下一篇  2018-08-20 19:36:46 / 个人分类:loadrunner

文章来源
  • 文章来源:【转载】
51Testing软件测试网b-J1uAi)I

问题:发送json的post请求时,虽然请求脚本中有用到RecContentType=application/json;charset=UTF-8,但是回放时,日志中提示: Error -26616: HTTP Status-Code=415 (Unsupported Media Type) for+请求地址,通过查看请求的包头和发送值,以及抓包工具对比,发现RecContentType参数中定义了响应内容为json,但其实默认发送的居然为:Content-Type: application/x-www-form-urlencoded,于是只能无奈的手工添加包头参数,具体操作如下:51Testing软件测试网!D\yM | AS`
解决方法:
1?;UJXR|5}g0 
6`#W6I?8R p0方法1:如果用web_custom_request发送请求,自带EncType参数,可以直接添加该参数值application/json;charset=UTF-8,即可解决此问题

?/Z8@-W/o$i9f051Testing软件测试网WVV8m`W%gd\1zt

web_custom_request("placeOrder",
5E*M"[wiE"q0  "URL=http://{IP}/appServer/interface/order/placeOrder",51Testing软件测试网 H+Q ~C3nj9K
  "Method=POST",
H:n^g'F4w~:a.H2H#l0  "RecContentType=application/json;charset=UTF-8",51Testing软件测试网n l}Q6M
  "Snapshot=t1.inf",
[r(^6\$Y?E"B\4q0  "Mode=HTTP",51Testing软件测试网!Gty i0B:hC
  "EncType=application/json;charset=UTF-8",
n+J.Y6J7n~r0  "Body={\"userId\":{userId},\"shopId\":{shopId},\"orderSceneType\":1,\"orderType\":1,\"goods\":[{\"shopId\":{shopId},\"goodsId\":{goodsId}}]}",51Testing软件测试网 mh$_5bEp3c"P%K
  LAST);51Testing软件测试网'mgPre-A u#~u X@3UJ

0K!|L#clI(w0方法2:如果用提交表单(web_submit_data)的方式发送请求,不自带EncType参数,必须手动添加包头,可解决此问题,但会保警告,大概意思是“添加包头后,后续请求将用到”,此警告暂时未影响请求最终效果,可忽略。

AU-ylkN l@051Testing软件测试网FV5NJp @ g{X

 web_add_header("Content-Type","application/json; charset=utf-8");51Testing软件测试网3W0}B4K:i|Y:R8rP

,M soB$lhf0web_submit_data("placeOrder",51Testing软件测试网nS3}Em0AM
        "Action=http://{IP}/appServer/interface/order/placeOrder",51Testing软件测试网a.wK j^v0X
        "Method=POST",51Testing软件测试网s"n Y'@B
        "RecContentType=application/json;charset=UTF-8",51Testing软件测试网 K:SYi;RihX2i
        "Snapshot=t1.inf",51Testing软件测试网:S!E!@/\W/G
        "Mode=HTML",
0a m;d}m:W0        ITEMDATA,
r cpF g(g{#k V0        "Name=data", "Value={userId}", ENDITEM,51Testing软件测试网 {,YNK0CO*iH.S{^
        "Name=shopId", "Value={shopId}", ENDITEM,51Testing软件测试网 {ro.[HRpz,X
        "Name=orderSceneType", "Value=1", ENDITEM,
-Yoy+c#L^0        "Name=orderType", "Value=1", ENDITEM,51Testing软件测试网.K)v9X2\a pc5c
        "Name=goods", "Value=[{\"shopId\":{shopId},\"goodsId\":{goodsId}}]", ENDITEM,          51Testing软件测试网*QkiGx.du~7y
        LAST );51Testing软件测试网*A*E!H%A9M fbA?


TAG: LoadRunner Loadrunner loadrunner

 

评分:0

我来说两句

Open Toolbar