Screenplay 模式是一个用于软件测试的设计模式,本文探索如何使用 Screenplay 模式编写 Web UI 测试用例。
本文首先会介绍 Screenplay 模式的基本概念;接着,以登录 GitHub 并在页面创建 Issue 为测试场景,来分析该场景中的操作者与行为分别对应 Screenplay 模式中的哪个部分;最后,针对该测试场景,使用 Serenity BDD 测试框架来编写满足 Screenplay 模式的测试用例,示例工程使用 Maven 管理。
阅读更多Serenity BDD(Behavior Driven Development,行为驱动开发)是一个支持 Java 语言的 BDD 自动化测试框架。Serenity BDD 框架功能强大,吸纳了业界诸多通用测试规范,支持页面对象模型(Page Object Model),可与 JUnit、Cucumber、Selenium、JBehave 等多种流行测试框架进行集成。此外,Serenity BDD 还提供详细的测试报告,可以直观呈现每个步骤的执行结果、页面截图、耗时情况,以及整体测试覆盖率等各项数据与指标。
阅读更多前面我们在「如何使用 Cucumber Java 进行 UI 测试?」一文中,以登录 GitHub 并在页面创建 Issue 为例介绍了 Cucumber 与 Selenium 的集成,但其中的示例工程未使用依赖注入工具,所有对象的新建均是使用原生 new 关键字来实现的。接着,我们在上文「如何在 Cucumber Java 中使用 PicoContainer 进行依赖注入?」介绍了在 Cucumber 中使用 PicoContainer 进行依赖注入的方法。尽管 PicoContainer 比较轻量,也是 Cucumber 官方推荐的依赖注入工具,但在 Java 技术栈,Spring 或 Spring Boot 框架才是主流,除了提供依赖注入功能外,其还提供诸多其它实用功能(如灵活的配置、方便的数据库连接、易用的组件集成方法等),所以探索 Cucumber 与 Spring Boot 的集成很有必要。本文即接着前面的两篇文章,同样以登录 GitHub 并在页面创建 Issue 为测试场景,以示例工程的方式演示 Cucumber 与 Spring Boot 的集成,示例工程实现语言为 Java,使用的浏览器测试工具为 Selenium,工程使用 Maven 管理。
阅读更多上文「如何使用 Cucumber Java 进行 UI 测试?」以登录 GitHub 并在页面上创建 Issue 为例演示了 Cucumber Java 与 Selenium 的集成,以及 UI 测试工程的搭建及测试用例的编写。您可能注意到,上文演示的测试工程未使用依赖注入工具,对象的创建均是使用最原生的 new 方式来实现的。这对于大型工程来说,会显得非常笨拙。本文主要介绍 Cucumber Java 与依赖注入框架 PicoContainer 的集成,本文将对上文的测试工程进行改造,将所有手动创建对象的地方都交由 PicoContainer 来自动实现。
阅读更多上文「Cucumber 是什么?如何使用 Cucumber Java 进行 API 测试?」介绍了 Cucumber 中的基本概念,并以实例的方式演示了如何使用 Cucumber Java 进行 API 测试。本文基于此,以在页面创建 GitHub Issue 为例进一步探索如何使用 Cucumber Java 进行 UI(浏览器)测试。示例工程实现语言为 Java,使用的浏览器测试工具为 Selenium,工程使用 Maven 管理。
阅读更多前两篇文章「Selenium WebDriver 基础使用」和「Selenium WebDriver 高级特性使用」分别介绍了 Selenium WebDriver 的基础功能和高级功能的使用。这两篇文章更多的是从底层实现细节的角度去练习 Selenium WebDriver API 的使用。
阅读更多