51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3482|回复: 9
打印 上一主题 下一主题

请教高手!调用函数时,怎么返回多个值?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-12-28 10:33:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2006-12-28 14:55:33 | 只看该作者
怎么没人说话,高手帮帮忙!小子在此谢谢各位了!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-12-28 17:19:46 | 只看该作者
解决方法一:脚本传参
在函数脚本中,如果是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 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2006-12-28 17:53:28 | 只看该作者
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[0]=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 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2006-12-28 18:06:29 | 只看该作者
我用了你的第一中方法后还是不行!提示函数中的 jia等,没有声明,你给看看!

同时也给看看#4,错在 那里?

[ 本帖最后由 wonew1228 于 2006-12-28 18:08 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-12-28 19:01:22 | 只看该作者
不好意思,上一贴写错了。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 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2006-12-29 09:39:08 | 只看该作者
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  "();

还有一个,能不能把方法二,写一个例子看一下,谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2006-12-29 09:39:15 | 只看该作者
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  "();

还有一个,能不能把方法二,写一个例子看一下,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2006-12-29 14:15:28 | 只看该作者
方法一:在调用函数脚本时,要把参数写完整。在主脚本中这样写
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 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2006-12-29 18:24:45 | 只看该作者
shiwomyw :虽然对说了无数次的谢谢!但此时此刻我对你想说还是一句:谢谢!
祝大家元旦快乐!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-8 11:37 , Processed in 0.074889 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表