请教高手!调用函数时,怎么返回多个值?
public function fun1(x,y){
static x;
static y;
static jia;
static jian;
static cheng;
static chu;
jia= x + y;
jian =x-y;
cheng = x *y;
chu = x/y;
}
脚本2;
call " ..\\xxxx\\xxxx"();
function fun1(10,2);
call_close" ..\\xxxx\\xxxx"();
请教各位,我怎么在 脚本2中一次得到jia; jian; cheng; chu;四个值!谢谢
[ 本帖最后由 wonew1228 于 2006-12-28 15:30 编辑 ] 怎么没人说话,高手帮帮忙!小子在此谢谢各位了! 解决方法一:脚本传参
在函数脚本中,如果是7.0,在WR中的file-->test properties中的parameters页签下add加入x,y;然后再把脚本中的定义的变量注释掉,不需要再声明。这样就可以了。
同时说明一下,在主脚本中调用函数脚本时,可以直接给脚本传参,如call " ..\\xxxx\\xxxx"(10,2);
#public function fun1(x,y)写错了需要更正
public function fun1(in x, in y ,out jia, out jian, out cheng, out chu)
{
#static x;
#static y;
#static jia;
#static jian;
# static cheng;
# static chu;
jia= x + y;
jian =x-y;
cheng = x *y;
chu = x/y;
}
脚本2;
call " ..\\xxxx\\xxxx"();
function fun1(10,2);
report_msg(jia);
report_msg(jian);
report_msg(cheng);
report_msg(chu);
call_close" ..\\xxxx\\xxxx"();
解决方法二:使用编译模块
把函数脚本定义成编译模块complied module,然后在主脚本中加载编译模块load("脚本1");然后就可以直接调用函数fun1(10,2,jia,jian,cheng,chu)(传出参数可以不写);函数调用完后,unload("脚本1")一下。
[ 本帖最后由 shiwomyw 于 2006-12-28 19:10 编辑 ] public function fun1(x,y,a)
{
static jia;
static jian;
static cheng;
static chu;
jia= x + y;
jian =x-y;
cheng = x *y;
chu = x/y;
a=jia;
#a=jia&"#"&jian &"#"&cheng&"#"&chu;
return a;
}
脚本1:
public shuzu[]={" "," "," "," "};
call "D:\\xyb\\winrunner\\sedscs\\hanshufanhuiduozhi"();
aa=fun1(10,2,shuzu);
report_msg(aa);
call_close "D:\\xyb\\winrunner\\sedscs\\hanshufanhuiduozhi"();
我想用参数传值,不知道这样 行不?应该怎样修改谢谢
[ 本帖最后由 wonew1228 于 2006-12-28 17:59 编辑 ] 我用了你的第一中方法后还是不行!提示函数中的 jia等,没有声明,你给看看!
同时也给看看#4,错在 那里?
[ 本帖最后由 wonew1228 于 2006-12-28 18:08 编辑 ] 不好意思,上一贴写错了。public function FUN1(x,y)这样定义是不正确的,要把参数写全,应该为public function fun1(in x, in y , out jia, out jian, out cheng, out chu).我用的是WR7.0,在test peroperties中设置参数时只能设传入参数,不能设传出参数。8.2的可以设置传入与传出,像你上图所写也可以。
[ 本帖最后由 shiwomyw 于 2006-12-28 19:02 编辑 ] shiwomyw :
你好!用了你的方法一:的到的结果是空!
public function fun1(in x, in y ,out jia, out jian, out cheng, out chu)
{
#static x;
#static y;
#static jia;
#static jian;
# static cheng;
# static chu;
jia= x + y;
jian =x-y;
cheng = x *y;
chu = x/y;
}
脚本2;
call " ..\\xxxx\\xxxx"();
fun1(10,2);
report_msg(jia);
report_msg(jian);
report_msg(cheng);
report_msg(chu);
call_close" ..\\xxxx\\xxxx"();
还有一个,能不能把方法二,写一个例子看一下,谢谢! shiwomyw :
你好!用了你的方法一:的到的结果是空!
public function fun1(in x, in y ,out jia, out jian, out cheng, out chu)
{
#static x;
#static y;
#static jia;
#static jian;
# static cheng;
# static chu;
jia= x + y;
jian =x-y;
cheng = x *y;
chu = x/y;
}
脚本2;
call " ..\\xxxx\\xxxx"();
fun1(10,2);
report_msg(jia);
report_msg(jian);
report_msg(cheng);
report_msg(chu);
call_close" ..\\xxxx\\xxxx"();
还有一个,能不能把方法二,写一个例子看一下,谢谢! 方法一:在调用函数脚本时,要把参数写完整。在主脚本中这样写
call"\\xxxx\\xxxx"();
fun1(10,2,jia,jian,cheng,chu);
report_msg(jia);
report_msg(jian);
report_msg(cheng);
report_msg(chu);
方法二:调用编译模块
函数脚本存放在e:\\自动化测试\\练习\\lib”.脚本内容如下
public function fun1(in x,in y,out jia,out jian, out cheng,out chu)
{
jia= x + y;
jian =x-y;
cheng = x *y;
chu = x/y;
}
在test properties中设置如图,test type: complied moudle。
主脚本内容如下:
load("E:\\\\自动化测试\\\\练习\\\\lib");
# call "E:\\\\自动化测试\\\\练习\\\\122801 "();
fun1(10,2,jia,jian,cheng,chu);
report_msg(jia);
report_msg(jian);
report_msg(cheng);
report_msg(chu);
[ 本帖最后由 shiwomyw 于 2006-12-29 14:20 编辑 ] shiwomyw :虽然对说了无数次的谢谢!但此时此刻我对你想说还是一句:谢谢!
祝大家元旦快乐!
页:
[1]