Token导航 LogoToken导航

Agent Skill · 研究检索

test-mobile-app(测试移动应用程序)

用于辅助测试设计、自动化测试、用例整理和回归验证。它适合让 Agent 编写单元测试、端到端测试、测试计划或根据失败日志定位问题。使用时需要确认项目测试框架、运行命令和夹具数据,避免为了通过测试而改坏真实逻辑;涉及浏览器或外部服务时,应区分本地模拟、测试环境和生产环境。

test-mobile-app 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为执行命令;许可证信息还不明确,第三方扫描有未通过项,按安装量在研究检索类的 73,675 个 Skill 里排第 66,030。

总安装 269周安装 11GitHub Stars 2下载 87核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:test-mobile-app(测试移动应用程序)
来源仓库:https://github.com/biggora/claude-plugins-registry
仓库路径:skills/test-mobile-app
安装命令:
npx skills add https://github.com/biggora/claude-plugins-registry --skill test-mobile-app
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/biggora/claude-plugins-registry --skill test-mobile-app

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

用于辅助测试设计、自动化测试、用例整理和回归验证。适合编写单元测试、端到端测试或根据日志定位问题。需确认项目测试框架、运行命令和夹具数据后使用。test-mobile-app 属于研究检索类 Skill,可作为该场景下的辅助能力补充。涉及浏览器或外部服务时应区分模拟环境与生产环境。

安装方式:通过 npx 从指定 GitHub 仓库添加。

来源仓库内路径:skills/test-mobile-app

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/biggora/claude-plugins-registry --skill test-m…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要执行命令,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

test-mobile-app 怎么安装?

在终端执行 npx skills add https://github.com/biggora/claude-plugins-registry --skill test-mobile-app。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

test-mobile-app 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

test-mobile-app 需要什么权限?

权限级别是执行命令。安装流程涉及命令执行,可能通过 npx skills add https://github.com/biggora/claude-plugins-registry --skill test-mobile-app 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

test-mobile-app 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

test-mobile-app 用的人多吗?

公开数据是累计安装 269 次,近一周安装 11 次,下载 87 次,GitHub 2 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

test-mobile-app 安全吗?

第三方扫描有未通过项,风险较高。除非你确认过源码,否则不建议直接安装到常用环境。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 需要执行命令,装到常用环境前要先评估影响面。
  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 不能接受 Skill 在你机器上执行命令的人。
  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
test-mobile-app

测试移动应用程序 · 本页

2692执行命令未明确未通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Mobile App Testing Skill

This skill enables Claude to perform end-to-end mobile application testing:

  1. Analyze the app structure and infer user-facing functionality
  2. Generate use cases from an end-user perspective
  3. Write concrete test scenarios with expected results
  4. Execute tests via Appium + Android emulator (or interpret results statically)
  5. Produce a structured HTML/Markdown test report

Phase 1 — App Analysis

What to collect

Before generating use cases, gather as much context as possible:

  • Source code (Android/Java/Kotlin, iOS/Swift, React Native, Flutter)
  • APK file — use androguard to extract Activity list, permissions, Manifest
  • Screenshots — analyze UI from images
  • Description — what the app does, target audience

APK Analysis (Android)

Read scripts/analyze_apk.py for full script. Quick usage:

python3 scripts/analyze_apk.py path/to/app.apk

Outputs: package name, activities, permissions, strings → feeds into use case generation.

Source Code Analysis

If source is available, scan for:

  • Screen/Activity/Fragment/Page names → each is a potential use case surface
  • Navigation graphs (React Navigation, NavController)
  • API endpoints called (network requests)
  • Form fields, validation logic
  • Authentication flows

Phase 2 — Use Case Generation

Methodology

Think from the perspective of a real end user — not a developer. Ask: *"What would a person actually do with this app?"*

Use case format:

UC-<N>: <Short Title>
Actor: End User
Precondition: <What must be true before this action>
Steps:
  1. <action>
  2. <action>
  ...
Expected outcome: <what the user sees/gets>
Priority: High / Medium / Low

Use Case Categories to Always Cover

  1. Onboarding — first launch, tutorial, permissions prompt
  2. Authentication — registration, login, logout, password reset
  3. Core Feature Flow — the primary value action of the app (1-3 flows)
  4. Data Entry — any form: required fields, validation, error states
  5. Navigation — bottom nav, back button, deep links
  6. Empty States — what happens when there's no data
  7. Error Handling — no internet, server error, invalid input
  8. Settings / Profile — change preferences, update data
  9. Notifications — if the app uses push notifications
  10. Accessibility — basic: is text readable, are tap targets big enough

Aim for 15–30 use cases depending on app complexity.


Phase 3 — Test Scenario Writing

For each use case, write a test scenario:

TEST-<N>: <Title>
Related UC: UC-<N>
Type: Functional | UI | Regression | Smoke
Steps:
  1. Launch app
  2. <specific action with exact input data>
  3. ...
Assertions:
  - Element <locator> is visible
  - Text "<expected>" is displayed
  - Screen navigates to <ScreenName>
  - No crash / error dialog
Expected Result: PASS / FAIL criteria

Test Types to Include

TypeWhen to use
SmokeQuick sanity — does app launch, core screens load?
FunctionalDoes feature X work correctly?
UI/VisualAre elements present, correctly labeled, accessible?
Edge CaseEmpty fields, special characters, very long strings
RegressionAfter a change — did existing features break?

Expo / React Native — Local Backend Setup

When the user's backend runs on the same machine as the development environment, the mobile app cannot use localhost or 127.0.0.1 — on a physical device or emulator, those addresses resolve to the device itself, not the host computer.

Find the host machine's IP

# macOS / Linux
ifconfig | grep "inet " | grep -v 127.0.0.1

# Windows (PowerShell)
ipconfig

Use the LAN IP (e.g. 192.168.1.15). The device and the machine must be on the same Wi-Fi network.

Android emulator shortcut: 10.0.2.2 is a special alias that always points to the host machine, so you don't need the LAN IP when testing on the built-in Android emulator.

Configure the Expo app

Expo supports .env files with the EXPO_PUBLIC_ prefix:

  1. Create .env.local in the project root: EXPO_PUBLIC_API_URL=http://192.168.1.15:5000
  2. Add .env.local to .gitignore (machine-specific setting).
  3. Use the variable in code: ` const response = await fetch(${process.env.EXPO_PUBLIC_API_URL}/users); `

For multi-environment setups, use app.config.js:

// app.config.js
export default ({ config }) => ({
  ...config,
  extra: {
    apiUrl: process.env.EXPO_PUBLIC_API_URL || 'http://localhost:5000',
  },
});
// Access via: Constants.expoConfig.extra.apiUrl  (expo-constants)

Configure the backend

Two things must be set on the server side:

SettingWhy
Bind to 0.0.0.0Default 127.0.0.1 binding rejects requests from outside the loopback interface — the device can't reach it
Allow CORSThe app's origin differs from the server origin; use cors (Express/Node), django-cors-headers (Django), rack-cors (Rails), etc.

Example for Express:

const cors = require('cors');
app.use(cors()); // or restrict to: { origin: 'http://192.168.1.15:8081' }
app.listen(5000, '0.0.0.0', () => console.log('listening on all interfaces'));

Tunneling fallback (ngrok / Expo tunnel)

If direct LAN access fails (VPN, restrictive router, office firewall), use tunneling:

# Expo built-in tunnel (wraps ngrok)
npx expo start --tunnel

This creates a public HTTPS URL that forwards traffic to the local server. It's slower than LAN but works through any network. Update EXPO_PUBLIC_API_URL to the tunnel URL while using it.

Testing checklist for local backend scenarios

  • Backend bound to 0.0.0.0, not 127.0.0.1
  • CORS configured on the server
  • EXPO_PUBLIC_API_URL set to LAN IP (or http://10.0.2.2:<port> for Android emulator)
  • Device and machine on the same Wi-Fi (for physical device)
  • No firewall blocking the backend port on the host machine
  • API endpoints respond to direct curl http://<host-ip>:<port>/health from terminal before running app tests

Phase 4 — Test Execution

Environment Setup

Read references/setup-appium.md for full Appium + emulator setup.

Quick check:

python3 scripts/check_environment.py

This verifies: adb, emulator, Appium server, Python client.

Running Tests

# Run all tests
python3 scripts/run_tests.py --apk path/to/app.apk --output results/

# Run smoke tests only
python3 scripts/run_tests.py --apk path/to/app.apk --suite smoke --output results/

# Run on specific device
python3 scripts/run_tests.py --apk path/to/app.apk --device emulator-5554 --output results/

Test Execution Without Emulator (Static Mode)

If no emulator is available (which is common — most users won't have Appium set up), Claude can still provide significant value:

  1. Analyze source code / screenshots / APK statically
  2. Generate use cases and write all test scenarios
  3. Mark execution status as MANUAL_REQUIRED
  4. Generate a comprehensive report with all test cases ready to be run manually
  5. Provide step-by-step manual testing instructions the user can follow

This is the most common execution path — don't treat it as a fallback. Make the static report just as polished and detailed as the automated one.

Use --static flag:

python3 scripts/run_tests.py --static --tests tests.json --output results/

Phase 5 — Report Generation

python3 scripts/generate_report.py --results results/ --output test_report.html

Report includes:

  • Summary: total tests, passed, failed, skipped
  • Per-test details: steps, assertions, actual vs expected, screenshots
  • Use case coverage matrix
  • Issues found (with severity: Critical / Major / Minor)
  • Environment info (device, OS, app version)

Read references/report-template.md for report structure details.


Workflow Summary

1. Receive app (APK / source / description / screenshots)
        ↓
2. Run analyze_apk.py OR inspect source code
        ↓
3. Generate use cases (UC-1...UC-N) — show to user, ask for feedback
        ↓
4. Write test scenarios (TEST-1...TEST-N) — derive from use cases
        ↓
5. Check environment (check_environment.py)
        ↓
6a. Emulator available → run_tests.py → capture results
6b. No emulator → static mode → mark for manual execution
        ↓
7. generate_report.py → HTML report → present to user

Important Notes

  • Always show use cases to the user before writing tests — they know their app best.
  • Locators: Prefer accessibility id > resource-id > xpath. Never use index-based xpath.
  • Waits: Always use explicit waits (WebDriverWait), never time.sleep.
  • Screenshots: Capture on every assertion failure automatically.
  • Crash detection: After every interaction, check for crash dialogs (the check_for_crash() function in scripts/run_tests.py handles this automatically).
  • Language: Generate use cases and reports in the language the user is using.

平台分布

Claude

32.98%
按下载量换算29

Codex

32.08%
按下载量换算28

Cursor

18.44%
按下载量换算16

Gemini CLI

9.47%
按下载量换算8

安全审计

Gen Agent Trust Hub

未通过

Socket

通过

Snyk

通过

权限和风险

执行命令

安装流程涉及命令执行,可能通过 npx skills add https://github.com/biggora/claude-plugins-registry --skill test-mobile-app 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills