本文主要介绍Loadrunner Http协议中常用发送POST请求方法web_submit_data与web_custom_request区别。
1. 实现的功能不同
web_submit_data只能发送POST类型的请求
web_custom_request方法可以发送POST和GET类型的请求
2. 请求数据提交方式不同
web_submit_data以"Name=属性名称,","Value=属性值" 方式提交数据,如:
"Name=username", "Value=admin", ENDITEM,
"Name=age", "Value=20", ENDITEM,
web_custom_request以"Body=属性名称=属性值&属性名称=属性值"方式提交数据,如:
"Body=username=admin&age=20"
示例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
web_submit_data("login",
"Action=http://192.168.1.1:8080/login",
"Method=POST",
"RecContentType=text/html",
"Mode=HTML",
ITEMDATA,
"Name=username", "Value=12044″, ENDITEM,
"Name=password", "Value=", ENDITEM,
"Name=solutionName", "Value=eas", ENDITEM,
"Name=dbType", "Value=1", ENDITEM,
"Name=userAuthPattern", "Value=BaseDB", ENDITEM,
"Name=loginFlow", "Value=true", ENDITEM,
LAST);
web_custom_request("web_custom_request″,
"Method=POST",
"Resource=0″,
"RecContentType=text/javascript",
"Mode=HTML",
"EncType=application/x-www-form-urlencoded;charset=UTF-8″,
"Body=username=admin&age=20",
LAST);
|
通过观察,有两种情况下的POST请求会被LoadRunner录制为web_custom_request,
1.批量提交多条同属性名称的数据的请求
2.header属性x-requested-by值为XMLHttpRequest的POST请求
这两种实现请求的方法还有一个需要注意的地方就是web_custom_request中body中的属性值如果包含一些特殊字符,必须通过URL编码,否则Web服务器会返回500错误。
一个典型的例子是如果Body中包含ViewState,而ViewState中常含有"="之类的特殊字符,此时必须通过URL编码。
此时,我们可以使用LoadRuner中提供的编码转换函数web_convert_param("vs1″,"SourceEncoding=HTML","TargetEncoding=URL",LAST);
原文链接:http://lovesoo.org/loadrunner-web-submit-http-protocol-differences-between-data-and-web-custom-request.html