shortest 是一个使用自然语言编写端到端(E2E)测试的开源框架。它利用人工智能(AI)的力量,让测试变得更简单、更高效,降低了编写和维护测试的门槛。简单来说,
shortest
让你用人类语言描述测试场景,它就能自动帮你执行测试,并生成测试报告。这大大简化了传统的需要编写大量代码的测试流程。
特性和功能
- 自然语言编写测试: 使用简单的自然语言描述用户行为和预期结果,例如 “用户使用邮箱和密码登录应用”,而不是编写复杂的代码。
- AI 驱动: 利用 AI 技术理解自然语言描述,并将其转换为可执行的测试步骤。
- 端到端测试: 支持完整的端到端测试,模拟用户从头到尾的完整操作流程。
- 内置功能丰富: 原生支持 E2E 测试、双因素认证(2FA)测试、邮件验证等功能,无需额外的插件或配置。
- 与 GitHub 集成: 可以与 GitHub 无缝集成,直接在 CI/CD 流水线中运行测试。
- Mailosaur 集成: 与 Mailosaur 平台集成,方便验证邮件发送和接收功能。
- 跨设备兼容性测试: 利用 Playwright 的多设备模拟能力,高效验证应用在不同设备和浏览器中的表现。
工作原理
shortest
的工作流程大致如下:
-
编写测试用例: 使用自然语言描述测试场景和预期结果,例如:
shortest('Login to the app using email and password', { username: process.env.GITHUB_USERNAME, password: process.env.GITHUB_PASSWORD })
-
执行测试: 运行
shortest
命令,它会将自然语言描述转换为可执行的测试步骤。 -
生成测试报告:
shortest
会生成详细的测试报告,显示测试结果和错误信息。
与传统测试框架的对比:
特性 | 传统测试框架 | Shortest |
---|---|---|
编写方式 | 手写代码 | 自然语言描述 |
技术门槛 | 高 | 低 |
执行效率 | 中等 | 高 |
功能覆盖 | 依赖插件扩展 | 原生支持 E2E、2FA、邮件验证等功能 |
AI 驱动 | 无 | 有 |
适用场景:
- Web 应用端到端测试: 特别适合复杂的 Web 应用测试,尤其是涉及多个页面跳转、动态交互和数据验证的场景。
- CI/CD 流程自动化: 将
shortest
集成到 GitHub 工作流中,可实现自动化测试触发和结果反馈。 - 用户认证与安全测试: 支持 2FA 和邮件验证功能,是测试用户登录、注册流程的理想选择。
如何使用
-
安装:
npm install -D @antiwork/shortest # or pnpm add -D @antiwork/shortest # or yarn add -D @antiwork/shortest
-
运行测试:
npx shortest # or pnpm shortest # or yarn shortest
-
配置(
shortest.config.ts
):import type { ShortestConfig } from '@antiwork/shortest'; export default { headless: false, // 是否以无头模式运行浏览器 baseUrl: 'http://localhost:3000', // 应用的基础 URL testDir: 'app/__tests__', // 测试用例所在的目录 anthropicKey: process.env.ANTHROPIC_API_KEY // Anthropic API 密钥(如果需要) } satisfies ShortestConfig;
shortest 通过 AI 技术的加持,将原本复杂、枯燥的测试工作变成了简单高效的自然语言交互过程。它降低了测试的门槛,提高了测试效率,为开发者提供了一种全新的端到端测试选择。