我正在尝试使用QTP进行一些webapp ui自动化测试,我想知道人们通常如何编写他们的QTP测试。您是否一起使用对象图,描述性编程,组合或其他方式?任何小代码示例都将不胜感激,谢谢
答案 0 :(得分: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/
3)根据您选择的方法编写测试脚本
注意。:QTP Repository方式或Descriptive Programming属于前端功能测试自动化的GUI识别部分。它们在稳健性和维护方面很重要。 从技术上讲,它几乎是一样的。在这两种情况下,您都应该很好地理解GUI识别概念,否则无论采用何种方法,您都会遇到问题。
一个好的框架应该通过在对象参考级别操作来支持GUI映射和描述性编程符号。即你应该将对象识别和对象交互任务分开。
请注意,根据上下文描述性编程符号可以 减慢 脚本的性能, 总是 需要额外的维护工作,而在其他情况下,仅使用对象存储库可能会导致不必要的对象重复描述,或者可能会限制对动态更改GUI的识别。
我在下面的文章中说明了上面提到的一些观点:
A little QTP performance test: Object Repository vs. Descriptive Programming
直接代码示例(我推荐实际自动化GUI Function Wrapping)。
描述性编程 - 通过物理描述属性寻址对象。
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
按映射的GUI名称寻址对象
Browser("Select Profile").Page("Select Profile").Link("Guest").Click
谢谢你,
Albert Gareev
http://automation-beyond.com/
答案 1 :(得分:1)
我知道我在这里已经很晚了,你必须已经拥有了你想要的东西,但我也希望为访问这个主题的人提供我的意见。
我通常不会使用OR,除非我遇到Descriptive Programming不行的环境。就在最近,我使用的是大型机前端GUI应用程序,该应用程序绝对没有对象的命名约定。如果您选择对这样的应用程序使用描述性编程,则使用其对象的唯一方法是通过索引或位置序数标识符,这不是考虑每个窗格中100个对象的最佳操作过程。
因此,您的问题的答案实际上取决于环境以及您对OR和DP的体验。我工作过的大多数人和在线社区都喜欢在可行的情况下使用Descriptive Programming。但是,我也看到人们用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 Arora
(感谢您链接到原始文章,Motti)