LoadRunner与请求相关的函数
1.web_url() 加载指定的网页(GET请求)
web_url函数是一个操作函数,它可以加载指定的网页(GET 请求)。函数web_url
可以加载 URL 属性指定的 URL。函数web_url不需要上下文。
该函数是应用最广泛的一个函数,一般不需要手写,通过LR使用浏览器录制HTTP协议的脚本基本上都是使用该函数与http服务器进行交互。
定义:
int web_url (const char *Name, const char * url, <Lists of Attributes>, [EXTRARES,<Lists of Resource Attributes>,LAST);
参数:
name:请求内容名
url:请求内容地址
List of Attributes:(支持下列属性)
1.TargetBrowser or TargetBrowserOrdinal
2.TargetFrame
3.Resource -指定一个值说明这个URL是否是一个资源,0表示不是资源,1表示是资源
4.RecContentType -在录制期间响应的报头文本类型(text/html, application/x- JavaScript),这是为了确认目标URL是否是可录制的资源。
5.Referer -要提交页面请求的URL .(获得当前页面,如果明确指出了位置,那么这个属性无效或者忽略。URL中写明了,要获取的页面)
6.Snapshot - 快照,快照文件名称,用来关联用的。
7.Mode -录制的等级,是否是HTML或者HTTP模式。
List of Resource Attributes:下载的资源属性
1.URL:通过URL地址(资源统一定位器)要下载的web资源
2.Referer:发送下载请求的页面。比如一个swf要下载一个图片,那么swf就是referer
3.ENDITEM:列表中每个资源的结束标志符
返回值:成功时返回LR_PASS (0),失败时返回 LR_FAIL (1)。
web_url("favicon.ico",
"URL=http://www.grandcloud.cn/favicon.ico",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
Example1– 下载游戏
web_url("Games",
"URL=ftp://joe:secret@mygames.com/games/archive/loderunner.exe",
"FtpAscii=1",
LAST );
Example2– 登录到安全站点
web_url("Login",
"URL=https://secure.computing.com/scripts/login.asp?
user=(username)&session={ssid}",
"RecContentType=text/html",//Expected content–type
LAST)
2.web_custom_request
函数是一个操作函数,通过它可以使用任意方法创建自定义 HTTP 请求或创建正文。默认情况下,VuGen只为无法用其他 Web 函数解释的请求生成该函数。
这个函数通常是手工编写脚本用的,当与http服务器交互不是通过浏览器进行交互,就会用到该函数,比如基于soap协议的xml格式或者json格式的消息交互。
函数允许使用任何方法或主体创建自定义的HTTP请求,其使用范围更广。
其中,Body中,如果是json类型的,引号需要使用 \ 进行转义。其他类型的,直接跟=后面即可。
定义:
int web_custom_request (const char *RequestName, , [EXTRARES,
Resource Attributes>,] LAST );
web_custom_request("login",
"Url={interface_url}", //使用{}引用参数
"Method=POST", //HTTP方法:POST 或 GET
"Mode=HTTP", //记录模式:HTML 或 HTTP
"EncType=application/json", //编码类型
"RecContentType=application/json", //内容类型
"Body={\"mobile\":\"13900009999\",\"pwd\":\"123456\"}", //请求body
LAST);
web_custom_request("web_custom_request",
"URL=http://www.baidu.com",
"Method=GET",
"TargetFrame=",
"Resource=0",
"Referer=",
"Mode=HTTP",
/* json和键值对数据格式,建议使用web_add_header方法添加Content-Type头 */
//"RecContentType=application/json", //指定请求头的Content-Type,这里是JSON
"EncType=application/json", //指定响应头的Content-Type,这里是JSON
//"EncType=application/x-www-form-urlencoded", //编码类型
"Body={\"Name1\":\"Value1\",\"Name2\":\"Value2\"}",
LAST);
使用web_custom_request发送一个空消息:
web_custom_request("nullmessage",
"Method=POST",
"URL=http://172.16.37.151:8080/web/tr069",
"RecContentType=text/xml",
"Snapshot=t4.inf",
LAST);
3.web_add_header
向后面的web请求函数增加请求头
如果web请求方法中已经设置了相同的头,则优先使用web请求方法中的头,
例如web请求方法中的EncType参数,对应请求头中的Content-Type。
由于下面的方法已经设置了EncType参数,所以这里的设置并没有什么用。
表单直接使用方法自带参数,键值对和json建议使用该方法。
web_add_header("Content-Type",
"application/json; charset=UTF-8");
4.soap_request()
soap_request函数执行一个 SOAP请求。它向指定的 URL 发送 SOAP 包,并接收服务器响应。
除了上面可以使用web_custom_request函数模拟soap消息发送以外,通过soap_request函数也可以模拟soap消息发送。该函数只有在协议选择Web Services的脚本里面才可以使用,它区别于Web(HTTP/HTML)协议, 如果选择Web(HTTP/HTML)协议,则需要使用web_custom_request函数。使用Web Services协议的一个好处是可以直接将xml文件导入到脚本当中,而Web(HTTP/HTML)协议不支持导入xml格式文件。但坏处是使用Web Services协议的Vuser属于Global的Vuser,默认的Global Vuser的license只有100,而使用Web(HTTP/HTML)的Web User, 则可以达到10000。因此对于soap协议消息交互,还是建议使用Web(HTTP/HTML)协议,手工编写脚本。
定义:
int soap_request (const char *StepName, URL, , LAST]);
soap_request("StepName=SOAP Request",
"URL=http://172.16.37.151:8080/web/tr069",
"SOAPEnvelope="
""
""
"1234"
""
""
""
"0"
""
""
"",
"SOAPAction=",
"ResponseParam=response",
"Snapshot=t1400577097.inf",
LAST);
5. web_link()
web_link函数是一个操作函数,它模拟鼠标单击由属性定义的链接。web_link只能在上一个操作的上下文中执行。
该函数可以通过脚本录制自动生成,对于web页面链接性质的页面元素,就可以使用该函数。比如一个下载链接。
定义:
int web_link (const char *StepName, , [EXTRARES,
Attributes>,] LAST );
例子:
web_link("update.zip",
"Text=update.zip",
LAST);
6. web_cleanup_cookies()
web_cleanup_cookies函数删除脚本使用的所有当前存储的Cookie。
定义:
int web_cleanup_cookies ( );