乐于分享
好东西不私藏

两款AI驱动的E2E测试工具对比:Shortest vs Skyvern

两款AI驱动的E2E测试工具对比:Shortest vs Skyvern

痛点引入

imagine你在一家创业公司负责测试工作。每天早上打开电脑,你面对的是这样的场景:

昨天开发又上线了新版本,你高兴地跑测试,结果发现40%的测试用例都失败了。原因很简单——开发只是微调了某个按钮的CSS样式,你精心写的那些XPath选择器全部失效。你只能一个个重新定位、修复、跑通,一上午就过去了。

又或者,你的团队刚招了一个实习生,他花了一周时间才勉强学会写Playwright的测试代码。不是他不努力,而是E2E测试的API确实太杂太碎:click、fill、hover、check、selectOption…每个操作都有讲究。

传统E2E测试的两个核心痛点,至今困扰着无数测试工程师:

  1. 1. 编写成本高——需要掌握Playwright、Cypress等框架的API,门槛不低
  2. 2. 维护成本更高——页面稍微改版,脆弱的XPath选择器就失效,测试大规模失败

这两年,AI开始改变这个局面。

正文

Shortest:让测试像写需求文档一样简单

Shortest是GitHub上5500+星的开源项目,诞生于2024年9月。它的slogan很直接:QA via natural language

这个工具的核心理念是:你只需要描述”做什么”,不需要关心”怎么做”

传统Playwright测试怎么写?你得这样:

await page.goto('https://app.example.com/login');await page.fill('#username', 'test@example.com');await page.fill('#password', 'password123');await page.click('button[type="submit"]');await expect(page.locator('.dashboard')).toBeVisible();

用Shortest怎么写?只需要一句话:

import { shortest } from "@antiwork/shortest";shortest("Login to the app using email and password", {  username: "test@example.com",  password: "password123",});

就这么简单。AI会自动分析页面结构,找到登录表单和按钮,完成所有操作。

Shortest基于Playwright构建,底层调用Anthropic的Claude API来理解自然语言。它不仅仅能处理简单的登录场景,还支持:

  • • 测试链:多个步骤串联,比如”登录→进入设置→修改头像”
  • • API测试:用自然语言描述API断言,比如”确保返回的用户都是活跃状态”
  • • GitHub 2FA:内置GitHub双因素认证支持
  • • 生命周期钩子:beforeAll、afterAll等初始化操作

它适合谁?

  • • 刚起步的团队,需要快速写出第一批E2E测试
  • • 测试流程相对简单,主要是登录、填表、点击等基础操作
  • • 团队里没有Playwright专家,想降低学习门槛

它的局限在哪?

  • • 依赖Claude API,每次运行都要付费
  • • 适合简单场景,复杂逻辑可能不如手写代码精确
  • • AI执行结果可能略有波动,不适合需要精确控制的测试

Skyvern:用视觉理解代替XPath

如果说Shortest解决的是”测试怎么写”的问题,那Skyvern解决的是”元素怎么找”的问题。

Skyvern是GitHub上21000+星的项目,定位是Automate Browser-based workflows using LLMs and Computer Vision。它诞生得更早,2024年初就开始了。

传统自动化为什么脆弱?因为依赖XPath或CSS选择器。页面改版=选择器失效=测试崩溃,这是每个测试工程师的噩梦。

Skyvern的思路完全不一样:像人一样用眼睛看页面,让AI通过视觉理解元素位置

来看它的三种交互模式:

# 模式1:纯AI模式 - 用自然语言描述await page.click(prompt="Click the green Submit button")# 模式2:纯选择器模式 - 传统Playwrightawait page.click("#submit-btn")# 模式3:AI Fallback模式 - 优先选择器,失败时自动切换AIawait page.click("#submit-btn", prompt="Click the Submit button")

第三种模式特别聪明:先尝试快速的CSS选择器,如果页面改版导致选择器失效,AI会接管,自动找到目标元素。这在生产环境非常实用。

Skyvern的核心优势:

  1. 1. 抗布局变化——页面改版不影响测试,因为AI看的是视觉元素,不是DOM结构
  2. 2. 未知网站也能自动化——从来没用过的网站,AI也能理解页面并完成操作
  3. 3. 跨站点复用——一个工作流定义可以用于多个类似网站

它是怎么做到的?答案是Vision LLM + Computer Vision。Skyvern会”看”页面,识别按钮、表单、链接等视觉元素,然后像人类用户一样判断该点击哪里。

在WebBench基准测试上,Skyvern达到64.4%准确率。特别是在WRITE任务(填写表单、登录、下载文件等RPA场景)上表现最佳。

它适合谁?

  • • 需要自动化复杂、多步骤的工作流
  • • 被XPath脆弱性问题困扰已久
  • • 需要跨多个类似网站复用自动化逻辑
  • • 企业级RPA场景

它的局限在哪?

  • • 主要面向Python/TypeScript开发者
  • • 云版本有托管费用
  • • 对于简单场景可能 overkill

维度对比

维度
Shortest
Skyvern
核心定位
自然语言写测试
视觉理解页面元素
技术栈
TypeScript + Playwright
Python/TypeScript
选择器依赖
可选(支持AI fallback)
学习成本
低(会英语就能写)
中(需了解SDK用法)
执行成本
Claude API付费
LLM调用成本
最佳场景
简单测试快速上手
复杂流程自动化
社区热度
5500+ Star
21000+ Star

怎么选?

我帮你画个简单的决策树:

选Shortest,如果:

  • • 你需要快速写出第一批E2E测试,时间紧迫
  • • 测试场景以登录、填表、点击为主,相对简单
  • • 团队没有专职测试开发,需要降低门槛

选Skyvern,如果:

  • • 你需要构建长期稳定的工作流,不希望频繁维护
  • • 自动化场景复杂,涉及多步骤、多条件
  • • 被XPath问题折磨已久,想要一劳永逸

总结

两者代表了AI驱动E2E测试的两种思路:

  • • Shortest做的是”减法”——把测试编写从代码变成自然语言,大幅降低门槛
  • • Skyvern做的是”替代”——用视觉理解替代脆弱的选择器,大幅提升稳定性

短期快速验证,选Shortest;长期稳定自动化,选Skyvern。


下期预告:Shortest教程——手把手教你用自然语言写E2E测试


GitHub地址:https://github.com/antiwork/shortest(Shortest)

GitHub地址:https://github.com/Skyvern-AI/skyvern(Skyvern)