测试交流学习QQ:476879428

[整理]关于自动化测试框架(续)

上一篇 / 下一篇  2012-03-05 12:03:08 / 个人分类:自动化测试

关键字驱动框架(keyword-driven/table-driven testing

   关键字驱动测试框架是目前比较流行的一种框架,QTP实现了一个简单易用的关键字框架。

   构建关键字驱动测试框架,首先定义关键字表格,关键字表格一般存储在测试数据库Excel或文件中。例如下面的表格定义了测试Windows计算器所需要的所有对象、操作、测试数据:

Window

Control

Action

Arguments

Calculator

Menu

 

View, Standard

Calculator

Pushbutton

Click

1

Calculator

Pushbutton

Click

+

Calculator

Pushbutton

Click

3

Calculator

Pushbutton

Click

=

Calculator

 

Verify Result

4

Calculator

 

Clear

 

Calculator

Pushbutton

Click

6

Calculator

Pushbutton

Click

-

Calculator

Pushbutton

Click

3

Calculator

Pushbutton

Click

=

Calculator

Verify Result

3

 

然后编写驱动代码,读取上述表格,分析出测试对象、测试操作、测试数据,编写高度抽象的测试逻辑,下面是一个框架的伪代码:

Main Script. / Program

Connect to data tables.

Read in row and parse out values.

Pass values to appropriate functions.

Close connection to data tables.

Menu Module

Set focus to window.

Select the menu pad option.

Return.

Pushbutton Module

Set focus to window.

Push the button based on argument.

Return.

Verify Result Module

Set focus to window.

Get contents from label.

Compare contents with argument value.

Log results.

Return.

有了驱动框架后,只需要按一定的格式编辑表格的数据,就可以利用驱动框架遍历表格中的每一行数据,执行所有测试用例

数据驱动框架(Data-Driven Testing

数据驱动框架与关键字驱动框架类似,测试数据都存储在数据库或Excel文件,但是数据驱动框架的测试用例、测试步骤和测试逻辑是在测试脚本中编写的,而不像关键字驱动框架一样放在表格中。

例如对于图中的测试,可以把每个输入框的数据进行参数化,在Excel文件中存储(如果是使用Rational Robot的话就可以直接使用DataPool)。

如果通过录制产生脚本的话,可得到脚本如下所示:

'Data Driven Framework

'Test Case Script

SubMain

     'Make An Order

     Window Set Context, "Name=frmOrder", ""

     

     'Card Number

     EditBox Click, "Name=txtCreditCard", "Coords=16,9"

     InputKeys "3333444455556666"

     

     'Expiration Date

     EditBox Click, "Name=txtExpirationDate", "Coords=6,7"

     InputKeys "3333444455556666"

     

     'Place Order

     PushButton Click, "Name=cmdOrder"

     

     'Confirmation Screen

     Window SetContext, "Name=frmConfirm", ""

     PushButton Click, "Name=cmdOK"     

End Sub

我们可以在表格中填写参数对应的测试数据:

 

然后在修改脚本如下:

'Data Driven Framework

'Test Case Script

'$Include "SQAUTIL.SBH"

SubMain

         Dim Result As Integer

         Dim DatapoolHandle As Long

         Dim DatapoolReturnValue As Variant

         

         'Open the datapool

         DatapoolHandle = SQADatapoolOpen("OrderFormDP")

         '...Add error checking....

         

         'Loop through the datapool

         While SQADatapoolFetch(DatapoolHandle) = dqaDpSuccess

                   'Open Order Form

                   Window SetContext, "Name=frmMain", ""

                   PushButton Click, "Name=cmdOrder"

                   Window SetContext, "Name=frmOrder", ""

         

                   'Card Number

                   Result = SQADatapoolValue(DatapoolHanle, "Credit Card Number", DatapoolReturnValue)

                   "...Add error checking....

                   EditBox Click, "Name=txtCreditCard", "Coords=16,9"

                   '...Clear Value....

                   InputKeys DatapoolReturnValue

         

                   'Expiration Date

                   Result = SQADatapoolValue(DatapoolHandle, "Expiration Date", DatapoolReturnValue)

                   '...Add error checking....

                   '...Clear Value...

                   EditBox Click, "Name=txtExpirationDate", "Coords=6,7"

                   InputKeys DatapoolReturnValue

         

                   'Place Order

                   Result = SQADatapoolValue(DatapoolHandle, "Order", DatapoolReturnValue)

                   If UCASE(DatapoolReturnValue) = "YES" Then

                            PushButton Click, "Name=cmdOrder"

                   

                            'Confirmation Screen

                            Window SetContext, "Name=frmConfirm", ""

                            Pushbutton Click, "Name=cmdOK"

                   Else

                            PushButton Click, "Name=cmdCancel"

                   End If   

                   Wend 'Go fetch next row

                    

                   'Close datapool

                   Result = SQADatapoolClose(DatapoolHandle)

                   '...Add error checking....

End Sub

 

脚本从表格中读入测试数据,包括测试输入的数据,测试结果验证的数据。通过循环遍历数据表格中的所有行,可以极大地增大测试覆盖面,测试各种输入条件下应用程序的表现。

混合框架(hybrid test automation

以上每种类型的框架都有其优点和缺点,通常在测试项目中需要混合使用几种框架,因此就有了混合型框架,如图所示。


TAG:

引用 删除 Bernice.liu   /   2012-03-05 14:18:22
5
 

评分:0

我来说两句

Open Toolbar