(Quote)QTP中的descriptive programming

上一篇 / 下一篇  2007-05-24 13:44:54 / 个人分类:QTP

 

【摘要】自动化功能测试是一种企业级的用于检验应用程序是否如期运行的功能性测试工具。通过自动捕获,检测,和重复用户交互的操作,能够辨认缺陷并且确保那些跨越多个应用程序和据库的业务流程在初次发 布就能避免出现故障,并且保持长期可靠运行。在市场上用的比较多的主要包括Mercury公司的WinRunnerQuickTest ProfessionalIBMRationalRobot。笔者对于QuickTest Professional相对较为熟悉,希望有机会向大家逐步介绍QuickTest Professional中的一些要点及技巧。在本文里主要介绍了QuickTest Professional中的一项核心内容Descrīptive Programming,希望对大家有所借鉴和帮助。在文中,为了方便起见,将QuickTest Professional简称QTP(本文是基于Quick Test Professional V8.0而写)

【关键词】

描述性编程Descrīptive Programming

功能测试Functional Test

专家视图Expert View

关键字视图Keyword View

对象模型Object Model

运行时对象Run-Time Object

测试对象Test Object

【正文】

QTP功能测试基本方法

我们简单介绍一下有关功能测试的基本方法,这实际上对于所有自动化功能测试产品来说都是一样的。一般情况下,用QTP来进行功能测试的基本方法主要包括三个主要阶段:

 

 

1、创建测试或组建

首先可以通过在应用程序或网站上录制会话,或者建立对象库并使用关键字驱动功能向关键字视图中手动添加步骤来创建测试或组件。在QTP里面我们可以通过两种方式添加步骤来创建测试或组件:

  • 在应用程序或网站上录制会话。
  • 建立对象库并使用这些对象在关键字视图或专家视图中手动添加步骤

然后在在测试或组件中插入检查点,检查页面、对象或文本字符串中的特定值或特征,通过它可以标识网站或应用程序是否正常运行。或是通过用参数替换固定值扩展测试或组件的范围。提供数据表中的数据,定义环境变量和值,定义测试、组件或操作参数和值,或者使用QTP生成随机数字或当前用户和测试数据等。

最后如果需要的话使用QTP中众多的功能测试功能来增强测试或组件或添加编写语句来实现更复杂的测试目标。

2、运行测试和组建

控制运行会话,帮助标识和消除测试或组件中的缺陷。使用单步执行单步跳过单步退出命令逐步运行测试或组件,或设置断点使测试或组件在预定点暂停。每当测试或组件在断点处停止时,可以在调试查看器中查看其变量的值。

3、分析结果

在运行测试或组件之后,通过两种方式可以查看其结果:在结果窗口中查看结果;自动报告在运行会话过程中检测到的缺陷,可能的话并上报到其他缺陷管理产品中。

.试图与对象模型

在介绍QTP中的Descrīptive Programming前,我们有必要先介绍一下ExpertView及在ExpertView里进行编码的一些基本知识。

QTP里面提供了两种视图,第一种我们把它称为KeywordView(关键字视图,在早期的版本中称为TreeView),第二种把它成为ExpertView(专家视图),这两种视图分别是针对两种类型的人进行使用的。

1KeywordView(关键字视图)

通过关键字视图,QTP提供了一种模块化的表格格式创建和查看测试或组件的步骤。每个步骤在关键字视图中都是一行,这样用户可以轻松的修改任何一部分组成。

在录制会话过程中,用户在应用程序上执行的每个步骤在关键字视图中记录为一行。例如,在51testing的页面上执行的下列三个步骤:

  • 用户名编辑框中输入zhoda02
  • 密码编辑框中输入加密字符串41c630a213508cd49eb35089db1b893144b9
  • 单击登录按钮。

那么,关键字视图将包含下列行:

 

 

很显然,关键字视图非常直观有效,使用的人可以很清晰的看到被录制对象的录制层次及运行步骤,比较适合那些对于业务操作流程熟悉的人员使用。但是,如果需要一些增强型的操作,那就需要切换到专家视图里进行了。

2ExpertView(专家视图)

QTP在关键字视图中的每个节点在专家视图中对应一行脚本。上面例子对应的脚本如下:(删除后一句是因为前后重复,一句可以说明问题)

Browser("51Testing软件测试网:软件测试的专业网站").Page("51Testing软件测试网:软件测试的专业网站").WebEdit("username").Set "zhoda02"

Browser("51Testing软件测试网:软件测试的专业网站").Page("51Testing软件测试网:软件测试的专业网站").WebEdit("password").SetSecure "41c630a213508cd49eb35089db1b893144b9"

Browser("51Testing软件测试网:软件测试的专业网站").Page("51Testing软件测试网:软件测试的专业网站").WebButton("登录").Click

对于QTP来说,其核心编码语言是Visual Basic scrīpt,因此,如果用户熟悉VBscrīpt,可以运用自如的添加和更新语句,并通过编程方式增强测试和脚本,而这一切必须在专家视图中完成。

更为重要的是,有些操作是必须在专家视图中才可以完成的,例如:要处理动态对象、客户化报告、获取对象运行时的属性值(Run-time Value)等等,这些都必须通过专家视图中的VBscrīpt编码完成。

然而,QTP里所有的操作都是基于对象进行的,所以我们必须对对象模型有一个基本了解,才可以在专家视图内进行Descrīptive Programming

3、测试对象模型

测试对象模型是一大组对象类型或类,QTP用这些对象类型或类来表示应用程序中的对象。每个测试对象类都有一个可以唯一标识属于该类的对象的属性列表,以及一组QTP可以对其进行录制的方法。它包括测试对象(Test Object)和运行时对象(RunTime Object)。

测试对象是QTP在测试或组件中创建的用于表示应用程序中的实际对象的对象。QTP存储有关该对象的信息,这些信息有助于它在运行会话期间标识和检查该对象。

运行时对象是网站或应用程序中的实际对象,在运行会话期间执行针对该对象的方法。

如果录制时执行应用程序的相应操作,则一般情况下QTP将完成以下操作:

  • 标识QTP测试对象类(表示执行了操作的对象),并创建相应的测试对象
  • 读取应用程序中对象属性的当前值,然后将属性和属性值列表与测试对象一起存储。
  • 选择该对象的唯一名称,一般使用该对象某个重要属性的值。
  • 使用适当的QPT测试对象方法录制对对象执行的操作。

例如,假定使用以下HTML源代码单击查找按钮:

<INPUT TYPE="submit" NAME="Find" VALUE="Find">

QTPl将单击的对象标识为WebButton测试对象。它将创建一个名为FindWebButton对象,然后为该Find WebButton对象录制下列属性和属性值,同时还会录制对WebButtionClick方法。

 

 

在关键字视图及专家视图中显示内容分别为:

TAG: QTP

 

评分:0

我来说两句

日历

« 2024-05-03  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 41546
  • 日志数: 55
  • 图片数: 6
  • 书签数: 1
  • 建立时间: 2007-05-22
  • 更新时间: 2007-12-12

RSS订阅