Testplane (ex-Hermione) 浏览器测试运行器使用教程
1. 项目介绍
Testplane(原名 Hermione)是一个基于 Mocha 和 WebDriverIO 的浏览器测试运行器,专为现代 Web 应用的测试而设计。它支持在任何规模、任何浏览器和任何平台上进行测试,提供了丰富的功能和强大的扩展性。
主要特点
- 开发者友好:提供安装向导、TypeScript 支持、实时测试编辑反馈、高级 HTML 报告和智能功能(如自动等待和重试)。
- 视觉测试:支持捕捉页面细节或整个页面,管理差异,探索多种差异模式,并处理测试中的不稳定性。
- 跨环境测试:支持在真实设备和广泛的自动化协议上进行测试,模拟用户实际环境。
- 可扩展性:支持在远程浏览器网格上运行数千个测试,提供分片、并行测试执行和隔离浏览器上下文。
- 无限扩展性:提供丰富的插件系统,支持自定义报告、命令和执行逻辑。
2. 项目快速启动
安装
首先,使用 npm 安装 Testplane:
npm install --save-dev testplane
初始化项目
使用 CLI 向导设置 Testplane 并生成基本配置:
npm init testplane@latest new-testplane-project
编写测试
在生成的 testplane-tests/example.testplane.ts
文件中编写测试代码:
describe("test", () => {
it("example", async (browser) => {
await browser.url("https://example.com/");
const description = await browser.$("p");
await expect(description).toHaveTextContaining("for use in illustrative examples in documents");
});
});
运行测试
使用以下命令运行测试:
npx testplane gui
3. 应用案例和最佳实践
案例1:视觉测试
在测试中使用 assertView
命令进行视觉检查:
describe("test", () => {
it("example", async (browser) => {
await browser.url("https://example.com/");
const description = await browser.$("p");
await description.assertView("description");
});
});
案例2:跨浏览器测试
Testplane 支持在多个浏览器上运行测试,确保应用在不同浏览器中的兼容性:
describe("test", () => {
it("example", async (browser) => {
await browser.url("https://example.com/");
const description = await browser.$("p");
await expect(description).toHaveTextContaining("for use in illustrative examples in documents");
});
});
4. 典型生态项目
WebDriverIO
WebDriverIO 是一个用于自动化浏览器和移动应用的测试框架,与 Testplane 紧密集成,提供强大的测试功能。
Mocha
Mocha 是一个功能丰富的 JavaScript 测试框架,运行在 Node.js 上,支持异步测试,与 Testplane 结合使用,提供灵活的测试结构。
TypeScript
TypeScript 是 JavaScript 的超集,提供静态类型检查,Testplane 支持 TypeScript,帮助开发者编写更健壮的测试代码。
通过以上模块的介绍和实践,您可以快速上手并深入使用 Testplane 进行浏览器测试。