TA的每日心情 | 无聊 4 天前 |
---|
签到天数: 530 天 连续签到: 2 天 [LV.9]测试副司令
|
本帖最后由 测试积点老人 于 2018-11-2 15:55 编辑
HTTP协议函数
int web_url( const char *StepName, const char *url, <List of Attributes>, [EXTRARES, <List of Resource Attributes>,] LAST );
web_url()是一个操作函数,它可以加载指定的网页(GET)请求,加载URL属性指定的URL,不需要上下文。该函数通过LR启动浏览器捕捉传送的HTTP请求。
stepName:VuGen中树形视图中显示的名称,在自动事务处理中也可以用做事务的名称;
Url:页面URL地址;
EXTRARES:分隔符,标记下一个参数是资源属性列表;
LAST:属性列表结束的标记符;
- <span style="font-size:14px;">web.url("www.abc.com",
- "URL=http://www.abc.com/",
- new String[]{
- "TargetFrame=",
- "TargetBrowser=Mercury Technologies",
- "Resource=0",
- "RecContentType=text/html",
- "Snapshot=t1.inf",
- "Mode=HTML",
- "LAST"
- });</span>
复制代码 注意:只有VuGen处于URL_based(此时A script containting explicit URLs only勾选时)的录制模式时,web_url才会被录制到
int web_custom_request( const char *RequestName, <List of Attributes>,
[EXTRARES, <List of Resource Attributes>,] LAST );
web_custom_request()可以发送POST和GET类型请求,属性值可以为多个,注意BODY中的值必须通过URL编码,使用web_convert_param();
RequestName:步骤的名称,VuGen中树形视图中显示的名称;
List of Attributes:支持的属性有以下几种
URL:页面地址
Method:页面的提交方式,POST或GET
TargetFrame:包含当前链接或资源的frame名称
EncType:编码类型
Body:请求体
EXTRARES:分隔符,标记下一个参数是资源属性列表;
LAST:属性列表结束的标记符;
- <span style="font-size:14px;">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 );</span>
复制代码 web_submit_data():模拟一个form提交,只能POST方式提交的数据。不管Cache存在不存在,提供了所有的数据
web_submit_form():模拟一个form提交,只提供了和Cache中有差别的数据,其余的数据会自动从Cache中取。
int web_link( const char *StepName, <List of Attributes>, [EXTRARES, <List of Resource Attributes>,] LAST );
web_link()模拟在一个链接上面的鼠标点击,web_link只能在上一个操作的上下文中执行
web_image()模拟在一个图片上面的鼠标的点击,用法类似
stepName:VuGen中树形视图中显示的名称,在自动事务处理中也可以用做事务的名称;
List of Attributes:支持的属性有以下几种
Text:超链接中的文字,必须精确匹配
Frame:录制操作时所在的Frame的名称
Ordinal:如果给出的属性筛选出的元素不唯一,那么VuGen使用此属性来指定其中的一个。如”SRC=abc.gif”,”Ordinal=3”标记的是SRC的值是”abc.gif”的第三张图片
EXTRARES:分隔符,标记下一个参数是资源属性列表;
LAST:属性列表结束的标记符;
- <span style="font-size:14px;">web_link("Test1",
- "Text=Test1",
- LAST );</span>
复制代码 日志输出函数
lr_output_message():发送日志至运行过程中的Replay Log输出窗口,仅用在性能测试脚本调试阶段,调试完毕立即删除。不受运行时设置中的日志开关限制。(建议不要使用)
lr_log_message():发送日志至Vuser的运行日志中,我们可在场景运行日志中看到该信息,一般用于判断成功事务的代码中,受运行时设置中的日志开关限制。(使用)
lr_error_message():仅用在判断失败事务的代码中,在事务异常时打印错误日志,不受运行时设置中的日志开关限制。(错误时使用)
字符串函数
Lr_eval_string,返回参数的当前值。在LR中,对于参数替换是无法在除了操作函数以外直接使用参数的,必须将参数放入这个函数才能使用。
- <span style="font-size:14px;">lr_output_message("当前用户名为: %s", lr_eval_string("{username}"));</span>
复制代码 Lr_save_string,将程序中的常量或变量保存到参数中
- <span style="font-size:14px;">lr_save_string(“shanghai”,“city”);
- lr_eval_string(“welcome to {city}”);</span>
复制代码 Lr_save_int,将一个整数值保存在参数中
- <span style="font-size:14px;">int num = 5;
- lr_save_int(num*2,”parama1”);</span>
复制代码 Lr_save_datetime(const char*format,int offset,const char*name),将当前日期和时间或具有指定偏移的日期和时间保存在参数中
Format:期望输出的日期格式
Offset:表示时间的一些关键字常量,有DATE_NOW TIME_NOW ONE_DAY ONE_HOUR ONE_MIN可以单独使用,也可以联合使用
Name:期望将时间保存到的参数名称
lr_save_datetime(“%Y-%m-%d %H:-%M:-%S”,DATE_NOW+TIME_NOW,”times”);
int lr_save_searched_string( const char *buffer, long buf_size, unsigned int occurrence, const char *search_string, int offset, unsigned int string_len, const char *parm_name );
Lr_save_searched_string()函数在缓冲区中搜索字符串实例,并将该字符串实例保存在参数中。
int sprintf( char *string_buffer, const char *format_string[, args] );格式化字符串
int index = 56;
- <span style="font-size:14px;">char filename[64], *suffix = "txt";
- sprintf(filename,"log_%d.%s",index,suffix);
- lr_output_message("The new file name is %s",filename);//打印The new file name is log_56.txt</span>
复制代码 Int lr_convert_string_encoding(const char*sourceString,const char*fromEncoding,const char*toEncoding,const char*paramName);转换字符串编辑格式
sourceString:被转换的源字符串
fromEncoding:转换前的字符编码
toEncoding:转换后的字符编码
paramName:转换后的目标字符串
- <span style="font-size:14px;">lr_convert_string_encoding(lr_eval_string(“{message}”),LR_ENC_UTF8, LR_ENC_SYSTEM_LOCALE, "msg");
- //将参数message里的内容从UTF8格式转成本地格式,存入msg参数中</span>
复制代码 字符串处理函数
Strlen(str1)返回String的长度,不包括结束符NULL
Strcmp(str1,str2) 比较两个字符串的ASCII码,str1>str2则返回1,str1=str2则返回0,str1<str2则返回-1
Stricmp(str1,str2) 与Strcmp类似,只是会区分大小写比较两个字符串
Strstr(str1,str2) 判断str2是否为str1的子串,如果是则返回Str2在Str1起始位置的索引,如果不是则返回null
Strcat(str1,str2) 连接两个字符串,去掉str1后的结束符,将str2连接到str1字符串的末尾
Strcpy(str1,str2) 把str2拷贝到str1中
Strlwr() 将字符串转换成小写
Strupr() 将字符串转换成大写
- <span style="font-size:14px;">char *file="c:\\temp";
- char *filename = "\\logfile.txt";
- char fullpath[256]="\0";
- lr_output_message("str的长度是:%d",strlen(file));
- strcpy(fullpath,file);
- lr_output_message("fullpath的内容:%s",fullpath);
-
- strcat(fullpath,filename);
- lr_output_message("fullpath的内容:%s",fullpath);
- 输出值:
- str的长度是:7
- fullpath的内容:c:\temp
- fullpath的内容:c:\temp\logfile.txt</span>
复制代码Atoi() 将字符串首部字符串整数转换为整数类型 Itoa() 将整形转化成字符串
- <span style="font-size:14px;"> int i;
- char *s = "7 dollars";
- i = atoi(s);
- lr_output_message("Price $%d", i);
- 输出值:
- Price $7</span>
复制代码
|
|