性能测试——常用函数

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()可以发送POSTGET类型请求,属性值可以为多个,注意BODY中的值必须通过URL编码,使用web_convert_param();

RequestName:步骤的名称,VuGen中树形视图中显示的名称;

List of Attributes:支持的属性有以下几种

URL:页面地址

Method:页面的提交方式,POSTGET

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则返回1str1=str2则返回0str1<str2则返回-1

Stricmp(str1,str2)  Strcmp类似,只是会区分大小写比较两个字符串

Strstr(str1,str2) 判断str2是否为str1的子串,如果是则返回Str2Str1起始位置的索引,如果不是则返回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>


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值