性能测试中大部的都是基于HTTP协议的,脚本里的90%都是Get和Post,多数是Get请求。我们用以下两个方法来实现HTTP请求:
Get - web_url()
此函数用来模拟用户请求,它也是在脚本中最常使用的函数之一。
语法:1
Int Web_url(const char *StepName, const char * url, <Lists of Attributes>, [EXTRARES,<Lists of Resource Attributes>,LAST)
例子:1
2
3
4
5
6
7
8
9
10
11
12web_url("Open Login Page",
"URL=http://10.11.2.22/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
EXTRARES,
"URL=/common/login/button.gif", ENDITEM,
"URL=/common/login/main.jpg", ENDITEM,
"URL=/common/login/head_bg.gif", ENDITEM,
LAST);
返回值:
成功时返回LR_PASS (0),失败时返回 LR_FAIL (1)。
参数的几点说明:
- 最基本的三个参数是StepName,url, LAST,在不能录制的情况下,可以自己用这三个参数写代码。
- Resource - 指定一个值说明这个URL是否是一个资源,0 表示非资源,1 表示资源。
- RecContentType - 指定接受服务器什么格式文件。
- EXTRARES 是由script、active、java applet、flash、CSS产生的请求,在页面上都找不到。
- 每一个都是一个请求。
- 加不加额外资源,会影响下载量。
- 能不能删除此处脚本,取决于是不是全部都是图片或样式的请求,有没有特殊的请求存在。(原则上只要是录制时录下来的,不是无关的内容,就保留下来。)
- 如果在脚本回放时不想下载图片、样式表等,设置:
Run-time Setting -> Browser Emulation -> Download non-html resources。只关心业务处理能力,带宽受限时取消此选项。默认是选中的。
Notes: 排错,只关注url部分即可,数据要是有变化的话,要进行参数化。
Post - web_submit_data()
与Get请求的web_url函数相比,多了ITEMDATA。1
int web_submit_data( const char *StepName, const char *Action, <List of Attributes>, ITEMDATA, <List of data>, [ EXTRARES, <List of Resource Attributes>,] LAST );
例子:1
2
3
4
5
6
7
8web_submit_data("start",
"Action=login.asp",
"Method=POST",
ITEMDATA,
"name=user", "value=yongfeiuall", ENDITEM,
"name=password", "value=yongfeiuall", ENDITEM,
"name=sessionID", "value=20151220", ENDITEM,
LAST);
返回值:
成功时返回LR_PASS (0),失败时返回 LR_FAIL (1)。
参数的几点说明:
- Action:Form中的ACTION属性,指定了完成Form中的操作用到的URL。
- Method:表单提交方法:POST或GET(默认是POST)。
- ITEMDATA:数据域和属性的分隔符。
- List of Data:
数据域列表定义了表单提交的内容。由于此请求是上下文无关的,因此数据域包含了所有的隐含域。使用Form的编码规则组织数据域。
数据域列表可以使用下面任意一种格式:
“name=n1”, “value=v1”, ENDITEM,
“name=n2”, “EncryptedValue=qwerty”, ENDITEM, - 如果要自己写脚本的话,用HTTPWATCH工具,在POST_DATA中可以看到提交对应的参数名和参数值,与脚本一致。
- List of Data:
Notes:排错,两个地方:1. Action 2. ITEMDATA提交的数据不合法。