综合介绍
Shortest是一个由Anti-Work团队开发的AI驱动的自然语言端到端测试框架。它基于Playwright构建,支持GitHub集成和双因素认证(2FA)。Shortest的主要特点是通过自然语言编写测试用例,并利用Anthropic Claude API进行AI驱动的测试执行。该框架旨在简化测试流程,提高测试效率,使开发者能够更轻松地编写和维护测试用例。
功能列表
- 自然语言测试编写:使用自然语言编写测试用例,降低了编写测试的门槛。
- AI驱动的测试执行:利用Anthropic Claude API进行AI驱动的测试执行,自动化程度高。
- 基于Playwright:构建在Playwright之上,提供强大的浏览器自动化功能。
- GitHub集成:支持与GitHub的无缝集成,包括双因素认证(2FA)。
- 邮件验证:通过Mailosaur进行邮件验证,确保测试的全面性。
- 回调函数:支持使用回调函数添加额外的断言和逻辑。
- 生命周期钩子:提供生命周期钩子,允许在测试执行前后执行自定义逻辑。
使用帮助
安装流程
- 使用npm、pnpm或yarn安装Shortest:
npm install -D @antiwork/shortest
# 或者
pnpm add -D @antiwork/shortest
- 将
.shortest/
添加到.gitignore
中,以存储每次测试运行的截图和缓存:
echo ".shortest/" >> .gitignore
- 确定测试入口并在配置文件中添加Anthropic API密钥:
// shortest.config.ts
import type { ShortestConfig } from "@antiwork/shortest";
export default {
headless: false,
baseUrl: "http://localhost:3000",
testPattern: "**/*.test.ts",
anthropicKey: process.env.ANTHROPIC_API_KEY,
} satisfies ShortestConfig;
使用流程
- 编写测试用例:
// app/__tests__/login.test.ts
import { shortest } from "@antiwork/shortest";
shortest("Login to the app using email and password", {
username: process.env.GITHUB_USERNAME,
password: process.env.GITHUB_PASSWORD,
});
- 使用回调函数添加额外的断言和逻辑:
import { shortest } from "@antiwork/shortest";
import { db } from "@/lib/db/drizzle";
import { users } from "@/lib/db/schema";
import { eq } from "drizzle-orm";
shortest("Login to the app using username and password", {
username: process.env.USERNAME,
password: process.env.PASSWORD,
}).after(async ({ page }) => {
const clerkId = await page.evaluate(() => {
return window.localStorage.getItem("clerk-user");
});
if (!clerkId) {
throw new Error("User not found in database");
}
const [user] = await db
.select()
.from(users)
.where(eq(users.clerkId, clerkId))
.limit(1);
expect(user).toBeDefined();
});
运行测试
- 使用npx、pnpm或yarn运行测试:
npx shortest
# 或者
pnpm shortest
# 或者
yarn shortest
详细功能介绍
- 自然语言测试编写:Shortest允许用户使用自然语言编写测试用例,例如“登录应用并使用电子邮件和密码”。这种方式降低了编写测试的技术门槛,使非技术人员也能参与测试编写。
- AI驱动的测试执行:Shortest利用Anthropic Claude API进行AI驱动的测试执行,能够智能地理解和执行测试用例,提高测试的自动化程度和准确性。
- 基于Playwright:Shortest基于Playwright构建,提供强大的浏览器自动化功能,支持多种浏览器和设备的测试。
- GitHub集成:Shortest支持与GitHub的无缝集成,包括双因素认证(2FA),确保测试过程的安全性和可靠性。
- 邮件验证:通过Mailosaur进行邮件验证,确保测试的全面性和准确性。
- 回调函数:Shortest支持使用回调函数添加额外的断言和逻辑,允许用户在测试执行后进行进一步的验证和操作。
- 生命周期钩子:Shortest提供生命周期钩子,允许用户在测试执行前后执行自定义逻辑,例如在测试前设置测试环境,在测试后清理测试数据等。