51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 36994|回复: 46
打印 上一主题 下一主题

[Robot] Robot功能测试示例

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-5-6 21:42:41 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
在成功安装和建立测试项目以后,就可以利用testmanager和robot进行软件测试了。下面以一个windows自带的计算器测试例子,展示rational的功能。

1. 启动robot,登录窗口默认用户名是admin,输入在建立测试项目时指定的密码(默认为空),即可进入robot主界面;
2. 点击工具栏上的GUI按钮,录制GUI脚本,在窗口中输入脚本名称;
3. 在GUI Record工具栏上点击第四个按钮,在GUI Inset工具栏点击Start Application按钮,点击browse…按钮,选择计算器程序;
4. 从键盘输入1+1=,然后在GUI Record工具栏上点击第四个按钮,在GUI Inset工具栏点击Alphanumeric校验点,选择第三项Numeric Equivalence;
5. 关闭计算器,点击GUI Record工具栏上的STOP按钮,完成脚本的录制;

录制完的脚本:
Sub Main
    Dim Result As Integer

    'Initially Recorded: 2003-7-18  9:30:45
    'Script Name: 计算器
    StartApplication "C:\WINNT\system32\calc.exe"
   
    Window SetContext, "Caption=计算器", ""
    InputKeys "1{+}1{ENTER}"
   
    Result = LabelVP (CompareNumeric, "Text=2.", "VP=Alphanumeric;Value=200000")
   
    Window CloseWin, "", ""

End Sub

这个脚本并不能正确回放,需要将
Result = LabelVP (CompareNumeric, "Text=2.", "VP=Alphanumeric;Value=200000")
改为:
Result = LabelVP (CompareNumeric, "Text=2.", "VP=Alphanumeric;Value=2.")
这样就可以点击工具栏上的回放按钮进行回放。


     这个脚本只能验证一组数据,并不能体现出自动化测试带来的便利。需要对脚本进行手工修改,在脚本加入循环结构和数据池(DATAPOOL),这样就可以实现一个脚本测试大量的数据,脚本易于维护而且功能强大。

修改后的脚本如下:
'$Include "sqautil.sbh"

Sub Main
    Dim Result As Integer
    dim dp as long
    dim x as integer
    dim num1 as string
    dim num2 as string
    dim sum as string

   
    'Initially Recorded: 2003-7-18  8:51:18
    'Script Name: 计算器-2

    StartApplication "C:\WINNT\system32\calc.exe"
   
    dp=SQADatapoolOpen("jsq")

    for x=1 to 5
    Call SQADatapoolFetch(dp)
    Call SQADatapoolValue(dp,1,num1)
    Call SQADatapoolValue(dp,2,num2)
    Call SQADatapoolValue(dp,3,sum)
    Window SetContext, "Caption=计算器", ""
    InputKeys num1 &"{+}"& num2 &"{ENTER}"
   
    Result = LabelVP (CompareNumeric, "Text="& sum &".", "VP=Alphanumeric;Value="& sum &".")
   
    next
   
    Call SQADatapoolClose(dp)

    Window CloseWin, "", ""

End Sub


注:SQADatapoolOpen("jsq"),jsq为数据池(DATAPOOL)名称,需要在testmanager中手工创建。

**经过简单的编辑后,测试时只需要将测试数据导入数据池(DATAPOOL)回放脚本即可,通过查看测试log检查哪些错误,在开始测试时就可以使用,而不是等到回归,也不是手工过程的简单重复。在测试之前,可以先准备好测试数据备用。

我在实际的测试工作中,功能测试的脚本大部分是基于此模式的,使用效果也很理想。

这个帖子我在测试管理中心也发过,有些网友反映不能正确回放。以上是我在windows2000专业版、rational2003上重新录制并正确回放的的。

欢迎大家交流。

[ Last edited by 海龙 on 2004-7-30 at 22:33 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

47#
发表于 2008-6-28 09:57:41 | 只看该作者
谢谢,看看,试一下。
回复 支持 反对

使用道具 举报

该用户从未签到

46#
发表于 2008-6-27 11:05:17 | 只看该作者

请教各位高手

两台机器(比如A,B)同时访问服务器上的一个Excel文件,如果A先打开,则B以只读的方式打开,A关闭了,则B上会出现一只读/编辑对话框,我不想显示该对话框,怎么办?
如何用robot写脚本,屏蔽该对话框?
先谢谢了~~~

[ 本帖最后由 yuxueqin 于 2008-6-27 11:15 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

45#
发表于 2008-1-18 10:48:50 | 只看该作者
刚开始接触这款测试软件  向 LZ 学习。。。。
回复 支持 反对

使用道具 举报

该用户从未签到

44#
发表于 2008-1-17 16:10:07 | 只看该作者
先保存 一会试试看
回复 支持 反对

使用道具 举报

该用户从未签到

43#
发表于 2007-8-22 16:36:09 | 只看该作者
Result = LabelVP (CompareNumeric, "Type=Text; ObjectIndex=1", "VP=Alphanumeric; Value="& sum &".")
这样就ok了
回复 支持 反对

使用道具 举报

该用户从未签到

42#
发表于 2007-6-26 18:17:56 | 只看该作者

我是个新手,啥也不会,正在用robot呢,就是录的脚本回放不了

sdlkfj2 谁有robot界面学习实例能给我一份吗?万分感激~snow1239690@sohu.com
回复 支持 反对

使用道具 举报

该用户从未签到

41#
发表于 2006-10-15 22:57:41 | 只看该作者
类似30楼和40楼的情况:

我的机子是XP的系统,我回放的时候计算器上会轮流显示五组数据,每组分别是datapool定义的num1,num2,sum,但是为什么test log里却不是pass呢?

这个问题不知道heather 和 jinyuhifont 解决的怎么样了?
谁知道这是为什么吗?谢谢!!!!
回复 支持 反对

使用道具 举报

该用户从未签到

40#
发表于 2006-7-14 11:43:20 | 只看该作者
怎么没人回答呢!!!!!!!
回复 支持 反对

使用道具 举报

该用户从未签到

39#
发表于 2006-7-13 17:50:10 | 只看该作者
论坛上计算器例子的结果是Result = LabelVP (CompareNumeric, "Text=2.", "VP=Alphanumeric;Value=200000")
而我自己录制的是Result = LabelVP (CompareNumeric, "ObjectIndex=1","VP=Alphanumeric;Value=200000")


请高手告诉我,Text=2.和ObjectIndex=1在此处是表示的什么意思,还有二者有什么关系和区别,我的是ObjectIndex=1,要是我把它改成Text=2.回放也能成功。可是我不明白二者表示的具体意思。

[ 本帖最后由 zhanghaiying911 于 2006-7-13 17:52 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

38#
发表于 2006-2-13 09:43:55 | 只看该作者

Why chose Datapool?

记得手册中有句话“如果你的脚本只运行一次,就可以不用Dataool”。是啊,根据楼主的例子,我完全可以用数组来实现加数据的功能啊。
请问:这种理解对吗?
回复 支持 反对

使用道具 举报

该用户从未签到

37#
发表于 2006-1-10 10:45:16 | 只看该作者
datapool的取值没有问题,但是请问如何从文件或是xls文件中取值
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2015-1-15 13:24
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    36#
    发表于 2005-12-27 10:43:32 | 只看该作者

    关于datapool 论坛里有斑竹 海龙 的文章

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-1-15 13:24
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    35#
    发表于 2005-12-27 10:38:28 | 只看该作者

    终于成了

    就是情况和30楼heather的情况一样,还要继续研究啊,呵呵 这是我学robot 的开胃菜,还好有点鼓励啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-1-15 13:24
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    34#
    发表于 2005-12-26 17:42:19 | 只看该作者

    是不是因为我的是winxp啊

    我的result 不是labelVP  而是viewboxVP。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    33#
    发表于 2005-8-4 16:41:56 | 只看该作者

    ??

    是把正确结果和sum字段的值比较吗?我在sum里输的值不等于num1+num2,为什么结果都是pass呢

    [ Last edited by fishbasking on 2005-8-8 at 09:44 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32#
    发表于 2005-7-29 15:27:36 | 只看该作者
    Originally posted by 小颖_hlj at 2004-7-23 02:50 PM:
    你的jsq如何定义的,
    定义了几列,为什么对sum也定义一列


    定义sum我倒是能理解
    可是为什么要从datapool调sum的值呢?
    Call SQADatapoolValue(dp,3,sum) ???
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    31#
    发表于 2005-7-29 15:07:40 | 只看该作者
    Originally posted by ghost at 2004-8-9 09:32 AM:
    取整型,设定不同的Seed就可以了。



    必须设置sequence为Random,再将Seed设置成不同的值,就可以生成不同的随机数


    我的问题:
    1、设置为整型,第1次设置长度为 默认15,后觉得数字太大,将长度设置为2。此时如果不设置最大或最小值,为什么生成的数据都大于2位的?难道最大最小值Robot不会通过设置的字段长度自己控制?

    2、如果是数字字母类型的,怎样设置,使得生成的数据长度小于等于length的值,我的与length值等值?
    谢谢!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    30#
    发表于 2005-7-15 14:26:20 | 只看该作者
    我把 SCRIPT改了一下,在DATAPOOL中只输入num1 和 num2 的值,然后在script 中算出sum的值,再做比较。如何在Datapool 中赋值,我是用下面几步来实现的:(不好意思我用英文,因为我的是英文版)。

    1. Open Rational Task Manager.
    2. Select Tools-> Manage-> DataPools.
    3. Click on New and enter "jsq" as name. Click OK.
    4. You will get a message "An Empty datapool called jsq has been registered..." Select Yes
    5. Select Insert Before. In the "Data Type Specification jsq" dialogue, enter "B" in the "Name". Select Insert Before again. Enter "A" in the "Name".
    6. Click Save.
    7. Click Close.
    8. Select OK on the message beginning "If you leave the Datapool editor..."
    9. In the "Manage Datapools" dialogue, select jsq and press Edit
    10. Click on on Edit Datapool Data in the "Datapool Properties" dialogue.
    11. Enter three pairs of numbers. There will be one number in each pair for for A and one for B. and click on Save and Close. For example:
    A           B
    1           0
    -1          1
    15         16

    12. Click on OK in the "Datapool Properties" dialogues.
    13. Click on Close in "Manage Datapools."

    14. Return to the "Rational Robot" and select File and Playback in the Test "CaclTest-2" Script.
    15. Click on OK and if it asks you about overwriting a log, click Yes
    16. The system will bring up the Test log. Expand "Script Start" You should observe one "Application Start" and three "Verification Point."
    17. If you want to see the numbers each time, go to the Test Add script. Just before "Result - EditBoxVP..." enter the line Print "sum is" & sum
    18. Then select File and Playback. (Click after viewing each message.)


    下面是我的script.
    注意我是在WINDOW XP 下测的,所以StartAppUnderNone "C:\WINDOWS\system32\calc.exe"



    '$Include "sqautil.sbh"

    Sub Main
        Dim Result As Integer
        dim dp as long
        dim x as integer
        dim num1 as string
        dim num2 as string
        dim sum as string

        'Initially Recorded: 7/13/2005  3:00:36 PM
        'Script Name: CaclTest-2
        StartAppUnderNone "C:\WINDOWS\system32\calc.exe"
      
      dp=SQADatapoolOpen("jsq")
        for x=1 to 3
        Call SQADatapoolFetch(dp)
        Call SQADatapoolValue(dp,1,num1)
        Call SQADatapoolValue(dp,2,num2)
        'Call SQADatapoolValue(dp,3,sum)

       
        Window SetContext, "Caption=Calculator", ""
        EditBox Click, "ObjectIndex=1", "Coords=301,9"
        'InputKeys num1&"{+}"& num2 & "{ENTER}" has mistake?
        InputKeys num1 &"{+}"& num2 &"{ENTER}"

        sum = str(val(num1) + val(num2))
        Print "num1 is" & num1
        Print "num2 is" & num2
        Print "sum is" & sum
       
        Result = EditBoxVP (CompareNumeric, "ObjectIndex=1", "VP=Alphanumeric;Value="& sum &",")
       
        next
        Call SQADatapoolClose(dp)
       
        Window CloseWin, "", ""

    End Sub
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    29#
    发表于 2005-6-14 16:55:23 | 只看该作者
    上面那个发错了应该是针对这个发表的
    Originally posted by gezi68705 at 2004-11-4 01:29 PM:
    请教大侠:为什么我录制的脚步是这样的?
    Sub Main
        Dim Result As Integer

        'Initially Recorded: 2004-11-4  13:21:58
        'Script Name: 计算器
        StartApplication "C:\WINNT\system32\ ...

    你改为这个试试


    Window SetContext, "Caption=计算器", ""
        InputKeys "1{+}1{ENTER}"
       
       
        Result = WindowVP (CompareNumeric, "Caption=计算器", "VP=Alphanumeric;Value=0")
       
        Window SetContext, "Caption=计算器", ""
        Window CloseWin, "", ""
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-21 10:55 , Processed in 0.086778 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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