海龙 发表于 2004-5-6 21:42:41

Robot功能测试示例

在成功安装和建立测试项目以后,就可以利用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-189: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-188: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 ]

小颖_hlj 发表于 2004-7-23 14:34:36

对于dp你没有定义,

小颖_hlj 发表于 2004-7-23 14:50:52

数据池如何定义的

你的jsq如何定义的,
定义了几列,为什么对sum也定义一列

ivy5156 发表于 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 ]

houna305 发表于 2004-8-8 21:45:04

我得也不能正常进行

ghost 发表于 2004-8-9 09:32:23

取整型,设定不同的Seed就可以了。

ivy5156 发表于 2004-8-10 16:49:10

如果都是自动生成的,当然也可以自己改动,如果我要随即100条数据,难道所有的 seed都要我自己写嘛

houna305 发表于 2004-8-12 11:52:05

我的可以自动进行运算器的计算和测试,测试结果也是正确的的,但就是运行的很慢,是超慢,是为什么呢,希望大家多多指点啊

pcl2004_27 发表于 2004-8-18 12:28:38

时间慢,你把robot的回放参数时间间隔修改一下!减少时间间隔,试验一下!

llmmgl 发表于 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表示什么

hxf 发表于 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中取第几个字段的值。

fjzpdjn 发表于 2004-10-27 15:22:55

为什么提示 "varibale SQADatapoolOpen undefined',我已建立了JSQ数据池了,是不是数据池文件要放在哪个目录下才行

fjzpdjn 发表于 2004-10-27 17:10:03

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

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

gezi68705 发表于 2004-11-4 13:29:45

请教大侠:为什么我录制的脚步是这样的?
Sub Main
    Dim Result As Integer

    'Initially Recorded: 2004-11-413: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 isno text in field or field cannot be read.
这是那里没有配置好呀?

gezi68705 发表于 2004-11-5 16:55:09

请海龙版主或各位大侠帮忙指点以下!

暗夜之吻 发表于 2004-11-9 10:01:47

Result = LabelVP (CompareNumeric, "Text="& sum &".", "VP=Alphanumeric;Value="& sum &".")
如果text和value的值都从datapool中取的话,那比较的结果也没有什么意义啊?

Daven520 发表于 2004-11-12 12:03:57

还是不行~~~

jakedd 发表于 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-413:21:58
    'Script Name: 计算器
    StartApplication "C:\WINNT\system32\ ...
我也是这个问题,该怎么解决呢?脚本里根本没有检测点啊

jakedd 发表于 2004-12-21 09:17:22

原来是检测点没选对象引起的,现在好了

hailong1977 发表于 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-259: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] 2 3
查看完整版本: Robot功能测试示例