您的位置:首页 > 产品设计 > UI/UE

LoadRunner函数详解之web_custom_request

2015-08-18 13:16 531 查看
定义:允许用户运用任何HTTP支持的方式自定义HTTP请求

函数形式:web_custom_request( const char *RequestName, ,

[EXTRARES, ,] LAST );



示例1:Body可使用属性的演示

web_custom_request(
……
"BodyUnicode=REPRICE"
"BodyBinary=\\x08\\x00\\xCC\\x02\\x00\\x00"
"Body=.\r\n"
"-dxjjtbw/(.tp?eg:ch/6--\r\n",
LAST);


注:在上面的代码中,使用了3个参数来划分请求体,一个是Unicode,一个是二进制,最后一个是常规的字符串。最终的请求体是这3个参数按照在函数中的顺序连接起来的值。还有一个很少用到的参数,Binary。它也能描述二进制请求体,但只允许函数中只有一个请求体参数。所有的请求体都是ASCII字符,以null结束。

示例2:以下录制的脚本中,用户开始录制从 http://lazarus/html/forms/file.html。当用户提交他的你请求时,VuGen插入了web_add_header函数,接着在调用web_custom_request函数。

web_url("file.html", "URL=http://lazarus/html/forms/file.html",
"TargetFrame=_TOP", LAST );
web_add_header("Content–Type",
"multipart/form–data; boundary=–––––––––––––––––––––––––––292742461228954");
web_custom_request("post_query.exe", "Method=POST",
"URL=http://lazarus/cgi–bin/post_query.exe",
"Body=–––––––––––––––––––––––––––––292742461228954\r\nContent–Disp"
"osition: form–data; name=\"entry\"\r\n\r\nText\r\n––––––––––"
"–––––––––––––––––––292742461228954\r\nContent–Disposition: f"
"–––––––––––292742461228954––\r\n",
"TargetFrame=",
LAST );


示例3:Raw Body的使用演示

char *abc= .../* a pointer to the raw data */
web_custom_request("StepName",
"URL=http://some.url ",
"Method=POST",
RAW_BODY_START,
"abc",
3,
RAW_BODY_END,
LAST);


注:在应用中,即使设置了数据的长度为0,指针也必须有值,不能为空。在“Binary=1”时,不能使用上面的语法传递原始数据。数据缓冲区中的数据不能使用参数化。也就是说,缓冲区中的任何参数(例如 “{MyParam}”)不能被正确的替代为相应的值,只会以字面值发送。

示例4:在Body属性中使用二进制代码

可以使用下面的格式在web_custom_request 函数的“Body”属性中加入二进制字符串。

\x[char1][char2]

通过2个字符[char1][char2]来表示十六进制的值。

例如:\x24表示16*2+4=36,它代表“$”符号,\x2B代表的是“+”符号。

如果不足2个字符,也不是有效的十六进制字符,VuGen则会当作ASCII文本处理。所以要注意,对于不足2个字符的十六进制,要在前面补0。例如 “\x2”是无效的十六进制串,需要边为“\x02”。

注意二进制的值是以“\x” 的形式出现在脚本中的,也就是说在“x” 前面有2个反斜杠。这是由C语言的转义语法决定的。但是,当使用VuGen生成web_custom_request 函数时,只需要输入一个反斜杠。

如果在web_custom_request 中使用参数化,定义参数时只需要包含一个反斜杠这是由于参数替换时是不考虑C的语法转换的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: