首页/测试 & QA/argent-test-ui-flow
A

argent-test-ui-flow

by @software-mansionv
4.6(120)

此技能能够自主测试 iOS 或 Android 应用程序的用户界面,通过运行交互、截图和验证循环,实现端到端 UI 测试场景。它适用于验证登录流程、导航、手动 QA 步骤、可见 UI 变更或视觉行为,显著提升测试效率和覆盖率。

ui-testinge2e-testingmobile-automationqatest-automationGitHub
安装方式
npx skills add https://github.com/software-mansion/argent --skill argent-test-ui-flow
compare_arrows

Before / After 效果对比

1 组
使用前

在没有这个技能之前,用户需要手动执行繁琐的 UI 回归测试,耗费大量时间和人力,且容易因人为疏忽导致测试遗漏或结果不一致,严重拖慢发布周期。

使用后

此技能通过自动化交互、截图和验证流程,大幅缩短了 UI 回归测试时间,确保了测试的一致性和准确性,显著加速了应用发布迭代速度。

SKILL.md

Platform-agnostic

The interaction tool names are identical on iOS and Android — gesture-tap, gesture-swipe, describe, screenshot, launch-app, etc. — and the tool-server auto-dispatches based on the udid you pass (UUID-shape → iOS, adb serial → Android).

Before testing, resolve which device to test on. Call list-devices and follow <device_selection_rule>: prefer a running device on any platform;

Once a platform is chosen, the per-platform setup skill takes over:

PlatformSetup skillFind devices with
iOSargent-ios-simulator-setuplist-devices → boot-device with udid if none booted
Androidargent-android-emulator-setuplist-devices → boot-device with avdName if none ready

1. Workflow

All interactions go through argent MCP tools. Ensure the simulator/emulator is ready before starting.

For implementation tasks that modify visible UI, this workflow can also serve as a visual acceptance path.

  1. Baseline screenshot: Call screenshot to see the current UI state. For visual regression comparison or UI change verification, capture the baseline at scale: 1.0 with includeImageInContext: false and keep the returned path before editing whenever feasible.
  2. Find target: Before tapping, use a discovery tool to get element coordinates:
    • React Native apps: use debugger-component-tree — it returns component names with (tap: x,y) coordinates. This is the preferred tool for RN apps on either platform. To use it, resolve the argent-react-native-app-workflow skill for setup; on Android you must also run adb -s <serial> reverse tcp:8081 tcp:8081 so Metro is reachable from the device.
    • Standard app screens and in-app modals: use describe. On iOS this returns the AX tree (falls back to native-devtools when AX is empty); on Android it returns the uiautomator tree in the same DescribeNode shape.
    • Permission prompts / system modal overlays: try describe first. Fall back to screenshot only if the overlay is not exposed reliably.
    • Fallback: use screenshot to estimate where the desired component is, then verify immediately after the action.
  3. Interact: Perform the action (gesture-tap, gesture-swipe, keyboard, button, ...) — you receive a screenshot automatically.
  4. Verify: Check the returned screenshot for expected results. If it shows a loading/transitional state, retake with normal downscaled screenshot. Pick evidence by what's being asserted:
    • Visual (layout, spacing, color, typography, image/icon rendering, clipping, overflow, text rendering): prefer screenshot-diff against the baseline captured in step 1 — it surfaces pixel-visible changes the auto-screenshot might miss. Fall back to visual inspection of the auto-screenshot only when a stable baseline isn't available.
    • Structural (navigation state, element existence, accessibility labels/values, selection, hierarchy, route): verify with describe, debugger-component-tree, or native-describe-screen.
    • Runtime / log / network (console errors, API calls, persistence, timing): verify with view-network-logs, debugger-log-registry, debugger-evaluate, or targeted tests.
    • Mixed: collect evidence for each relevant class.
    • Report the combined verdict: expected behavior, observed behavior, evidence used, and any blocker for requested visual diffing.
  5. Repeat for each step in the flow.

2. Template

Goal: Test [feature name]

Steps:
1. Classify expected result: visual / structural / runtime-log-network / mixed → choose evidence
2. [Navigate / tap / type to reach stable comparable starting point] → verify auto-screenshot
3. screenshot { scale: 1.0, includeImageInContext: false } → save baseline path when visual or mixed evidence needs diffing
4. [Perform the action to test] → verify auto-screenshot
5. Use screenshot-diff when requested or when comparable images add useful visual evidence
6. Report: pass / fail with combined visual, structural, runtime/log/network evidence as applicable

3. Examples

Login flow

1. screenshot → see login screen
2. gesture-tap { x: 0.5, y: 0.4 }  → tap email field
3. paste { text: "user@example.com" }
4. gesture-tap { x: 0.5, y: 0.55 } → tap password field
5. paste { text: "password123" }
6. gesture-tap { x: 0.5, y: 0.7 }  → tap Login button
7. screenshot → verify home screen appeared

Scroll and navigation

1. screenshot → see list at top
2. gesture-swipe { fromY: 0.7, toY: 0.3 } → scroll down
3. gesture-tap item at visible position → verify auto-screenshot
4. screenshot → verify detail view opened
5. button { button: "back" }
6. screenshot → verify returned to list

Visual behavior check

1. Classify expected result as visual or mixed.
2. Navigate to the stable starting state.
3. screenshot { scale: 1.0, includeImageInContext: false } → save baseline path.
4. describe / debugger-component-tree → find the control and use its returned tap coordinates.
5. gesture-tap → perform the visual behavior under test.
6. screenshot-diff { baselinePath, captureCurrent: true, udid, outputDir } → inspect visible change or stability.
7. describe / debugger-component-tree → verify selected state, label, route, or attributes if relevant.
8. Report combined verdict from expected behavior, visual inspection, diff summary, and structural evidence.

4. Recovery Pattern

  • If screenshot shows loading/transition: wait 500ms, retake with screenshot.
  • If tap misses target: re-run discovery tool (describe / debugger-component-tree), retry once with new coordinates.
  • If a permission dialog or modal is visible: re-run describe first. Stay in screenshot-driven navigation only when the overlay is not exposed reliably, then switch back to describe / debugger-component-tree as soon as it is dismissed.
  • If tap fails twice at same coordinates: stop, re-discover, report if element not found.
  • If a saved flow fails during flow-execute replay (as opposed to live test steps above): follow argent-create-flow skill §10 for structured diagnosis and correction.

Tips

  • Use paste for text entry on iOS — faster and more reliable than key-by-key keyboard. paste is iOS-only; on Android use keyboard instead.
  • Use gesture-custom for long-press context menus (800ms hold).
  • Report clearly: state what you expected, what you saw, and the verdict.
  • Permission modals: try describe first. Use screenshot only as fallback, tap one visible button at a time, and verify with the returned screenshot before continuing.
  • Record for replay: If a tested flow is likely to be repeated, use the argent-create-flow skill to record it as a .yaml script. This lets you replay the entire sequence later with a single flow-execute call instead of re-running each step manually.

Related Skills

SkillWhen to use
argent-device-interactTool usage for tapping, swiping, typing (iOS + Android)
argent-screenshot-diffVisual regression and before/after screenshot comparison
argent-ios-simulator-setupBooting and connecting an iOS simulator
argent-android-emulator-setupBooting and connecting an Android emulator
argent-react-native-app-workflowStarting the app, Metro, build issues
argent-metro-debuggerBreakpoints, console logs, JS evaluation
argent-create-flowRecord a test sequence as a replayable flow

用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价

统计数据

安装量25.7K
评分4.6 / 5.0
版本
更新日期2026年10月23日
对比案例1 组

用户评分

4.6(120)
5
37%
4
43%
3
13%
2
5%
1
2%

为此 Skill 评分

0.0

兼容平台

🤖claude-code

时间线

创建2026年6月9日
最后更新2026年10月23日
🎁 Agent 知识卡片
调研问卷