在进行自动化测试时,正确的结构是其有效性和可生存性的保证。
问题的历史
早期的自动化测试通常作为单块和紧密关联的脚本创建。这使得它们难以维护和扩展。测试数量的增长突显了良好架构的重要性。
问题
没有清晰的结构会出现:
解决方案
为您的测试使用明确的抽象层次:
良好的实践是使用:
# 结构示例 /tests /features test_order_creation.py /steps order_steps.py /pages order_page.py
关键特征:
哪种更好:编写较长的端到端测试还是短小的模块化自动测试?
通常只选择端到端测试,但根据目标组合不同类型的测试很重要:所有层级(单元、API、UI)对质量检查都是重要的。
在测试中是否可以同时使用文本和定位器的UI验证?
这并不总是正确:同时使用两种方法是可以的,但仅在UI可变性和测试逻辑证实有必要时。通常这是多余的,会增加维护难度。
在创建自动化测试时,是否应该完全复制被测软件的系统结构?
不,自动化测试的结构应着眼于便于测试,而不是精确复制应用程序的架构。
在一个团队中,自动化测试由一个人编写,所有测试都在一个文件中,每个测试复制前一个测试的步骤。当更新界面时,所有测试中的bug都需要手动修复。
优点:
缺点:
在另一个团队中引入了架构模板(步骤、页面和测试的分离)。新员工快速上手并快速引入新测试,更新在一个地方进行。
优点:
缺点: