dxf_michael 发表于 2009-1-7 12:34:53

Loadrunner脚本内部定义变量问题,请帮助解答!

在action中定义变量,就运行不了,在Action外面定义,就可以运行,请高手解答,为什么呢?

在Action内部定义变量:
Action()
{
    lr_load_dll("LR_USER_DLL.dll");
int a=5;
int b=6;
int sum=0;
sum=add(a,b);
lr_message("和为%d",sum);
return 0;
}
运行输出:
Action.c (6): illegal statement termination
Action.c (6): skipping `int'
Action.c (6): undeclared identifier `a'
Action.c (7): illegal statement termination
Action.c (7): skipping `int'
Action.c (7): undeclared identifier `b'
Action.c (8): illegal statement termination
Action.c (8): skipping `int'
Action.c (8): undeclared identifier `sum'
d:\\program files\\mercury\\loadrunner\\scripts\\http\\\\combined_http.c (5): 9 errors, not writing pre_cci.ci

将变量定义移动到action外面,就可以运行,得到正确结果。
int a=5;
int b=6;
int sum=0;
Action()
{
    lr_load_dll("LR_USER_DLL.dll");

sum=add(a,b);
lr_message("和为%d",sum);
return 0;
}
运行输出:
Virtual User Script started
Starting action vuser_init.
Web Turbo Replay of LoadRunner 8.1.0 for WINXP; Web build 4788   
Run-Time Settings file: "D:\Program Files\Mercury\LoadRunner\scripts\http\\default.cfg"   
Ending action vuser_init.
Running Vuser...
Starting iteration 1.
Starting action Action.
和为11
Ending action Action.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
Ending action vuser_end.
Vuser Terminated.

dxf_michael 发表于 2009-1-7 12:50:44

咋没人回复呢,呵呵!:)

woxueceshi 发表于 2009-1-7 13:42:35

请问下上面的脚本是怎么来的呢,好象LR是用来录制脚本的,但是感觉你上面的象是自己写进去的.如果自己写的,应该怎么做呢,我也想验证下你说的那个问题,但是不知道是怎么实现的

stevenremember 发表于 2009-1-7 15:29:58

变量的声明一定要放在脚本的最前面
声明的语句中不要有其他的脚本代码(在lr必须这样写)

正确的例子::
Action()
{
/*变量声明*/
int a=5;
int b=6;
int sum=0;
/*变量声明*/

lr_load_dll("LR_USER_DLL.dll");
sum=add(a,b);
lr_message("和为%d",sum);
return 0;
}

qunce.liu 发表于 2009-1-7 16:08:50

4楼说的对。
你在Action中定义的是局部变量,只能在Action中使用,
而在Action外面定义的是全局变量,都可以使用。
不是因为LR,因为传统的C就是这样,只有后来一些其它的语言才允许在方法的任何地方定义变量。

星驰 发表于 2009-1-7 16:35:10

学习了!

stevenremember 发表于 2009-1-7 18:05:07

原来这样啊,c语言忘光了.
嗯,刚查了资料:
是C89的标准不允许在随便位置声明变量,只允许在块的开始处
C99和C++放松了限制,允许在随便位置声明变量,这个规定更合理

谢谢5楼的同学

刘顺 发表于 2009-11-3 17:57:38

正好需要这方面的
页: [1]
查看完整版本: Loadrunner脚本内部定义变量问题,请帮助解答!