Mindket

Speedrun

新上架第 1 版 · 更新于
星标100

概览

用纯 YAML 文件为 Android、iOS 和网页应用运行端到端界面测试,从应用外部驱动。适合想在笔记本和 CI 上快速跑测试的开发者和测试团队。

Speedrun 是一款 GitHub 上的开源项目,属于开发类,由 Mindket 上架。可免费获取。当前为第 1 版,最近更新于 。按它的 README 从 GitHub 安装。Mindket 的设置说明可在你的 Mindket 账户获取,以 zip 压缩包下载。

速览

你需要
  • Homebrew,在 Apple 芯片的 macOS 上,或在 Linux x86_64 上
  • 一台已开机的 Android 模拟器或手机,或一个已完成启动的 iOS 模拟器
  • 如果要测网页流程,需要 Chrome 或 Firefox,Speedrun 会自己驱动它们
用在
  • Android 模拟器和设备
  • iOS 模拟器
  • Chrome 和 Firefox,用于网页流程
  • CI 运行环境,带报告,并可把流程分到多台设备上
先运行
brew install hubastard/tap/speedrun

平台

Android操作系统
iOS操作系统

关于

它是什么

Speedrun 是面向手机应用和网站的测试运行器。你把每个测试写成一个简短的 YAML 文件,它从你的应用外部点击、输入、滚动并检查屏幕。应用本身不需要加任何东西,所以任何构建都能用。

适合谁

想要启动快、出错少的界面测试的手机应用开发者和测试工程师。已经在写 Maestro 流程的团队可以直接沿用。

行业谁在用怎么用例子
手机应用开发应用开发者编写流程,在 Android 和 iOS 上依次点过登录等界面开发者每次改动后,检查“Sign in”流程是否仍然停在 Welcome 界面
质量保证测试工程师维护一套 YAML 流程,并生成 JUnit 或 HTML 报告测试人员运行整个流程文件夹,然后阅读 HTML 报告
网页产品团队前端开发者在 Chrome 或 Firefox 里对某个页面运行同类流程开发者在发布前以无头模式运行登录流程
测试自动化使用 Maestro 的团队换掉命令名,保留已有的流程文件团队把 flows 文件夹上的 maestro test 换成 speedrun test

如果你只写单元测试,或者测试的是桌面应用,可以跳过它。

用在哪里

  • Android 模拟器和设备
  • iOS 模拟器
  • Chrome 和 Firefox,用于网页流程
  • CI 运行环境,带报告,并可把流程分到多台设备上
  • 终端,每一步都会连同耗时实时显示
  • AI 编程智能体,通过在命令之间一直连着设备的会话来使用
用例谁用能得到什么
检查登录流程应用开发者每一步都有结果,失败时还有当时的屏幕内容和保存的日志
在 CI 里跑整套测试测试和发布团队JUnit 和 HTML 报告,流程分到多台设备上执行
从 Maestro 迁移已有流程的团队改一个词之后,沿用同样的流程文件、config.yaml、标签和报告

如何设置

你需要一种安装方式和一台用来测试的设备。

  • Homebrew,在 Apple 芯片的 macOS 上,或在 Linux x86_64 上
  • 一台已开机的 Android 模拟器或手机,或一个已完成启动的 iOS 模拟器
  • 如果要测网页流程,需要 Chrome 或 Firefox,Speedrun 会自己驱动它们
  1. 用 Homebrew 安装 Speedrun。
  2. 编写一个流程,也就是一个简短的 YAML 文件,写明你的应用并列出步骤。
  3. 在你的模拟器、设备或仿真器上用 test 命令运行它。
brew install hubastard/tap/speedrun

如何使用

先写一个流程文件,再运行它。每一步在运行时都会显示在终端里,某一步失败时会显示当时屏幕上的内容,以及截图和日志保存在哪里。

appId: com.example.app
---
- launchApp
- tapOn: "Sign in"
- inputText: "user@example.com"
- tapOn: "Continue"
- assertVisible: "Welcome"
speedrun test login.yaml -e PASSWORD=secret
speedrun test -p ios login.yaml -e PASSWORD=secret
speedrun test flows/ --format junit --output report.xml
工具作用
launchApp打开应用,并在 clearState 设为 true 时从干净状态开始
tapOn点击显示给定文字的元素
inputText把给定文字输入到输入框
assertVisible检查给定文字是否出现在屏幕上
speedrun test运行一个流程文件或整个文件夹,默认在 Android 上,加 -p ios 选项则在 iOS 上
speedrun fast-boot启动模拟器或仿真器,并关掉你的测试用不到的应用和服务

网页流程通过 url 键指向自己的页面,位置就是应用流程里放 appId 的地方。用 headless 选项在 Chrome 里运行,或者加上 Firefox 设备选项。

示例

你写下上面那个五步流程。它打开应用,点击 Sign in,输入一个邮箱地址,点击 Continue,再检查 Welcome 是否在屏幕上。你用 speedrun test 加上文件名来运行它。如果检查失败,终端会显示当时屏幕上的内容和截图的位置。

新手与专家

Speedrun 像真人一样使用你的应用。它点按钮、输入文字、读取屏幕,然后告诉你哪一步出了问题。第一件可以试的小事,是拿上面那个五步流程,对着模拟器里的一个应用跑一遍。

在底层,它通过平台的无障碍层工作,所以发布版构建也能用,你的应用里不需要放任何 SDK。每一步在屏幕停止变化时开始,而不是等固定的休眠时间,像加载转圈这类永远不停的画面也不会拖住它。它的 Android 和 iOS 代理都装在同一个文件里,并直接控制 Chrome 和 Firefox,所以没有 JVM 或 WebDriver 需要安装。代价是不支持 Maestro 的 AI 命令。

  1. 把测试写成 YAML 流程文件
  2. Speedrun 从外部驱动应用
  3. 每一步都等屏幕稳定下来
  4. 失败时保存截图和日志
  5. 报告以 JUnit 或 HTML 输出

注意事项

  • 平台:Android、iOS 和网页,已在原生应用和 React Native 应用上测试过。
  • 不支持:Maestro 的 AI 命令,比如 assertWithAI,以及网页上的 startRecording。
  • 速度:点一下打开一个界面大约需要 0.3 秒,一次运行在 1 到 3 秒内启动。
  • 在 CI 运行环境里,fast-boot 会关掉那些和你的测试争抢 CPU 的后台应用和服务。
  • 许可证:Apache 2.0。
Android 上同一段用户操作所用的时间
Speedrun20 s
Appium59 s
maestro-runner66 s
Maestro127 s

README 和文件

README

Speedrun

用纯 YAML 文件为 Android、iOS 和网页应用运行端到端界面测试,从应用外部驱动。适合想在笔记本和 CI 上快速跑测试的开发者和测试团队。

由 hubastard 在 GitHub 上制作。这些说明是 Mindket 根据其 README 写的,项目自己的文件和许可证在它的仓库里。

简介

它是什么:Speedrun 是面向手机应用和网站的测试运行器。你把每个测试写成一个简短的 YAML 文件,它从你的应用外部点击、输入、滚动并检查屏幕。应用本身不需要加任何东西,所以任何构建都能用。

适合谁:想要启动快、出错少的界面测试的手机应用开发者和测试工程师。已经在写 Maestro 流程的团队可以直接沿用。

行业 | 谁在用 | 怎么用 | 例子
手机应用开发 | 应用开发者 | 编写流程,在 Android 和 iOS 上依次点过登录等界面 | 开发者每次改动后,检查“Sign in”流程是否仍然停在 Welcome 界面
质量保证 | 测试工程师 | 维护一套 YAML 流程,并生成 JUnit 或 HTML 报告 | 测试人员运行整个流程文件夹,然后阅读 HTML 报告
网页产品团队 | 前端开发者 | 在 Chrome 或 Firefox 里对某个页面运行同类流程 | 开发者在发布前以无头模式运行登录流程
测试自动化 | 使用 Maestro 的团队 | 换掉命令名,保留已有的流程文件 | 团队把 flows 文件夹上的 maestro test 换成 speedrun test

如果你只写单元测试,或者测试的是桌面应用,可以跳过它。

用在哪里:

  • Android 模拟器和设备
  • iOS 模拟器
  • Chrome 和 Firefox,用于网页流程
  • CI 运行环境,带报告,并可把流程分到多台设备上
  • 终端,每一步都会连同耗时实时显示
  • AI 编程智能体,通过在命令之间一直连着设备的会话来使用
用例 | 谁用 | 能得到什么
检查登录流程 | 应用开发者 | 每一步都有结果,失败时还有当时的屏幕内容和保存的日志
在 CI 里跑整套测试 | 测试和发布团队 | JUnit 和 HTML 报告,流程分到多台设备上执行
从 Maestro 迁移 | 已有流程的团队 | 改一个词之后,沿用同样的流程文件、config.yaml、标签和报告

如何设置:你需要一种安装方式和一台用来测试的设备。

  • Homebrew,在 Apple 芯片的 macOS 上,或在 Linux x86_64 上
  • 一台已开机的 Android 模拟器或手机,或一个已完成启动的 iOS 模拟器
  • 如果要测网页流程,需要 Chrome 或 Firefox,Speedrun 会自己驱动它们
  1. 用 Homebrew 安装 Speedrun。
  2. 编写一个流程,也就是一个简短的 YAML 文件,写明你的应用并列出步骤。
  3. 在你的模拟器、设备或仿真器上用 test 命令运行它。
brew install hubastard/tap/speedrun

如何使用:先写一个流程文件,再运行它。每一步在运行时都会显示在终端里,某一步失败时会显示当时屏幕上的内容,以及截图和日志保存在哪里。

appId: com.example.app
---
- launchApp
- tapOn: "Sign in"
- inputText: "user@example.com"
- tapOn: "Continue"
- assertVisible: "Welcome"
speedrun test login.yaml -e PASSWORD=secret
speedrun test -p ios login.yaml -e PASSWORD=secret
speedrun test flows/ --format junit --output report.xml
工具 | 作用
launchApp | 打开应用,并在 clearState 设为 true 时从干净状态开始
tapOn | 点击显示给定文字的元素
inputText | 把给定文字输入到输入框
assertVisible | 检查给定文字是否出现在屏幕上
speedrun test | 运行一个流程文件或整个文件夹,默认在 Android 上,加 -p ios 选项则在 iOS 上
speedrun fast-boot | 启动模拟器或仿真器,并关掉你的测试用不到的应用和服务

网页流程通过 url 键指向自己的页面,位置就是应用流程里放 appId 的地方。用 headless 选项在 Chrome 里运行,或者加上 Firefox 设备选项。

示例:你写下上面那个五步流程。它打开应用,点击 Sign in,输入一个邮箱地址,点击 Continue,再检查 Welcome 是否在屏幕上。你用 speedrun test 加上文件名来运行它。如果检查失败,终端会显示当时屏幕上的内容和截图的位置。

新手与专家:Speedrun 像真人一样使用你的应用。它点按钮、输入文字、读取屏幕,然后告诉你哪一步出了问题。第一件可以试的小事,是拿上面那个五步流程,对着模拟器里的一个应用跑一遍。

在底层,它通过平台的无障碍层工作,所以发布版构建也能用,你的应用里不需要放任何 SDK。每一步在屏幕停止变化时开始,而不是等固定的休眠时间,像加载转圈这类永远不停的画面也不会拖住它。它的 Android 和 iOS 代理都装在同一个文件里,并直接控制 Chrome 和 Firefox,所以没有 JVM 或 WebDriver 需要安装。代价是不支持 Maestro 的 AI 命令。

把测试写成 YAML 流程文件
Speedrun 从外部驱动应用
每一步都等屏幕稳定下来
失败时保存截图和日志
报告以 JUnit 或 HTML 输出

注意事项:

  • 平台:Android、iOS 和网页,已在原生应用和 React Native 应用上测试过。
  • 不支持:Maestro 的 AI 命令,比如 assertWithAI,以及网页上的 startRecording。
  • 速度:点一下打开一个界面大约需要 0.3 秒,一次运行在 1 到 3 秒内启动。
  • 在 CI 运行环境里,fast-boot 会关掉那些和你的测试争抢 CPU 的后台应用和服务。
  • 许可证:Apache 2.0。
Title: Android 上同一段用户操作所用的时间
Speedrun: 20 s
Appium: 59 s
maestro-runner: 66 s
Maestro: 127 s

GitHub 上的数据(2026年11月7日)

  • 星标:100
  • 复刻:3
  • 未关闭的议题和拉取请求:1
  • 语言:Odin
  • 许可证:Apache-2.0
  • 话题:ai-agents, android, android-emulator, black-box-testing, cli, e2e-testing, end-to-end-testing, fast, ios, ios-simulator, maestro, mcp

链接

  • 代码:https://github.com/hubastard/speedrun
  • 发布版本:https://github.com/hubastard/speedrun/releases
  • 议题:https://github.com/hubastard/speedrun/issues
  • 星标历史:https://www.star-history.com/#hubastard/speedrun&Date

获取代码

git clone https://github.com/hubastard/speedrun.git

然后按它的 README 完成设置。这个工具包里没有会自己运行的东西。

文件
README.md  6 KB

1 个文件,共 6 KB,以 zip 压缩包下载。

更新内容

  • 第 1 版 · 2026-11-06

同类产品对比

同一分类里与本产品共有主题最多的已上架 GitHub 项目。

产品星标活跃度语言许可证最近更新
Speedrun 本页100活跃OdinApache-2.0
Tester Army e2e 端到端测试框架共有 e2e-testing · end-to-end-testing13,443活跃TypeScriptApache-2.0
agent-desktop共有 cli · mcp · ai-agents19,705活跃RustApache-2.0
kanzo共有 cli · mcp · ai-agents1,045活跃RustAGPL-3.0
qwen-code共有 cli · mcp29,845活跃TypeScriptApache-2.0
ECC(affaan-m 出品)共有 mcp · ai-agents299,210活跃JavaScriptMIT
数据为 Mindket 在 2026-11-06 至 2026-11-13 期间读取的数值。 活跃度依据各项目在 GitHub 上的最近更新:30 天内为活跃,180 天内为更新较少,超过 180 天为久未更新。

评价

还没有评分

写评价

还没有评价。

Mindket 的更多商品

查看 Mindket 的全部商品

anaksor-ocr

Sokheng · 工具包

这个模型从文档、收据和路牌照片里读取高棉语和英语文字,用一个检测器找文本行,再用识别器读每一行。适合需要在 Python 里做高棉语 OCR 的开发者。

新上架

Qwen2.5-7B-Instruct-GGUF

Qwen · 工具包

Qwen2.5-7B-Instruct 的 GGUF 文件,提供八种量化大小,可通过 llama.cpp 在本地聊天。适合想在自己电脑上用 7.6B 强力模型、又不想搭 Python 环境的人。

新上架

ACE-Step 1.5 XL SFT

ACE-Step · 工具包

用 4B 扩散解码器根据文字生成音乐,50 步并带引导控制,音频质量高于基础版。适合拥有 12 GB 或更多显存 GPU 的创作者。

新上架

REA: Reverse Engineer Anything

morluto · MCP 服务器

精选

morluto 做的 MCP 服务器和 CLI,让你的编程智能体在你自己的电脑上研究二进制文件、桌面和 Android 应用、网站和固件,并为每条发现附上证据。

新上架458k

agent-desktop

vercel-labs · 工具包

Enables AI agents to read and interact with desktop applications on macOS, Windows, and Linux using accessibility trees instead of screenshots. It provides a C…

新上架19.7k

kanzo

emanuele-em · 工具包

在一个小程序里同时跑起浏览器里的看板和 MCP 服务器,让你和你的编码智能体共用一份任务清单。不需要账号,也不需要服务器。

新上架1045