用于 Web 测试的页面对象模式

Page Object Pattern for web testing

我正在研究几个可用于端到端自动化测试的 javascript 框架,主要是:Webdriver.io、theIntern 和 Nightwatch。

我真的很想从开发人员那里得到一些关于哪种框架最能支持页面对象模式的反馈?

实习生支持该模式(这是一个足够通用的模式,我认为其他两个模式也支持)。有几种方法可以使用 Intern 来实现它。

Intern Guide中提到了一种可能性。用于控制远程浏览器的 Command 对象包含在另一个 class 中,它添加了页面特定的功能。

描述了一种更灵活的不同实现方式 here。设置命令包装器以允许链接多个自定义调用可能很棘手。第二种实现使用 Command 辅助函数,使用起来更容易。

以下是我在各种框架页面对象实现中遇到的一些主要痛点:

  1. 必须允许创建elements/locators一次并且不能在其他地方重复它们(DRY)
  2. 它如何处理 basePage(即页面 ​​elements/methods 不特定于单个页面(例如 hitEnter()))
  3. 它如何处理跨页面的重复元素(例如存在于多个页面上的导航栏)
  4. 是否允许 可读 测试

意见肯定会考虑这些...这很好。针对您选择的框架回答这些问题,您就会得到答案。