51Testing软件测试论坛

标题: 如何理解Return的返回值? [打印本页]

作者: fish_yy    时间: 2007-11-1 22:48
标题: 如何理解Return的返回值?
如何理解Return的返回值?

选自个人作品《软件性能测试与Loadrunner实战》


问题:
  在创建和录制脚本的时候,发现在脚本vuser_init、Action、vuser_end三部分,都会有一条“return 0;”语句,那么我们平时在编写脚本时如何应用return语句,return不同的返回值又有什么含义呢?
问题解答:
Return标识一个过程的结束,在LoadRunner 中用return 不同的返回值根据脚本不同的返回值,表示脚本的成功或者失败。“return + 大于等于零的数字 ;”表示成功,反之,则表示失败。
下面通过一个实例脚本来深入理解一下return语句。
相应脚本代码:
#include "web_api.h"

Action()
{
    LPCSTR user1="悟空";
        LPCSTR user2="八戒";

    if ((user1=="悟空") || (user1=="猴哥"))
      {
                   lr_output_message("悟空和猴哥是同一个人!");
                   return 0;
       }
   else
       {   
             lr_output_message("我是八戒不是悟空!");
         return -1;
        }
     lr_output_message("这句话永远不会被执行!");
}
【脚本分析】
该段脚本事先声明了两个字符串变量user1和user2,而后判断user1变量是否为“悟空”或者“猴哥”,如果是则输出“悟空和猴哥是同一个人!”,否则输出“我是八戒不是悟空!”。因为return 语句执行完成以后,后面的语句将不会被执行,所以最后一句话将永远不会被执行,即:“这句话永远不会被执行!”不会被输出。下面我们看一下上面脚本的执行日志结果为
Running Vuser...
Starting iteration 1.
Starting action Action.
Action.c(10): 悟空和猴哥是同一个人!
Ending action Action.
Ending iteration 1.
Ending Vuser...
如果将上面的脚本“if ((user1=="悟空") || (user1=="猴哥"))”变更为“if ((user2=="悟空") || (user2=="猴哥"))”,则脚本的执行日志结果为,通过【View】>【Test Results...】查看结果,因为返回值为-1.

[ 本帖最后由 fish_yy 于 2009-7-22 09:29 编辑 ]
作者: fish_yy    时间: 2007-11-2 12:04

作者: rickyzhu    时间: 2007-11-2 17:42
楼主一会哭一会笑,哈哈,有意思,

好帖,顶
作者: 大漠飞鹰    时间: 2007-11-3 07:17
帮你顶。
作者: fish_yy    时间: 2007-11-3 09:15

作者: fish_yy    时间: 2007-11-3 09:15
3Q两位!
作者: TransferForTest    时间: 2007-11-3 10:40
考下来运行一下试试, 好好学习一下. 顶死你.
作者: TransferForTest    时间: 2007-11-3 10:44
标题: 求助: 我运行了上面的脚本却有下面的错误提示, 请楼主帮助解释一下.
Action.c (14): illegal character `\0241'
Action.c (14): illegal character `\0241'
Action.c (14): illegal character `\0241'
Action.c (14): illegal character `\0241'
Action.c (20): warning: unreachable code
c:\\documents and settings\\\315\365\325\274\264\250\\local settings\\temp\\noname4\\\\combined_noname4.c (4): 4 errors, not writing pre_cci.ci
作者: anTidd    时间: 2007-11-3 11:12
0是退出这个ACTION进入下一个ACTION,-1就停止运行脚本了
作者: Zee    时间: 2007-11-4 11:59
顶一把。
作者: kofee    时间: 2007-11-12 19:16
呵呵
作者: qinxiaocang1202    时间: 2008-12-16 10:01
标题: 回复 8# 的帖子
你的这个问题解决没啊,我的也遇到了,是怎么回事呢?
作者: cjg007    时间: 2008-12-16 15:55

作者: durbey_712    时间: 2008-12-17 17:59
应该是字符集,建议不要拷贝,或者拷贝后将一些字符,如“重新写,再编译
作者: fish_yy    时间: 2009-4-15 09:52
原帖由 TransferForTest 于 2007-11-3 10:44 发表
Action.c (14): illegal character `\0241'
Action.c (14): illegal character `\0241'
Action.c (14): illegal character `\0241'
Action.c (14): illegal character `\0241'
Action.c (20): warning: unreacha ...


字符集问题!
作者: kkwwpp    时间: 2009-4-15 10:48
在test  result 里面哪里可以看到返回值啊?
作者: kkwwpp    时间: 2009-4-15 10:49
标题: 回复 9# 的帖子
如果返回1呢?是什么意思?
作者: fish_yy    时间: 2009-4-15 11:57
原帖由 kkwwpp 于 2009-4-15 10:49 发表
如果返回1呢?是什么意思?


成功,帖中有说啊!
作者: lambkin    时间: 2009-5-27 16:45
怎么我无论怎么修改条件,结果都是前面那后,else后面怎么无法输出?怎么回事
作者: yzylion    时间: 2009-5-27 18:03
楼上自己分析下逻辑,我自己写的,运行之后成功了,
希望多一些这样的实例来学习脚步的编写
谢谢
作者: whistler.j    时间: 2009-5-27 18:28
研究一下。
作者: 云层    时间: 2009-5-27 19:47
很有趣的研究
作者: fish_yy    时间: 2009-6-9 23:09
原帖由 yzylion 于 2009-5-27 18:03 发表
楼上自己分析下逻辑,我自己写的,运行之后成功了,
希望多一些这样的实例来学习脚步的编写
谢谢


嗯哪,多交流!
作者: fish_yy    时间: 2009-6-9 23:10
原帖由 云层 于 2009-5-27 19:47 发表
很有趣的研究


呵呵,多交流!
作者: kuangquanshui    时间: 2009-6-10 09:50
学习了  有知道个知识点 楼主 顶你
作者: 云层    时间: 2009-6-10 13:08
这个应该和C语言的规则类似吧
return 0;
是指函数正常结束而
Return -1;是指错误返回
作者: witcher2002    时间: 2009-6-10 15:54
return + 大于等于零的数字,表示成功
那我们可以修改0为大于0的数字吗?如果这样修改有意义吗?
作者: zhmeup    时间: 2009-7-21 16:14
有些东西怎么看不了 是删除了么
作者: boymarco    时间: 2009-7-22 09:15
好早的帖子被翻出来,不过这样的实例确实很好!
作者: liujinkui    时间: 2009-7-22 09:30
学习
作者: fish_yy    时间: 2009-7-22 20:42

作者: sunjie8    时间: 2009-7-23 00:26
学习了!
作者: Empemp    时间: 2009-7-23 11:55
Very good, thank you all!
作者: fish_yy    时间: 2009-8-13 05:33

作者: hugh007    时间: 2009-8-13 10:22
简洁明了 不错
作者: chengcheng620    时间: 2009-8-13 17:02
同意9楼的说法!
作者: alexanty    时间: 2009-9-4 00:00
顶楼主
作者: kuangquanshui    时间: 2009-9-4 09:42
学习了




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2