51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 37163|回复: 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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2004-7-23 14:34:36 | 只看该作者
对于dp你没有定义,
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2004-7-23 14:50:52 | 只看该作者

数据池如何定义的

你的jsq如何定义的,
定义了几列,为什么对sum也定义一列
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2004-7-28 15:27:16 | 只看该作者

num1,num2在datapool中该取何种类型?String吗?

num1,num2在datapool中该取何种类型?String吗?
为什么取出来都是一样的随机数据
sum能自动计算出来吗?

[ Last edited by ivy5156 on 2004-7-28 at 15:28 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2004-8-8 21:45:04 | 只看该作者
我得也不能正常进行
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2004-8-9 09:32:23 | 只看该作者
取整型,设定不同的Seed就可以了。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2004-8-10 16:49:10 | 只看该作者
如果都是自动生成的,当然也可以自己改动,如果我要随即100条数据,难道所有的 seed都要我自己写嘛
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2004-8-12 11:52:05 | 只看该作者
我的可以自动进行运算器的计算和测试,测试结果也是正确的的,但就是运行的很慢,是超慢,是为什么呢,希望大家多多指点啊
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2004-8-18 12:28:38 | 只看该作者
时间慢,你把robot的回放参数时间间隔修改一下!减少时间间隔,试验一下!
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2004-10-9 16:35:09 | 只看该作者

对“Robot功能测试示例”文章不明白的地方。请版主回答,谢谢!

1、dp要怎么定义?
2、数据池jsq该怎么定义才行?
3、  Call SQADatapoolValue(dp,1,num1)
      Call SQADatapoolValue(dp,2,num2)
      Call SQADatapoolValue(dp,3,sum)
   这几个SQA语句中的1、2、3表示什么
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2004-10-9 16:47:52 | 只看该作者
1、dp要怎么定义?
dim dp as long
2、数据池jsq该怎么定义才行?
在testmanager中定义。
3、  Call SQADatapoolValue(dp,1,num1)
      Call SQADatapoolValue(dp,2,num2)
      Call SQADatapoolValue(dp,3,sum)
   这几个SQA语句中的1、2、3表示什么
从datapool中取第几个字段的值。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2004-10-27 15:22:55 | 只看该作者
为什么提示 "varibale SQADatapoolOpen undefined',我已建立了JSQ数据池了,是不是数据池文件要放在哪个目录下才行
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2004-10-27 17:10:03 | 只看该作者

能帮解答:为什么把 dp设为 long类型

能帮解答:为什么把 dp设为 long类型
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2004-11-4 13:29:45 | 只看该作者
请教大侠:为什么我录制的脚步是这样的?
Sub Main
    Dim Result As Integer

    'Initially Recorded: 2004-11-4  13:21:58
    'Script Name: 计算器
    StartApplication "C:\WINNT\system32\calc.exe"
   
    Window SetContext, "Caption=计算器", ""
    InputKeys "1{+}1{ENTER}"
   
    Window SetContext, "Class=Shell_TrayWnd", ""
    TabControl Click, "ObjectIndex=1;\;ItemIndex=3", ""

End Sub
点停止按钮后提示:there is  no text in field or field cannot be read.
这是那里没有配置好呀?
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2004-11-5 16:55:09 | 只看该作者
请海龙版主或各位大侠帮忙指点以下!
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2004-11-9 10:01:47 | 只看该作者
Result = LabelVP (CompareNumeric, "Text="& sum &".", "VP=Alphanumeric;Value="& sum &".")
如果text和value的值都从datapool中取的话,那比较的结果也没有什么意义啊?
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2004-11-12 12:03:57 | 只看该作者
还是不行~~~
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2004-12-20 15:32:17 | 只看该作者
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\ ...

我也是这个问题,该怎么解决呢?脚本里根本没有检测点啊
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2004-12-21 09:17:22 | 只看该作者
原来是检测点没选对象引起的,现在好了
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2005-1-25 09:51:27 | 只看该作者

请问海龙?

我用rational2002录制的脚本和你的一样,只有一处
你的:Result = LabelVP (CompareNumeric, "Text=2.", "VP=Alphanumeric;Value=200000")
我的:Result = LabelVP (CompareNumeric, "ObjectIndex=1","VP=Alphanumeric;Value=200000")
第一次按我的回放,“pass”。可建了datapool后,这里我就不知道怎么改了。

同时我按你那个例子,在datapool见建了3列,num1、num2、sum,分别添了数据。可回放出错。下面是我的脚本,麻烦看看。

'$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: 2005-1-25  9:06:14
    'Script Name: data1
    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, "ObjectIndex=1", "VP=Alphanumeric;Value="& sum &".")
   
    next
   
    Call SQADatapoolClose(dp)

   
    Window CloseWin, "", ""

End Sub
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-8 21:00 , Processed in 0.095963 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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