Testing 如何编写QTP测试?

Testing 如何编写QTP测试?,testing,automation,automated-tests,qtp,Testing,Automation,Automated Tests,Qtp,我正在尝试将QTP用于一些webapp ui自动化测试,我想知道人们通常是如何编写QTP测试的。您是否同时使用对象映射、描述性编程、组合或其他方式?任何小的代码示例都将不胜感激,谢谢你这里是我的建议 1) 构建您的测试自动化需求矩阵。 你可以使用我博客上的样本 2) 选择你的 3) 根据您选择的方法编写测试脚本 注意。QTP存储库方式或描述性编程属于前端功能测试自动化的GUI识别部分。它们在健壮性和维护方面很重要。 从技术上讲,这几乎是一样的。在这两种情况下,您都应该很好地理解GUI识

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

这里是我的建议

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

2) 选择你的

3) 根据您选择的方法编写测试脚本

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

  • 您可以将GUI对象识别属性存储在类似XML的数据结构中,并将记录映射到类似英语的名称。每当原始对象的属性发生更改时,您都会更新存储库中的记录,而代码仍然引用映射的名称
  • 或者,您可以通过直接将相同的识别属性放入函数调用来处理GUI对象。无论何时原始对象的属性发生更改,都必须进行代码更改。但是您不必在脚本中维护额外的文件
一个好的框架应该通过在对象引用级别操作来支持GUI映射和描述性编程符号。也就是说,您应该将对象识别和对象交互任务分开

请注意,根据上下文,描述性编程符号可能会降低脚本的性能,并且总是需要额外的维护工作,而在其他情况下,仅使用对象存储库可能会导致不必要的对象描述重复,或者可能会限制对动态变化的GUI的识别。
我在下面的文章中阐述了上面提出的一些观点:

简单的代码示例(对于实用的自动化,我推荐)

描述性编程-通过物理描述属性寻址对象

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
谢谢你,
阿尔伯特·加雷夫

我知道我来晚了,你一定已经有了你想要的东西,但我也想为访问此主题的任何人提供我的意见

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

因此,您的问题的答案实际上取决于环境以及您使用OR和DP的经验。在我的工作中与我共事过的大多数人,以及在线社区的人,只要可行,都喜欢使用描述性编程。然而,我也看到人们用或创造奇迹

我有一些代码示例,但不幸的是,它们涉及描述性编程。例如,下面的文章讨论如何创建模块化VBScript类,将应用程序的功能划分为可管理的小组件:

类似地,本文展示了如何使用描述性编程通过单个代码块验证目标对象的多个属性:

此外,您还可以在此处查看演示框架:

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

谢谢,

安舒阿罗拉


(感谢您链接到原始文章,莫蒂)

感谢您的帖子。根据我收集的信息,您会建议在必要时使用对象映射与描述性编程的混合方法吗?顺便说一句,不错的网站,我不得不说健壮性是ui自动化中最烦人的部分。嗨,乔希。是的,我强烈建议使用作为参数接收对象引用的库函数。当从外部调用时,您可以自由定义映射对象和通过描述定义对象。是的,让脚本变得健壮确实很有挑战性,但它应该是框架的一部分,而不是测试逻辑中的一部分。Albert文章中的“自动化方法”链接是我见过的关于这个主题的最好总结之一。好东西。如果你设计函数库的方式是让函数包装GUI函数,并且这些包装函数将每个GUI对象作为参数,那么对于那些包装函数来说,是否从对象存储库传递对象名称或描述对象的实例并不重要。因此,通过适当的库设计,您可以同时使用OR和DP。我假设DP将是可能的选择方法。我只是不太确定QTP或系统是否真的很好。目前我使用TestPartner,完全避免使用它的或系统。谢谢你的信息Anshoo。你好Arora,你的网站还没有开放