2009-12-16 113 views
6

我正在尝试使用QTP进行一些webapp ui自动化测试,我想知道人们通常如何编写他们的QTP测试。你是否一起使用对象图,描述性编程,组合或其他方式?任何小代码示例将不胜感激,谢谢你如何编写你的QTP测试?

回答

8

这是我的建议。

1)构建您的测试自动化需求矩阵。 您可以使用样品从我的博客

http://automation-beyond.com/2009/06/06/qa-test-automation-requirements-usability/

http://automation-beyond.com/2009/06/07/qa-test-automation-requirements-usability-2/

http://automation-beyond.com/2009/06/10/qa-test-automation-requirements-5-maintainability/

http://automation-beyond.com/2009/06/08/qa-test-automation-requirements-robustness/

http://automation-beyond.com/2009/06/09/qa-test-automation-requirements-scalability/

2)选择您automation approach

3)根据您选择

注意的方法写你的测试脚本。 QTP版本库方式或描述性编程属于前端功能测试自动化的GUI识别部分。它们在稳健性和维护方面很重要。技术上,它几乎是一样的。在这两种情况下,您都应该很好地理解GUI识别概念,否则无论采用何种方法都会遇到问题。

  • 您可以将GUI对象识别属性存储为类似XML的数据结构,并将该记录映射为类似英语的名称。无论何时原始对象的属性发生更改,都会更新存储库中的记录,而代码仍然引用映射的名称。
  • 或者您可以通过直接将相同的识别属性放入函数调用来解决GUI对象。每当原始对象的属性发生变化时,您都必须更改代码。但是,您不必随脚本一起维护额外的文件。

一个好的框架应该由在对象参考水平下操作同时支持GUI映射和描述编程符号。即你应该保持对象识别和对象交互任务分开。

注意,根据上下文描述编程符号可能脚本的放缓性能和它总是要求额外的维护工作,而在其他情况下,使用对象存储库只可能导致对象的描述的不必要的重复或者可能会限制动态更改GUI的识别。
我示出了下面的文章中提出以上几点: A little QTP performance test: Object Repository vs. Descriptive Programming

直代码示例(对于实际自动化我推荐GUI Function Wrapping)。

描述性编程 - 按物理描述属性寻址对象。通过映射GUI名称

Browser("Select Profile").Page("Select Profile").Link("Guest").Click 

Dim sProfile 
sProfile = "Guest" 

Set objWebParent = Browser("title:=Select Profile").Page("title:=Select Profile") 
Set objWebObject = objWebParent.Link("text:="&sProfile) 
boolRC = objWebObject.Exist(0) 
If Not boolRC Then 
'error-handling 
End If 
objWebObject.Click 

寻址对象谢谢你,
阿尔伯特Gareev
http://automation-beyond.com/

+1

感谢您为您的文章伟业。从我收集到的信息来看,如果必要的话,将提出一种混合的对象映射方法和描述性编程方法?顺便说一下,不错的网站,我不得不说鲁棒性是UI自动化中最烦人的部分。 – 2009-12-17 18:06:07

+0

嗨乔希。是的,我强烈建议使用接收对象引用的库函数作为参数。当从外部调用时,你将有一个自由定义对象和描述的对象。是的,让你的脚本变得非常有挑战性,但它应该是框架的一部分,而不是测试逻辑。 – 2009-12-21 21:09:15

+0

阿尔伯特博文中的“自动化方法”链接是我见过的关于这个主题的最好的总结之一。好东西。 – TheBlastOne 2010-06-18 08:01:39

1

我知道我迟到了,您必须已经有你在找什么因为,但我想提供我的投入,以及访问此主题的任何人。

我一般不会使用OR,除非我遇到一个描述性编程是不行的环境。就在最近,我使用了一个大型机前端GUI应用程序,它绝对没有对象的命名约定。如果您选择对这样的应用程序使用描述性编程,则使用其对象的唯一方法是通过索引或位置序号标识符,这不是考虑每个窗格中100个对象的最佳操作过程。

所以,你的问题的答案真的取决于环境和你的OR和DP的经验。在我的工作中,大多数与我合作过的人以及在线社区都倾向于在可行的情况下使用描述性编程。但是,我也看到人们用OR来创造奇迹。

我有几个代码示例,但不幸的是,它们处理描述性编程。例如,有关创建模块化的VBScript类来划分应用程序的功能集成到小型管理的组件下面的文章会谈:

http://relevantcodes.com/qtp-using-classes-as-test-modules-i/

同样,本文介绍了规划如何描述可以用来验证目标的多重性,通过一个对象码单块:

http://relevantcodes.com/qtp-verify-multiple-object-properties-an-elegant-approach/

此外,演示框架也可供您参考这里:

http://relevantcodes.com/relevantcodes1one-qtp-automation-framework/

该框架完全基于描述性编程原则构建,但在下一版本中,将添加一些功能以使用户也可以使用OR。

谢谢

Anshoo阿罗拉

(感谢链接到原创文章,Motti)

+0

我认为在可能的情况下,DP将是选择的方法。我只是不太确定QTPs系统是否真的很好。目前我使用TestPartner并完全避免其OR系统。谢谢你的信息Anshoo。 – 2010-01-20 20:29:57

+0

嗨阿罗拉,您的网站不开放 – 2017-07-20 07:08:34

相关问题