在 QTP VS Selenium 中开发自动化框架时通常有哪些方面不同

软件测试 自动化测试 qtp
2022-01-30 17:23:05

我曾在 Selenium 工作过。为了开发 Web UI 功能测试自动化套件,我考虑了以下方面

  • 使用 TestNG 框架
  • 使用页面对象模式
  • 基于 XML 的配置
  • 记录失败案例

这些都是基于我的学习。可能还有其他方面可以添加到列表中。

如果我必须使用 QTP 开发自动化框架,那么测试自动化方法在这种情况下有何不同。我没有使用商业工具开发测试自动化

我有以下问题

  • 当您使用 QTP 开发框架时,我们仍然使用 TestNG 吗?接触过 QTP 和 Selenium 的人可以澄清我的问题
  • 类似于 Page object Pattern QTP 建议自动化的最佳实践是什么

不包括许可和开源方面,

  • 当我们使用 QTP Vs Selenium 开发自动化框架时,我们有什么不同
  • QTP 可用于非 Web 测试(例如 winforms)

基于使用 QTP 的任何最佳实践?任何相关的帖子/示例请在回复中发布

3个回答

注意:我上次在 QTP 上工作是在 2008 年。我的笔记就是以此为基础的。

当我从 QTP 过渡到 Selenium 时,最显着的不同是编程/脚本语言。QTP 仅支持(ed)VBScript,因此测试框架的 OO 方法对我来说更具挑战性。我仍然使用 Page 对象模型。我曾经使用元素名称及其描述符创建一个文本文件。

HP Quality Center 与 QTP 最适合用于测试管理目的(驱动测试等)

与 Selenium 相比,QTP 具有这一优势,即非 Web 应用程序的自动化。我曾经用窗把手来识别窗户。创建包括与 Web 和其他 Windows 应用程序交互的自动化非常容易。

SQAFormus 的 QTP 论坛可能是 QTP 世界中最好的知识和互动来源。

自动化框架设计指南

介绍

框架为测试自动化的所有阶段定义了一套指南:需求分析、脚本设计、执行、报告和维护。框架可以是一些复杂的内部架构的包装器,这使得最终用户易于使用。它还强制执行一套标准来执行

问题陈述

没有一套标准的指导方针可用于开发框架以及在开发框架时需要考虑的所有因素。有不同的白皮书介绍了框架的类型及其工作方式。但是它们都没有定义相同设计的所有因素

设计指南

本文涵盖了框架的不同方面以及根据需求需要具备的关键特性。

  1. 框架的选择——存在的不同类型的框架是:

o 数据驱动框架——当应用程序的流程保持不变时使用,只有数据发生变化。数据由外部媒体提供,例如 Excel 表格、XML 等……

o 关键字驱动框架——该框架提供了可用于任何类型应用程序的通用关键字。它还提供了对所使用的自动化工具类型和被测试应用程序类型的抽象,例如,它可以使用相同的测试用例测试类似的 Web 和 Windows 应用程序

o 混合框架——混合框架是同时利用数据驱动和关键字驱动框架的框架。这些框架不实现通用关键字,而是根据正在测试的应用程序实现业务逻辑关键字。例如,登录、注销可以是可以使用的特定于应用程序的关键字。

  1. 不要重新发明轮子——框架应该尝试使用自动化工具的强大功能,而不是通过实现新的关键字来重新定义整个语言。开发关键字驱动的框架既耗时又昂贵。可以在更短的时间内以更低的成本开发混合框架。

  2. 可重用性——框架应该允许尽可能高的可重用性。将单个操作组合到业务逻辑中提供了可重用性。例如——将“输入用户名”、“输入密码”和“单击登录”等操作组合成一个可重复使用的组件“登录”

  3. 支持不同的应用程序版本——一个框架应该允许在测试应用程序的不同版本/风格的情况下重用基线脚本。有两种不同的方式来支持不同的应用程序

o 复制和修改——此方法涉及创建基线脚本的副本并针对特定应用程序版本对其进行修改

o 重用和升级——此方法涉及重用基线脚本并为特定版本的应用程序提供升级代码。这确保了最大的可重用性,应该是首选。

  1. 支持脚本版本控制– 脚本应存储在版本控制系统中,如 CVS、Microsoft® VSS 等……这样可以确保从任何灾难中恢复。

  2. 不同的开发和生产环境——自动化应该被视为任何其他开发项目。应在测试环境中创建和调试测试脚本。一旦经过测试,则只应部署到生产环境中。这也适用于任何紧急释放

  3. 外部可配置——脚本的可配置项应保存在外部文件中。这将包含应用程序 URL、版本、路径等配置……这允许针对不同的环境运行相同的脚本。确保配置文件的位置没有硬编码。硬编码文件将允许在任何环境中运行,但一次只能运行一个。保持配置相对于当前测试路径可以克服这个限制

  4. 可自我配置——理想情况下,框架应该是可自我配置的。部署到系统后,无需手动更改配置,脚本应自动配置所需设置

  5. 任何对象更改所需的最小更改-自动化过程中面临的最常见问题是对象标识更改。框架应该能够轻松地修补此类更改。这可以通过将所有对象标识设置存储在共享位置来实现。这可以是外部 XML 文件、excel 文件、数据库或自动化专有格式。有两种可能的方式来加载这个对象识别配置

o 静态——所有对象定义都在测试开始时加载到内存中。对对象定义所做的任何更改只能通过停止并重新运行测试来加载

o 动态– 根据请求提取对象定义。与静态方法相比,这种方法有点慢。但是对于需要在运行时进行修复的大型脚本,这是合适的。

  1. 执行——框架可能需要满足以下要求(根据需要)

o 执行单个测试用例

o 执行测试批次(测试组合)

o 仅重新执行失败的测试用例

o 基于另一个测试用例/测试批次的结果执行一个测试用例/测试批次 根据项目要求,可能还有许多其他需求。一个框架可能不会实现所有这些,但应该足够灵活以适应未来的这些需求

  1. 状态监控——一个框架应该允许实时监控执行状态,并且应该能够在失败的情况下发送警报。这确保了发生故障时的快速周转时间

  2. 报告——不同的应用程序有不同的报告需求。有些需要测试批次的综合结果,有些需要测试批次中每个测试用例的单独级别测试报告。该框架应该足够灵活以生成所需的报告

  3. 更改对自动化工具的最小依赖性——某些修复只能通过在自动化工具中打开脚本然后保存来进行。脚本的开发方式应该是即使没有自动化工具也可以进行修改。这通过减少所需的许可证数量来降低公司成本。它还允许任何人对脚本进行更改,而无需设置工具

  4. 易于调试- 在自动化过程中调试需要大量时间,因此需要特别注意这部分。使用外部数据源(如 Excel 电子表格)来读取脚本关键字并对其进行处理的关键字驱动框架很难调试。

  5. 日志记录——日志生成是执行的重要部分。在测试用例的各个点生成调试信息非常重要。此信息可以帮助快速找到问题区域并同时减少修复时间

  6. 易于使用——该框架应该易于学习和使用。在框架上训练资源既耗时又昂贵。有据可查的框架更容易理解和实施

  7. 灵活——框架应该足够灵活以适应任何增强而不影响现有的测试用例

  8. 性能影响——框架还应考虑实施的性能影响。增加脚本加载时间或执行时间的复杂框架是不可取的。应尽可能使用缓存、在执行时将所有代码编译到单个库等技术来提高性能

  9. 框架支持工具——可以开发外部工具来执行有助于框架设计的任务。一些示例任务是

o 将脚本从本地文件夹上传到 HP Quality Center

o 将库文件与当前打开的脚本相关联

o 将本地文件与 HP Quality Center 同步。

  1. 编码标准——编码标准确保脚本是一致的、可读的和易于维护的。编码标准应该定义下面列出的所有东西

o 变量、子函数、函数、文件名、脚本名称等的命名约定……例如 – i_VarName 用于整数,fn_i_FuncName 用于返回整数的函数

o 库、子组件、函数注释标题。这应该包括版本历史、创建者、上次修改者、上次修改日期、描述、参数、示例等信息

o 对象命名约定。Ex – 文本框的 txt_FieldName

概括

自动化应该被视为一个开发项目,而不仅仅是事件的记录和回放。使用良好的框架开始自动化测试可确保低维护。本文讨论的指南可用作开发框架需求的输入。

Search following on GOOGLE to get ready to use selenium framework

用于自动化 Web 测试的 InfoStretch Selenium 框架

什么是框架?用于自动化 Web 测试的首选工具 InfoStretch Selenium 框架 InfoStretch 使用 Selenium 测试工具开发了一个用于 Web 应用程序测试和测试自动化的框架,该工具专注于实现快速的投资回报——通常在不到三个月的时间内。使用 Selenium 的 InfoStretch 框架具有一组强大的预构建功能,包括:

对来自云端的许多浏览器进行并行兼容性测试,基础设施成本为零。

跨 UI 和 Web 服务的集成场景测试。

高度可维护和可重复的测试,利用可重用的测试资产、适当的模块化和语义结构。

使用外部 Excel、XML 和 CSV 数据进行数据驱动的 Selenium 测试。

向下钻取、Junit 风格的测试报告,显示跨多个测试执行的关键自动化指标以及失败测试的屏幕截图。

编码约定和流程指南的最佳实践,以及如何使应用程序“可测试”的指导。

集成到许多持续集成/构建自动化系统中,例如 Hudson。

更多参考资料:

http://stepauto.com/images/Shankar%20Arigela-microsoft.pdf

http://www.open2test.org/QAT_Tech_Docs/QTP_framework_introduction_v1.pdf

http://www.logigear.com/logi_media_dir/Documents/Automation_Framework.pdf

http://www-106.ibm.com/developerworks/rational/library/591.html#N10223

http://safsdev.sourceforge.net/FRAMESDataDrivenTestAutomationFrameworks.htm

InfoStretch 测试自动化框架

http://blog.infostretch.com/806

选择测试自动化框架

http://www.ibm.com/developerworks/rational/library/591.html

http://www.byte-code.com/meetup2008/images/meetup_camza.pdf

测试自动化框架

http://www.articlesbase.com/software-articles/test-automation-framework-378599.html

设计自动化测试框架

http://www.infosys.com/IT-services/independent-validation-testing-services/Documents/business-rules-test-automation.pdf

http://www.automatedtestinginstitute.com/home/index.php?option=com_content&view=article&catid=132:test-automation-training&id=1358:designing-an-automated-test-framework#magictabs_fxunc_1

我想你已经得到了两个相当冗长的答案。

当您使用 QTP 开发框架时,我们仍然使用 TestNG 吗?接触过 QTP 和 Selenium 的人可以澄清我的问题

类似于 Page object Pattern QTP 建议自动化的最佳实践是什么

我有为两家顶级航空公司设计工具无关自动化测试框架的经验。所以我将能够部分回答你的问题。我从未使用过TestNG,但我已经看到它被用于某些项目并且从那开始 - 不。如果没有大量修改/包括一些东西,它就不能用于 QTP。并且在这些修改之后它不会有效。

如果您充分利用 QTP 的力量,您可以做很多事情。但我们通常不这样做。最典型的例子之一是描述性编程。因此,它取决于您要自动化的应用程序以及客户端。

当我们使用 QTP Vs Selenium 开发自动化框架时,我们有什么不同 QTP 可用于非 Web 测试(例如 winforms)

如果我们从“设计框架”的角度来看,而不是他们自己能做什么。然后它最终归结为编程/脚本语言。您将对 QTP 使用 vbscript,对 Selenium 使用 java(主要)。就我而言,当我遇到跨浏览器测试场景时,我使用了 selenium。

至于你的例子。是的,使用 QTP 识别和处理 windows 对象要容易得多。但是有时您将不得不从硒中做到这一点(它本来就无法做到这一点)。在这种情况下,这应该从您的框架中处理(使用 sendkey 的条件 vbscript)。

希望这能回答您的疑问。