Nightwatch.js 是一个用于在所有主要浏览器上对 Web 应用程序和网站执行自动化端到端测试的集成框架。 它使用 Node.js 编写,并使用 W3C WebDriver API 与各种浏览器进行交互。

它是端到端和跨浏览器测试的完整解决方案。 它旨在简化编写和运行各种类型的测试的过程,包括

  • 所有主要 Web 浏览器的端到端测试
  • Node.js 服务的单元测试
  • HTTP API 的集成测试

Nightwatch 于 2014 年在荷兰阿姆斯特丹创建,其名称的灵感来自荷兰 17 世纪艺术家 伦勃朗·凡·莱茵 的著名绘画 夜巡。 这幅杰作在阿姆斯特丹的国立博物馆中展出。 了解更多关于 Nightwatch 是如何创建的 这里

架构概述

Nightwatch 作为易于使用的 CLI 工具发布,并内置支持所有主要浏览器:Chrome、Firefox、Safari 和 Edge。

Nightwatch 通过利用行业标准协议 **WebDriver** 来执行浏览器自动化,该协议被定义为 W3C 标准规范。

Theory of Operation

什么是 WebDriver?

WebDriver 是一个用于自动化 Web 浏览器的通用库,是 Selenium 项目的一部分。 它现在是一个 W3C 规范,它标准化了浏览器自动化,提供了一个可靠且一致的协议,可以通过 RESTful **HTTP API** 远程控制 Web 浏览器。

**Selenium** 创建于十多年前,是自动化测试行业中使用最广泛的项目,它提供了一套完整的浏览器自动化工具,最初是为 Java 编写的,但现在支持大多数编程语言。

在内部,Nightwatch 使用 W3C WebDriver API 来执行与浏览器自动化相关的任务,例如打开窗口或单击链接。

支持 Selenium Grid 和云提供商

Nightwatch 还可以与 Selenium Server(也称为 **Selenium Grid**)一起用于大规模分布式跨浏览器端到端测试,Selenium Server 是一个用 Java 编写的开源项目,它管理 WebDriver 节点网络。

Nightwatch 还可以与基于云的测试平台集成,例如 BrowserstackSauceLabsCrossBrowserTestingLambdaTestTestingBot

Selenium Server Operation

支持的浏览器

WebDriver 由所有主要浏览器供应商作为符合 W3C 标准的 HTTP 服务实现。

浏览器驱动程序 浏览器 描述
GeckoDriver Mozilla Firefox 独立应用程序,它实现 W3C WebDriver API 与 Firefox 通信。
ChromeDriver Google Chrome 独立应用程序,它实现 W3C WebDriver API 用于 Chromium。

适用于 Android 上的 Chrome 和桌面上的 Chrome(Mac、Linux、Windows 和 ChromeOS)。
Microsoft Edge Driver Microsoft Edge 独立应用程序,用于驱动基于 Chromium 的最新 Edge 浏览器,其工作方式类似于 ChromeDriver。
SafariDriver Microsoft Edge /usr/bin/safaridriver 二进制文件预安装在最新版本的 MacOS 中,您可以按照 Apple Developer 网站 上的说明使用它。

有关更多信息,请访问 关于 Safari 的 WebDriver 页面。