LoadRunner常用函数
暂时整理一些常用的函数,有空再整理用法
C语言函数
strchr函数用于查找指定字符在一个字符串中第一次出现的位置,然后返回该指向该位置的指针
strrchr函数用于查找指定字符在一个字符串中最后一次出现的位置,然后返回指向该位置的指针
char var[10];
strcpy(var,lr_eval_string("{param}")):将参数{param}转换成C语言中的变量var
strncpy的作用是把一个字符串中的指定长度复制到另一个字符串中,如果指定长度超出字符串的长度,则会复制整个字符串
strcmp(lr_eval_string("{param}"),"str"):将两个字符串类型的变量进行比较,如果相等,返回0,否则,返回1或-1 区分大小写
stricmp不区分大小写比较两个字符串的大小
strcat(body,lr_eval_string("{Token}")):把一个字符串的全部内容复制到另一个字符串后面 (重点)
strncat是把一个字符串的指定长度复制到另一个字符串后面,如指定长度超出字符串的长度,则会复制整个字符串
strler的功能是把一个字符串全部变成小写
strupr的功能则是把一个字符串全部变成大写
atoi(lr_eval_string("{param}")):将LR参数{param}转换为 数字(重点)
itoa则是把整数转为字符串
strlen用于返回指定字符串的字符个数,遇到‘\0’就会停止计算
LR函数
一、关联(重点)
web_reg_save_param("参数名","LB=左边界‘,"RB=右边界","Ord=All",LAST); 一定要写在请求之前
当参数有多个值时,加上"Ord=All”后可获取所有的数值
lr_paramarr_random() 直接从参数组获取一个随机的值
lr_paramarr_random("param_arry"):从参数数组param_arry中随机取一个值,注意param_arry不需要加{}
len = lr_paramarr_len("param_arry"):获取参数数组param_arry的长度,并保存到C语言的变量size
value = lr_paramarr_idx("param_arry",i):获取参数数组param_arry中第i个值,并保存到C语言的变量value里
二、检查点
web_find在HTML页内搜索指定的文本字符串,写在要查找内容之后
web_find("web_find", //定义该查找函数的名称
"RightOf=a", //定义查找字符的右边界
"LeftOf=b", //定义查找字符的左边界
"What=name", //定义查找内容
LAST);
web_global_verification在所有后面的HTTP请求中搜索文本字符串
web_image_check验证指定的图像是否存在于HTML页内
web_reg_find 在后面的HTTP请求中注册对HTML源或原始缓冲区中文本字符串的搜索(在缓存中查找相应的内容),一定要写在请求之前(重点)
Insert-New Step 输入 web_reg_find
web_reg_find("Search=Body", //定义查找范围"SaveCount=ddd", //定义查找计数变量名称
"Text=aaaa", //定义查找内容
LAST);
web_custom_request方法可以发送POST和GET类型的请求;
web_submit_data只能发送POST类型的请求;
所有web_submit_data方法发送的请求都可以使用web_custom_request来实现
web_custom_request可以实现web_submit_data无法实现的请求,比如“查询所有邮件并删除”这个案例中,查询时我们使用关联把所有邮件对应的标识抓取成一个数组
,如果使用web_submit_data来完成这个删除的请求,需要很多个web_submit_data请求才能完成,但使用web_custom_request就可以通过一个请求完成,方法是自己写代
码拼一个web_custom_request 方法POST请求的Body值
1,变量转参数/赋值 (重点)
lr_save_string("aaa","param"):将字符串“aaa”,另存为param。
2,取值 (重点)
lr_eval_string("{param}"):取出参数{param}中的值,可嵌套在其他函数里使用
3,编码转换函数(重点)
lr_convert_string_encoding(lr_eval_string("{msg}"),LR_ENC_UTF8,LR_ENC_SYSTEM_LOCALE,"afterEncodeMsg");
将LR中的参数{msg},从utf-8编码转换为system_local编码(LR本地编码),最后保存到LR的参数{afterEncodeMsg}中
4,日期(重点)
lr_save_datetime(const char * format,int offset,const char * name);
format:检索的日期/时间信息的格式。
offset:从当前日期和时间偏移,使用常量:DATE_NOW,TIME_NOW,ONE_DAY,ONE_HOUR,ONE_MIN。例如,TIME_NOW + ONE_HOUR
name:存储日期/时间信息的参数的名称
示例:检索两天后的日期。
lr_save_datetime("%Y-%m-%d",DATE_NOW+2*ONE_DAY,"endtime");
lr_output_message(lr_eval_string(“{endtime}”));
如果今天是2018-1-7,这些行将返回消息:2018-1-9
5,web_set_max_html_param_len("1024"):设置可检索并保存为参数的任何HTML字符串的最大长度
WebService接口
1,web_service_call,通过Loadrunner生成
2,lr_xml_get_values,获取服务器返回的xml中指定节点中的内容,并保存成一个参数
3,lr_xml_find,xml检查点,检查服务器返回的xml中有没有指定的内容,并将检查出的结果数量返回回来
Socket接口
1,lrs_create_socket("socket0", "TCP", "RemoteHost=127.0.0.1:8888", LrsLastArg),创建socket连接
2,lrs_send("socket0", "buf0", LrsLastArg),发送buf中的数据
3,lrs_receive("socket0", "buf1", LrsLastArg),接收服务器返回的数据,并保存到一个buf1中
4,lrs_save_param("socket0",NULL,"RecivedData",0,-1),获取服务器返回的数据,并保存到一个参数中RecivedData
5,lrs_save_searched_string("socket0",NULL,"RecivedData","LB/BIN=|","RB/BIN=|",1,0,-1),获取服务器返回的数据,并指定了左右边界
过滤出想要的数据,保存到一个参数中,最后三个参数分别为:取值序号、偏移量、保存长度(右边界不能和lenth同时存在;如果指定了右边界,取值长度必须是-1;如果不指定右边界,可以用NULL代替)
6,lrs_close_socket("socket0"),关闭链接
7,lr_get_vuser_ip,获取该虚拟用户的ip地址