Nightwatch 还可以与 Selenium Server(也称为 Selenium Grid)一起用于大规模分布式跨浏览器端到端测试。Selenium Server 是一个用 Java 编写的开源项目,它管理一个 WebDriver 节点网络。
它旨在提供一种简单的方法来在多台机器上并行运行测试。
先决条件
- 确保系统上安装了 Node。本指南中使用的版本为 v16.14.2
- 确保系统上安装了 Java。本指南中使用的版本为 openjdk 11.0.14
设置 Nightwatch
创建一个新目录并在其中启动一个 Nightwatch 项目
mkdir <directory-name>
cd <directory-name>
npm init nightwatch@latest
或者直接使用单个命令在新目录中创建项目
npm init nightwatch <directory-name>
当您看到提示安装 create-nightwatch 时,按 y
❯ npm init nightwatch
Need to install the following packages:
create-nightwatch
Ok to proceed? (y)
这将安装 Nightwatch,询问您的偏好并根据您的偏好设置 nightwatch.conf.js
文件,如下所示
偏好
测试运行器
Nightwatch 还支持其他测试运行器。除了 Nightwatch 之外,您还可以选择 Mocha 或 Cucumber JS 作为测试运行器。
语言 - Javascript/Typescript
Nightwatch 在 v1.6.0 之后支持用于测试文件的 typescript。因此,您可以选择在 Javascript 或 Typescript 中设置测试。
? What is your Language - Test Runner setup? (Use arrow keys)
❯ JavaScript - Nightwatch Test Runner
JavaScript - Mocha Test Runner
JavaScript - CucumberJS Test Runner
TypeScript - Nightwatch Test Runner
TypeScript - Mocha Test Runner
在本地/远程(云)上运行
您可以配置 Nightwatch 在您的机器上本地运行,在云机器上远程运行,或者两者都运行
? Where do you want to run your e2e tests? (Use arrow keys)
❯ On my local machine
On a remote machine (cloud)
Both
对于远程测试,如果您选择 BrowserStack
或 Sauce Labs
,则主机和端口详细信息将自动添加。但是,如果您选择在您自己的远程 selenium 服务器或任何其他云提供商上运行,则必须在 nightwatch.conf.js
文件中手动配置主机和端口详细信息。
浏览器选择
您可以选择将在其上进行测试的浏览器,配置将自动为它们创建。我们提供多选选项,因此您可以选择任意数量的浏览器进行测试。您也可以在本地机器上测试时使用 selenium-server。
? Where you'll be testing on? (Press <space> to select, <a> to toggle all, <i> to invert selection,
and <enter< to proceed)
❯◯ Firefox
◯ Chrome
◯ Edge
◯ Safari
◯ Local selenium-server
从选中浏览器的顶部列表中选中 Local selenium-server
选项。
测试文件夹名称
接下来,您可以命名要存放测试的文件夹。默认值为 tests。
? Where do you plan to keep your end-to-end tests? (tests)
基本 URL
添加测试将针对其运行的基本 URL。此偏好将默认为 https://127.0.0.1
? What is the base_url of your project? (https://127.0.0.1)
选择此偏好后,Nightwatch 设置将开始。它还会为您生成示例测试,以便您开始使用。
如果您从 Mac 运行,则 safaridriver 默认存在,但必须启用。您将看到以下选项。
? Enable safaridriver (requires sudo password)? (Use arrow keys)
❯Yes
No, I'll do that later.
运行测试
设置完成后,可以使用以下命令运行测试
Firefox
npx nightwatch tests/specs/basic/ecosia.js --env selenium.firefox
Chrome
npx nightwatch tests/specs/basic/ecosia.js --env selenium.chrome
Safari
npx nightwatch tests/specs/basic/ecosia.js --env selenium.safari
输出应类似于以下内容
[Ecosia.org Demo] Test Suite
============================
ℹ Connected to localhost on port 4444 (2153ms).
Using: firefox (94.0.1) on mac 20.6.0 platform.
✔ Running Demo test ecosia.org:
✔ Element <body> was visible after 24 milliseconds.
✔ Testing if the page title contains 'Ecosia' (10ms)
✔ Testing if element <input[type=search]> is visible (51ms)
✔ Testing if element <button[type=submit]> is visible (12ms)
✔ Testing if element <.mainline-results> contains text 'Nightwatch.js' (197ms)
OK. 5 assertions passed. (1.838s)
推荐内容