自动化框架 – 实施以获取优势
你可以仅仅通过从街道的一侧冲到另一侧来穿过繁忙的街道,而不遵守任何规则。但这对你来说可能是危险的,你被汽车或其他车辆撞到的可能性非常高。但同时,如果你遵守简单的交通规则,在过马路之前先看看道路的两侧,就可以避免成为交通事故的受害者。不是吗?
同样,你可以在不实施任何框架的情况下执行自动化测试,只需购买一个自动化工具并开始进行测试即可。这很好,没有问题。但是,当你实施一个完美的框架并遵循其指南时,你将从中获得最需要的有益结果。
什么是框架?
框架是一套可以忽略的指南,但是当你遵循它时,你将从中获益。
框架包含指南、概念、最佳实践、既定流程、明确的编码标准、对象存储库流程、更好的测试数据处理、经过验证的报告机制等,以完美地执行我们的工作并从中获得更好的有益结果。
自动化框架为我们提供了创建和执行自动化测试脚本所需的必要环境、更好的错误处理,并通过有效地组织自动化脚本(在需要时可以重用)来降低脚本维护成本。
你将从中获得什么?
让我们讨论一下,在自动化我们的应用程序时,采用框架将获得的一些好处。
- 框架将人工操作降到最低,工作可以在最少的用户干预下完成
- 它将通过有效的项目存储库降低维护成本
- 如果发生任何更改,则无需更改测试脚本,只需更新测试用例文件,驱动程序脚本和启动脚本保持不变
- 测试数据可以单独保存在 excel 或 CSV 文件中,无需将它们包含在测试脚本中。因此,如果需要进行任何修改,我们只需轻松地操作 excel 文件中的数据,而无需更改脚本
- 可以在需要时重用通用库文件,无需每次都开发它们。因此,它节省了团队的时间并提高了生产力
- 除此之外,它还为我们提供了代码可重用性、基于角色的访问、轻松报告、一致性和最大测试覆盖率的好处
框架类型
有不同类型的框架,有不同的指南需要遵循。我们可以根据我们的需求采用框架。
基于模块的测试框架
此框架侧重于基于模块或函数的脚本编写。我们需要为每个被测模块编写单独的脚本,并通过集成这些脚本,我们将获得多个模块的更大脚本。
此框架的优点是,它避免了脚本之间的相互依赖关系。因此,如果发生任何更改,则需要更新表示该模块的脚本,而其他脚本保持不变。因此,它提供了稳定性并降低了返工成本。
此框架的主要问题在于测试数据,因为我们将测试数据嵌入到模块级脚本中,因此如果数据发生更改,也需要相应地更新该脚本。
通用库测试框架
众所周知,有一些通用步骤可以在模块之间使用。我们可以使用这些通用步骤编写函数并将它们保存在共享库中。因此,在需要时,我们可以从库中调用该函数,而不是再次编写这些通用步骤。
例如,我们可以使用应用程序登录所需的通用步骤编写一个函数,并将其保存在库中。因此,无论何时需要测试应用程序中类似的登录屏幕,我们都可以简单地调用该函数。
此框架的缺点是,如果共享函数编写错误,则也会对其他脚本产生级联影响。
数据驱动测试框架
让我们讨论一个场景;您正在一个教育领域的项目中,您需要测试大量学生数据。因此,很明显,您还需要添加新数据并删除一些旧数据以测试各种场景。
在这种情况下,在每个脚本中插入这些大量学生数据,并在更改时再次编辑所有这些脚本是否是一项艰巨的任务?想象一下完成所有这些活动需要的工作量。
这就是数据驱动框架发挥作用的地方。使用该框架,我们可以将测试数据存储在单独的 excel、CSV 或 xml 文件中,然后通过调用脚本中共享库的调用函数,使用键多次调用它们。
虽然此框架提高了灵活性和可维护性,但流程的复杂性需要额外的努力和编程语言的专业知识来创建脚本。
关键字驱动测试框架
这是数据驱动框架的扩展,但它还在表中存储关键字以及某些代码集。因此,当需要这些关键字(例如 login、clickbutton、verifyLink 等)时,我们可以简单地独立调用它们。
由于关键字和测试数据存储在表中,因此也称为表驱动框架。此框架需要较少的脚本编写知识,但要创建关键字机制需要编程知识。
混合测试框架
此框架结合了上述两个或多个框架,以利用它们所需的好处。您可以将数据驱动框架与关键字驱动框架结合使用,如果需要,可以添加通用库测试框架。
其唯一目的是通过组合多个框架来获得最理想的益处。
行为驱动开发框架
此框架侧重于使用 cucumber、jbehave 等各种工具开发和测试业务规范,并遵循使用 Jenkins 和 Bamboo 的持续集成方法。
从编写故事、映射和配置、执行和查看报告的所有阶段都可以使用各种工具执行,因此无需成为编程语言专家。