mcpField
A
appium

appium

github.com/partme-ai测试与质量716157 次安装3 周前更新
代码仓库

关于 appium

appium 是面向原生及混合 Android、iOS 应用自动化测试开发者的技能,涵盖能力配置、元素定位、设备交互和 CI 执行实践。

主要功能

  1. 01Android 和 iOS 测试流程
  2. 02Desired capabilities 示例
  3. 03元素定位策略
  4. 04手势与设备交互指南
  5. 05CI 执行实践

适用场景

  1. 01自动化测试原生移动应用
  2. 02测试混合 Android 或 iOS 应用
  3. 03选择元素定位方式和等待策略
  4. 04在 CI 中运行移动测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/partme-ai/full-stack-skills --skill appium

安装后在 Claude Code 中输入/appium确认已加载。

附带文件LICENSE.txt

详细介绍

适用场景

当用户希望完成以下任务时,使用此技能:

  • 为 Android 和 iOS 原生或混合移动应用编写自动化测试
  • 使用 accessibility ID、ID、XPath 或类名定位元素
  • 执行手势(点击、滑动、滚动)并处理设备交互
  • 为不同设备和平台配置所需能力
  • 将 Appium 测试集成到 CI/CD 管道(Jenkins、GitHub Actions)

如何使用此技能

工作流
  1. 设置环境:安装 Appium Server、驱动程序(Android 使用 UiAutomator2,iOS 使用 XCUITest)和语言绑定
  2. 定义能力:指定设备名称、平台、应用路径和自动化引擎
  3. 编写测试脚本:定位元素、执行操作并断言结果
  4. 在 CI 中运行:通过并行执行和报告,在真实设备或模拟器上运行
1. 所需能力
desired_caps = {
    "platformName": "Android",
    "deviceName": "Pixel_6",
    "app": "/path/to/app.apk",
    "automationName": "UiAutomator2",
    "noReset": True,
}
2. 测试示例(Python)
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
wait = WebDriverWait(driver, 10)

# Login flow
username = wait.until(EC.presence_of_element_located((AppiumBy.ACCESSIBILITY_ID, "username")))
username.send_keys("testuser")

driver.find_element(AppiumBy.ACCESSIBILITY_ID, "password").send_keys("secret")
driver.find_element(AppiumBy.ACCESSIBILITY_ID, "login-button").click()

# Assert
welcome = wait.until(EC.presence_of_element_located((AppiumBy.ACCESSIBILITY_ID, "welcome")))
assert welcome.is_displayed()

driver.quit()
3. 测试示例(Java)
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("platformName", "Android");
caps.setCapability("deviceName", "Pixel_6");
caps.setCapability("app", "/path/to/app.apk");
caps.setCapability("automationName", "UiAutomator2");

AndroidDriver driver = new AndroidDriver(new URL("http://localhost:4723/wd/hub"), caps);
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));

driver.findElement(AppiumBy.accessibilityId("username")).sendKeys("testuser");
driver.findElement(AppiumBy.accessibilityId("login-button")).click();
assertTrue(wait.until(ExpectedConditions.visibilityOfElementLocated(AppiumBy.accessibilityId("welcome"))).isDisplayed());

driver.quit();

最佳实践

  • 优先使用 accessibility ID 或资源 ID 定位元素;避免脆弱的 XPath 表达式
  • 使用显式等待和重试逻辑;失败时捕获屏幕截图和日志
  • 使用设备矩阵,在多种设备和 OS 版本上进行测试
  • 将敏感信息(应用路径、凭据)存储在环境变量中
  • 使用 Appium 内置的手势 API 执行滑动、滚动和长按操作

资源

关键词

appium、移动自动化、Android、iOS、UiAutomator2、XCUITest、accessibility ID、所需能力、跨平台、UI 测试、移动测试

评论

支持 Markdown