CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
软件测试与 QA 入门/课时/移动端测试
RawBlame
课时目录12 节

软件测试与 QA 入门

  1. 01QA 是什么
  2. 02流程与方法论
  3. 03手工测试
  4. 04功能测试类型
  5. 05Web UI 自动化
  6. 06API 测试
  7. 07移动端测试
  8. 08性能与负载
  9. 09安全测试
  10. 10测试管理与 CI
  11. 11非功能测试
  12. 12综合练习

移动端测试

Appium、Espresso、Detox。

30 分钟

移动端测试

移动应用面临 多设备、多 OS 版本、网络切换、权限弹窗 等 Web 少有的复杂度。对照 /roadmaps/qa「Mobile Testing」节点,本课介绍 Appium、Espresso 与 Detox 的分工与选型。

学习目标

  • 理解原生、混合、跨平台 App 的测试差异
  • 区分 Appium(跨平台)与 Espresso/Detox(平台原生)的适用场景
  • 掌握移动端测试的环境、设备矩阵与稳定性要点
  • 将移动端测试思维对照本站 Web 测试实践

核心概念

测试分层

层级AndroidiOS说明
单元JUnit + RobolectricXCTest逻辑、ViewModel
组件/UIEspressoXCUITest单屏交互
E2EAppiumAppium / Detox跨 App 流程

Detox 面向 React Native;Espresso 同步等待 UI,比裸 Appium 更稳。

Appium 基础

DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("platformName", "Android");
caps.setCapability("app", "/path/to/app.apk");
caps.setCapability("automationName", "UiAutomator2");

WebDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723"), caps);
driver.findElement(AppiumBy.accessibilityId("login-button")).click();
  • 需 Appium Server + 模拟器/真机
  • 优先 accessibility id,避免 XPath 深嵌套

设备矩阵与专项

  • 兼容性:屏幕尺寸、OS 版本、厂商 ROM
  • 网络:弱网、离线、切换 Wi-Fi/4G
  • 权限:相机、定位、通知首次授权流程
  • 生命周期:后台恢复、杀进程、低内存

与 Web 测试对照

移动端 E2E 更 flaky、更慢;应像 Web 一样遵守金字塔:多单元、少 E2E。

与 testing-essentials/Spring 对照

CodeRoadMap 主线是 Java Spring + React Web,无原生 App;移动端测试技能用于:

Web(本站)Mobile 类比
Playwright E2EAppium / Detox
Vitest 组件测试Espresso / XCTest UI
MockMvc API测 App 调用的同一 REST API(qa-api)

后端 API 测试可复用:Spring Boot 接口通过 REST Assured 验证后,Android/iOS 客户端只需测 。扩展 iOS 见 。

展示与本地逻辑
ios-essentials

练习

  • 为假想「CodeRoadMap 移动 App」写 3 条 E2E charter(登录、浏览 track、离线缓存)
  • 对比 Appium 与 Espresso 在 Android 上的架构差异
  • 列出移动端回归测试的设备矩阵最小集(OS × 屏幕)

小结

移动测试重设备与环境;Appium 跨平台,Espresso/Detox 平台内更稳。 下一课进入性能与负载:JMeter、k6 与 Gatling。

加载本节练习…
← 上一课API 测试下一课 →性能与负载