什么是 Nightwatch?
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 标准规范。
什么是 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 还可以与基于云的测试平台集成,例如 Browserstack、SauceLabs、CrossBrowserTesting、LambdaTest 或 TestingBot。
支持的浏览器
WebDriver 由所有主要浏览器供应商作为符合 W3C 标准的 HTTP 服务实现。
浏览器驱动程序 | 浏览器 | 描述 |
---|---|---|
GeckoDriver | 独立应用程序,它实现 W3C WebDriver API 与 Firefox 通信。 | |
ChromeDriver | 独立应用程序,它实现 W3C WebDriver API 用于 Chromium。 适用于 Android 上的 Chrome 和桌面上的 Chrome(Mac、Linux、Windows 和 ChromeOS)。 |
|
Microsoft Edge Driver | 独立应用程序,用于驱动基于 Chromium 的最新 Edge 浏览器,其工作方式类似于 ChromeDriver。 | |
SafariDriver | /usr/bin/safaridriver 二进制文件预安装在最新版本的 MacOS 中,您可以按照 Apple Developer 网站 上的说明使用它。有关更多信息,请访问 关于 Safari 的 WebDriver 页面。 |