Loadrunner常用函数总结
Loadrunner常用函数总结
此文是个人进行总结的是比较常用的一些lr函数。学习lr常用函数,可以增强脚本,便于脚本调优。
1、lr_eval_string(“{当前想要获取的参数}”)
此函数可获取指定的当前参数的值。
2、lr_output_message()
此函数一般用于打印输出到控制台和output.txt文件中。
lr_eval_string函数与lr_output_message函数用法举例:
lr_output_message(“%s登录成功!”,lr_eval_string(“{username}”));
登录成功后,打印出jack(username的取值)登录成功!;其中%s对应的获取出来的是username,因为是字符类型,所以使用%s(若为整型为%d,浮点型为%f)
3、lr_error_message()
此函数一般用于打印错误,错误一般会以红色字体在控制输出。
函数用法:
lr_error_message(“%s登录失败!”,lr_eval_string(“{username}”));
登录失败后,打印出jack(username的取值)登录失败!,并以红色字体显示。
4、web_reg_save_param_ex()
此函数为关联函数,在脚本需要做关联的地方就需要用到此函数(想了解与关联相关的内容请自行查找资料学习,这里不做介绍)。
函数用法:
web_reg_save_param_ex函数的参数有:
1)ParamName:定义存放得到的动态内容的参数名称
2)NotFound:在返回信息中找不到要找的内容时应该怎么处理,若NotFound=error,说明在返回信息中找不到要找的内容时,发出一个错误信息,脚本不会继续执行下去;若NotFound=warning,说明在返回信息中找不到要找的内容时,只发出警告,脚本会继续执行不中断。
3)LB:返回信息的左边界字符串,该属性必须有,并且区分大小写
4)RB:返回信息的右边界字符串,该属性必须有,并且区分大小写
5)RelFrameId:相对于URL来说,相应查找网页的Frame。此属性性质可以为All或是数字,该属性不常用,可有可无。
6)Search:返回信息的查找范围。可选择:Headers(在请求头中查找)、Body(在请求体重查找)、Noresource(仅仅在HTML请求体中查找,不包括头和资源)、All(在头、请求体、资源中搜索,默认为All),该属性可有可无。例如:
SEARCH_FILTERS,
"Scope=Body",//查找范围
"IgnoreRedirections=Yes",//在某些情况下系统会使用HTTP3xx重定向操作来完成页面跳转,该选项是用来忽略跳转页面信息 的。如果选中该选项,通过这种重定向技术的页面将不会被关联
"RequestUrl=*/selectNextParticipants.jsp*",//指定请求URL
7)Ordinal (Ord):说明第几次出现的左边界字符串的匹配项才是需要查找的内容。该属性可有可无。默认为1,若为All,则将查找到的所有内容存储起来。Lr11必须写Ordinal全称才可以成功,否则会报错(已验证)。这个参数用于关联参数有很多相同的左边界的情况。
8)Savelen:当找到匹配项后,偏移量之后的剩下的几个字元存储到参数中。该属性不能负数,默认值为0。
9)SaveOffset:当找到匹配项后,从第几个字元存储到参数中。默认值为-1,表示一直到结尾的整个字串都存入参数
5、web_reg_find()
此函数用于在服务器响应后的数据缓存中查找响应的内容,此函数为注册函数,要放在请请求函数之前。web_reg_find在执行效率上要比web_find要高(想具体了解web_reg_find与web_find的区别的请自行查找资料学习,在这里不做介绍。web_find只支持在Html模式下录制脚本,在页面中查找,是查找前面的请求结果,使用时放在请求语句的后面)。这个函数可以通过查找期望的字符来验证是否返回了正确的页面。
函数用法:
web_reg_find函数参数有:
- Text:要查找的字符串
- TextPfx:要查找的字符串的直接前缀
- TextSfx:要查找的字符串的直接后缀
- Search:查找的范围。可选择:Headers(在请求头中查找)、Body(在请求体重查找)、Noresource(仅仅在HTML请求体中查找,不包括头和资源)、All(在头、请求体、资源中搜索,默认为Body)
- SaveCount:统计查找参数的个数
- Fail:设置函数检查在什么状态下失败,Fail可以是Found或NoFound,默认为NoFound。若Fail=NoFound,是说明当对应的字符串找不到时,函数检查失败;若Fail=Found,是说明当对应的字符串找到时,函数检查失败
- ID:日志文件中标识此函数的一个字符串
- RelFrameId:相关联的FrameId
- LAST:属性列表结束的标记符
6、strcpy函数
此函数功能为复制一个字符串到另一个字符串中。
函数用法:
举例:
Action()
{
char a[1024];
strcpy(a,"山东济南");
lr_output_message ("%s",a);
return 0;
}
打印结果:
Starting iteration 1.
Starting action Action.
Action.c(6):山东济南
Ending action Action.
Ending iteration 1.
7、strcat函数
该函数是用来连接字符串的,将一字符串追加到另一字符串的后面。
函数用法:
Action()
{
char a[]="123456";
char b[] ="@qq.com";
strcat (a,"@qq.com");
lr_output_message ("%s",a);
return 0;
}
打印结果:123456@qq.com
8、strcmp函数
该函数可以比较对两个字符串的大小。比较规则:自左向右逐个字符相比(按照ASCII码值大小比较),直到遇到不同的字符或遇到’\0’为止;如果全部字符相同,则认为相等;若出现不同的字符则以第一个不相同的字符比较结果为准;若果两个字符串都为英文字母组成时,按照英文字典中的位置来比较,在后面的字母为大,小写字母比大写字母大。
函数用法:
strcmp(字符串1,字符串2)
Action()
{
int result;
char string1[]="babc";
char string2[]="aabc";
result= strcmp (string1,string2);
if (result>0)
lr_output_message("string1大于string2");
else if(result<0)
lr_output_message("string2大于string1");
else
lr_output_message("string1等于string2");
return 0;
}
打印结果:string1大于string2
9、atoi函数
该函数用来将字符串转换成整型数。
函数用法:
Action()
{
char a[]="100";
int Cint;
Cint=atoi(a);
lr_output_message ("Cint=%d",Cint);
return 0;
}
打印结果:Cint=100
10、lr_save_string()
该函数主要是将程序中的常量或者变量保存为lr中的参数。
函数用法:
lr_save_string(“param_value”, “param_name”)
param_value:要保存的值
param_name:定义变量名称
举例:
Action()
{
lr_save_string("100","name");
lr_output_message ("值为:%s",lr_eval_string ("{name}"));
return 0;
}
打印结果:值为:100
11、lr_save_time()
void lr_save_datetime(const char *format, int offset, const char *name);
此函数是将当前日期和时间,或具有指定偏移的日期和时间保存在参数中。
举例:
char *aa;
char *bb;
lr_save_datetime("%H:%M:%S ", TIME_NOW, "now_time"); //取系统当前时间
aa=lr_eval_string("{now_time}");
lr_output_message(lr_eval_string("{now_time}"));
lr_save_datetime("%Y-%m-%d", DATE_NOW, "now_date"); //取系统当前日期
lr_output_message(lr_eval_string("{now_date}"));
bb=lr_eval_string("{now_date}");
strcat(aa,lr_eval_string("{now_date}"));//将时间与日期拼接
lr_output_message("%s",aa)
打印结果:
vuser_init.c(13): 14:21:23
vuser_init.c(17): 2016-07-07
vuser_init.c(22): 14:21:23 2016-07-07