未来已来

Rational Robot 中DataPool 的介绍与实际应用

上一篇 / 下一篇  2008-07-05 12:51:41 / 个人分类:自动化测试

RationalDataPool的介绍与实际应用

 

本文对datapool进行简单介绍的同时结合实际功能测试性能测试的来讲界使用datapool。希望对广大的软件测试人员有帮助。由于写作

 

DataPool是一种测试数据集,在测试脚本回放的时候提供给脚本的变量。datapool可以由rational产品robotTestManager创建,下边的表格列举出在robottestmanager中可以对datapool执行的操作:

 

操作

Robot

TestManager

在测试脚本中自动建立datapool

 

创建测试脚本并产生自动数据

修改vu脚本中的datapool设置

 

修改datapool字段定义并修改测试数据

创建并修改数据类型

 

管理datapool比如改名或者拷贝

 

倒入到出数据

 

倒入数据

 

备注:rationaldatapool有两种文件:txtcsv文件,创建datapool成功后会保存在

盘符:\工程文件目录\TestDatastore\DefaultTestscrīptDatastore\TMS_Datapools文件夹下

测试数据保存在有csv扩展名的文本文件中,所有字段信息保存在后缀名为spc的文件中,该文件由testmanager管理。

 

datapool有两种创建方法,一种是在testmanager中建立,一种robot录制vu脚本时自动建立同名datapool,只有在robottools->session record options,设置Generator页面generaluse datapool选项,才可以生效。下边分别介绍这两种创建和使用方法:

一.

建立datapool

 1.启动Rational TestManager

2Tools>Manage>Datapool,点击New…,输入数据池名称点“确定”;

3.在打开的Data Type Specification中添加字段定义;(字段定义说明见后)

4.生成数据Generate Data(产生大量数据,这里默认产生100个数据)

5.修改其中的数据Edit DataPool data

 

其中字段定义说明:

1) Name指的是数据池列标题名它与测试脚本中变量相一致。如果你改变了数据池列名,也必须保证测试脚本中的变量做相应的改变;如果你不是在Rational测试环境下建立的数据池然后导入它,TestManager自动给数据池列分配缺省的名称。也必须保证测试脚本中的变量与其相一致。你可以用imedatapool字段起多字节的名字

2) Type标准的或用户定义的数据类型都按名称向数据池列提供其值。犹如建立数据库,先建立字段名,后改动类型。

制定数据池列的数据类如下操作:

a、选择标准类型或已存在的用户定义数据类型,点击当前显示的数据类型名称,然后从列表中选择新的数据类型。

b、可以选择rational中的标准的数据类型。

c、如果想自定义一个类型名称而不是进行选择,在用户定义数据类型前输入星号,如:*MyData;

d、建立新的用户定义数据类型,输入数据类型名称(不要带*),然后点击Return。在你点击了Yes确定你想要建立用户定义的数据类型,

 例如:建立新的column,输入列名,输入DemoType(自定义类型),保存。这时会出现数据类型属性编辑对话框(我向Descrīption中输入描述信息,确定按钮不可用,可能是rationalbug,不知道告诉ratioanl有没有奖励),确定,出现另一个数据类型属性编辑界面,输入测试数据,退出。选中该行生成数据,testmanager会自动创建你输入的数据。

e、建立新的用户定义数据类型。

3) Sequence数据类型的值的顺序被写入数据池列中。只要从中进行选择即可:-Random-随机向数据池列中写入数字和字母的值。-Sequential-顺序写出,如0123... Sequential仅仅支持数字值(包括日期和时间)和生成的用户定义的日期类型。当你选择数字类型,必须确定其最大和最小的范围,间隔必须大于0;-Unique即其中的值是唯一的。也可定义最大最小值。

4) Repeat即出现在数据池列的时间,Repeat不能为0。要想设置有符号的整数和用户定义的数据类型的唯一性,设置Reapeat1。当定义唯一值时,确定生成的数在你定义的范围之内。

5) Length数据池列中存在的最大的数。这个长度包括小数点和负号。

6) Decimals定义最大的浮点数的小数位,最大的设置是6位。

7) Interval如果你在数据池列中设置了间隔,那么将按照你设置的顺序,而顺序变化。最小的间隔是1,最大的间隔是999999在数字数据类型下选择了Sequence,并定义了最大和最小范围,间隔必须大于0。这设置仅仅在数字设置时有效。

8) Minimum确定数字最小值这设置仅仅在数字设置时有效。

9) Maximum确定数字最大值这设置仅仅在数字设置时有效。

10) SeedRational Test为了计算随机值的数。相同的种子数产生相同的随机数,要改变随机顺序,改变种子数。

11) Data File用户定义的数据类型的路径,这个路径是自动付给你的,不能进行修改。数据类型文件存放在你的项目文件中的Data Type目录,不能进行直接修改。

4在设置好字段后,在No. of records to genarete:中输入要生成的记录数,然后点击Genarete Data即可生成数据,或者点击SAVE按钮,关闭当前窗口,然后点击manage datapools>edit>edit datapool data,直接手工输入数据;

5这样就完成了数据池的创建,还可以执行数据池的编辑、改名、删除、导入、导出等操作;

6数据池有数据生成能力,但是不具备数据的计算能力。这种情况下可以利用其他工具(如EXCEL)生成数据,并保存为csv(逗号分割文件)格式,然后在manage datapools中导入;

 

实际应用:

   开发部最近提出对现有软件系统的登陆功能进行测试。测试工程师设计测试用例,在实际工作中发现登陆系统版本基本稳定,而且功能孤立,界面在将来的版本中变化的可能性不大,所以决定测试自动化,减少人工重复劳动,提高测试效率。

测试工程师开始利用黑盒测试方法等价类法,因果分析法,边界值法等方法设计测试用例,开发功能测试脚本,用datapool(数据池中的数据是设计测试用例的时候用到的输入值)保存测试数据。登陆界面需要输入用户名,密码,在数据池中建立两个字段username,passwordDatapool中的数据和测试用例中输入数据相一致。

 

第一步:创建名字为dpdatapool,假如字段name,password并自动生成数据,然后把测试用例中各种数据输入dp

第二步:录制功能测试脚本,脚本如下:

 

SubMain

   Dim Result As Integer

 

   'Initially Recorded: 2004-4-24 10:59:24

   'scrīpt Name: Five

   StartApplication "xxx"

   

   Window SetContext, "Caption=登陆", ""

   InputKeys "sa"

   EditBox Click, "ObjectIndex=1", "Coords=34,9"

   InputKeys "sa"

   PushButton Click, "Text=登陆"

   

   Window SetContext, "Caption=登陆;Class=#32770", ""

   PushButton Click, "Text=确定"

   

End Sub

 

第三步:循环读出datapool数据,进行自动化测试,脚本如下

 '$Include "sqautil.sbh"

 

SubMain

   Dim Result As Integer

   Dim dp_id as Long

   Dim dp_Result as Long

   

   Dim strName as String

   Dim strPassWord as String

  

   'Initially Recorded: 2004-4-24 10:30:51

   'scrīpt Name: Four

 

   dp_id = SQADatapoolOpen ("dp", FALSE, SQA_DP_SEQUENTIAL, FALSE)

   

dp_Result = SQADatapoolFetch (dp_id)

   

    while dp_Result <> sqaDpEOF

              StartApplication "xxx"

              Window SetContext, "Caption=登陆", ""

 

          dp_Result = SQADatapoolValue (dp_id, "name", strName)

          dp_Result = SQADatapoolValue (dp_id, "password", strPassWord)

          dp_Result = SQADatapoolFetch (dp_id)

         

          InputKeys strName

          EditBox Click, "ObjectIndex=1", "Coords=34,9"

          InputKeys strPassWord

          PushButton Click, "Text=登陆"

   

          Window SetContext, "Caption=登陆;Class=#32770", ""

TAG: 自动化测试

 

评分:0

我来说两句