1、loadrunner虚拟用户开发---变量详细解析数组
变量的定义ide
局部变量和全局变量函数
1、在init action end中定义的变量就是局部变量url
2、在gloabal中定义的变量是全局变量spa
3、何时定义全局变量?指针
整个过程当中固定不变的,例如url地址,KEY 其余,须要定义成全局变量。blog
简单例子:内存
在action里,定义一个变量a,赋值10,而后打印a,能够看到结果打印出10.开发
能够看出,在LR中打印的时候,只须要用LR的函数lr_output_message就能够了,C语言的函数printf没起做用。字符串
在C语言里,可使用到变量时再定义变量,可是在LR里,须要在开始定义完,不能够在中间定义。
在vuser_init \vuser_action\ vuser_ end函数内部定义的变量是局部变量,只能在该函数内部使用。
例如,在action中定义了变量,vuser_end中打印变量a,则编译的时候出现报错,找不到定义的 a。
想要定义全局变量,须要在函数globals.h里。
如下在globals.h定义变量p,而后在init和end里调用变量,用来获取内存,回放结果是正常的。
2、 LR虚拟用户脚本开发--经常使用语法和使用误区
1、指针的用法
如下是脚本例子以及释义:
运行结果以下,结果打印出A和loadrunner
2、数组的用法
例子1:
打印结果中,为何p=ABCDELoadrunner!!!,而不是p=ABCDE?这是由于在LR或者C语言中,以字符串的形式打印出一个指针,到何时结束呢,是到遇到\0的时候,,这是C语言的语法。P的结果打印从A开始,而后到E后,继续打印Loadrunner!!!,在C语言中,字符串后边会有默认的\0,因此打印完字符串Loadrunner!!!就结束了。
例子2:
查看以上统计字符串长度的例子。针对字符串“Loadrunner!!!”,为何sizeof拿到的长度是14,strlen拿到的是13?由于sizeof统计了默认的\0,而strlen没有。
例子3:
这里的输出结果为何是abcdea,而不是abcde呢?由于数组定义的长度是5,而字符串abcde后边有默认的\0的,加上这个就是长度为6了,超长了因此\0被丢弃,打印完abcde后就继续打印了a。
例子4:
若是把数组长度改为了6,那么输出结果就是abcde了
须要注意的:
1)注意中文的分号;
2)变量使用前尽可能初始化;
3)字符数组尽可能少用;
4)在使用数组的时候,必定要保证数组足够长