一、LoadRunner 脚本语言的构架
Action就是一个函数包,将用户操作根据类型存放在不同的函数中,当脚本生成的时候,会在对应的目录下生成vuser_init.c,vuser.c、vuser_end.c 3个action,每个action是一组功能的集合,默认的action包含独立的3个函数为vuser_init(), vuser_action(),vuser_end()。action函数结尾处都有一个return 0的命令,这是用来退出整个函数的。Return0说明该函数正常的结束。
(1)Vuser_init 函数:
一般将用户初始化的操作放在里面,如登录操作等。
(2) Action 函数:
是虚拟用户要做的业务。用户的业务操作,也就是测试内容的主体
(3) Vuser_end 函数:
与Vuser——init相对应,Vuser_end做收尾工作。
(4)通过运行结果我们可以想象LR 的实现是这样的:

二、表达式
#define 定义常量 eg:#define aa 100 //注意定义常量后面不跟分号,且不能放在action语句
表达式语句由表达式加上分号“;”组成
LR中数据的打印都需要进行数据格式化,且打印语句必须都是双引号“”
三、条件语句
(1)if条件判断语句
if(所满足的条件){
}else if(所满足的条件){
}else{}
(2)switch条件语句
int random;
random = rand()%3+1; //设置1-3的随机数
switch(random){
case 1: //当结果为1时
lr_output_message("random= %d",random);
break; //跳出此语句
case 2:
lr_output_message("random= %d",random);
break;
default: //其他结果自动跳出
lr_output_message("random= %d",random);
}
(3)Do While循环语句,至少要循环一次
int i=1;
do{ //Do While会首先执行一次操作,在结尾进行循环判断
i++;
}while(i<10);
(4)While循环语句
while(条件语句){
所执行操作
}
(5)for循环语句
int sum=0,i;
for(i=1;i<=10;i++){ //条件以及参数都是使用分号隔开的
sum = sum+i;
}
lr_output_message("从1加到10之和为:%d",sum);
四、字符串及其比较
C语言里没有字符串类型的数据,可以用字符数组来表示一个字符串。
例如 char test[20]=“abcdefg”;
字符串比较
sytcpy(str2,str1)//复制字符串str1
strlen(str1)//长度的统计
strcmp(str1,str2) //比较字符
strstr("s","SS") //忽略大小写比较字符
五、头文件——头文件globals.h分析
#include,#ifndef这些都是预处理,所谓预处理是指对一个源程序进行编译时,系统将首先自动引用预处理程序对源程序中的预处理部分进行处理,处理完毕后再自动进入源程序的编译。
预处理是C语言的重要功能,define宏定义也是预处理。
include是把指定的文件与源文件连成一个文件。
ifnde,define,endif是为了防止头文件被重复调用。
六、全局变量与局部变量
(1)局部变量
局部变量也成为内部变量,它是在函数内定义的,其作用域仅限于函数内部,离开该函数后不可以使用。虚拟用户脚本中的局部变量应该定义在Vuser_init (),action(),vuser_end(),新创建的用户action及用户自定义函数的内部。
(2)全局变量
全局变量也称为外部变量,它是在函数外部定义的变量,在定义后的所有脚本中都可以调用。虚拟用户脚本中全局变量应该定义在Vuser_init (),action(),vuser_end(),新创建的用户action及用户自定义函数的外部。
七、脚本的调试
脚本的调试对于脚本的编写非常重要
断点设置技术是脚本开发中最重要的开发技术,当预期结果与实际结果不一致时,可以在怀疑有问题的代码前插入断点,当程序运行到断点的时候,就会停下来,这时候可以通过日志,定位问题。
(1)设置断点的三种方式
点击右键选Toggle Breakpoint 或者点击菜单栏的[insert]> [ToggleBreakpoint] 或者按F9 设置断点
(2)单步跟踪
每执行一条语句,程序就会停下来,可以结合日志分析脚本。可以通过F10 ,或者[Vuser]>[run step by step] 进行单步跟踪,每按一次F10 ,脚本就会执行一行。
八、指针
Action(){ //字符串
char test1='a';
char test2='b';
char *test=;
char *test3='abc';
test=&test1;
lr_output_message("%c",*test); //输出test的值'a',&符号引用地址符 *只//向内存的内容
lr_output_message("%d",test3) ; //输出test3 的值abc
return 0;
}
网友评论