移动应用测试自动化实践教程(适用于完全零基础初学者)
开篇:什么是移动应用测试自动化?

你有没有遇到过这种情况:你开发了一个App,自己测了好久都没问题。结果上线后,用户一用就发现各种bug?这个时候你会很郁闷——如果能有“机器”帮我自动测试该多好!
这就是我们今天要学习的:移动应用测试自动化(Mobile App Test Automation)。
简单来说,就是用写代码的方式,让手机或模拟器自动执行一系列操作(比如点击按钮、输入文字、切换页面等),并检查App是否按照预期运行。这样可以大大减少重复的人工测试,提高效率和质量。
本篇文章的目标是带大家从0开始,掌握基本的移动端自动化测试技巧,并完成一个完整的项目练习。即使你是编程小白也没关系,我们会一步步来讲解。
环境准备
要开始进行自动化测试,我们需要搭建好以下工具:
第一步:安装 Java JDK(Java Development Kit)
Android 应用是基于 Java 或 Kotlin 编写的,所以自动化测试也离不开 Java。
- 下载地址:Oracle JDK(或者使用 OpenJDK)
- 安装完成后在命令行输入:
java -version
确认是否输出版本号信息。
第二步:安装 Android Studio
这是官方推荐的 Android 开发和测试工具。
- 下载地址:https://developer.android.com/studio
- 安装过程很简单,一路下一步即可。
- 打开 Android Studio -> 创建虚拟设备(AVD)用于测试(如果你没有真实手机的话)
第三步:安装 Appium
Appium 是一个开源的自动化测试框架,支持 iOS 和 Android 平台。
- 下载地址:https://github.com/appium/appium-desktop/releases
- 安装完成后打开 Appium Desktop,确保服务正常启动。
第四步:安装 Node.js
Appium 基于 Node.js 构建,所以我们需要安装它。
- 下载地址:https://nodejs.org
- 安装完成后在命令行输入:
node -v
npm -v
第五步:安装 Appium 的客户端库和依赖
我们使用 Python 进行测试脚本编写。
- 安装 Python(推荐 3.8+)
- 在终端/命令行输入:
pip install Appium-Python-Client
小贴士:
🚨 初学者常见问题:
问:Python 版本不一致怎么办?
答:建议使用pyenv或者virtualenv来管理环境版本,避免冲突。
问:电脑跑不动模拟器怎么办?
答:可连接真实手机进行调试(USB调试模式需开启)。稍后我们会讲到。
核心概念解析(通俗易懂)

自动化测试涉及一些专业术语,我们用生活中的例子来类比理解:
| 概念 | 生活举例 | 说明 |
|---|---|---|
| 被测应用 | 你要测试的App | 比如我们开发的计算器App |
| 测试脚本 | 写好的程序指令 | 类似说明书里的操作指南 |
| 测试驱动工具 | Appium | 相当于遥控器,控制手机操作 |
| 断言(Assertion) | 检查实际结果是否符合预期 | 比如“点击加法按钮后,结果是不是对的?” |
| 元素定位器(Locator) | 寻找App界面上控件的方式 | 如按钮、输入框等,就像你在超市里找商品 |
我们通过写一段代码,让Appium去“指挥”你的手机完成测试任务。下面我们会结合示例更详细地解释。
实战项目:用 Appium + Python 自动化测试一个计算器 App

我们的目标是:自动打开一个计算器App,输入两个数字,点击加法按钮,验证结果显示是否正确。
第一步:准备测试对象
你可以选择:
- 使用 Android 自带的计算器App
- 使用自己的简易计算器App(源码可下载)
为了方便演示,这里我们使用系统自带的 Calculator App。
第二步:编写自动化测试脚本
创建一个名为 test_calculator.py 的文件,内容如下:
from appium import webdriver
import time
# 设置手机的基本配置参数
desired_caps = {
'platformName': 'Android', # 平台名称
'deviceName': 'emulator-5554', # 设备名称(可用adb devices 查看)
'appPackage': 'com.android.calculator2', # 被测App的包名
'appActivity': '.Calculator', # 启动页
'noReset': True # 防止每次运行App都被重置
}
# 启动 Appium Server 后,连接手机设备
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 添加等待时间,让界面加载完成
time.sleep(2)
# 找到按钮并点击:数字"5"
driver.find_element_by_accessibility_id("5").click()
# 点击加法按钮 "+"
driver.find_element_by_accessibility_id("plus").click()
# 点击数字"3"
driver.find_element_by_accessibility_id("3").click()
# 点击等于按钮 "="
driver.find_element_by_accessibility_id("equals").click()
# 获取显示结果(通常是一个文本框)
result = driver.find_element_by_id("com.android.calculator2:id/result").text
# 断言判断结果是否正确
expected_result = "8"
assert result == expected_result, f"Expected {expected_result}, but got {result}"
print("✅ 测试通过,结果正确!")
# 关闭App
driver.quit()
🧪 注意事项:
- 如果你不知道如何获取控件 ID 或 Accessibility ID,请参考下一节的方法。
- 上面的
id="com.android.calculator2:id/result"是根据真机抓取的结果,不同设备可能略有不同。
第三步:查看界面元素信息(获取控件ID)
使用 UI Automator Viewer 工具可以帮助我们找到界面元素的属性(包括ID、class、resource-id等)。
步骤:
- 打开命令行,输入:
uiautomatorviewer - 出现 UI Automator Viewer 界面后,点击左上角按钮截图当前设备界面。
- 将鼠标悬停在任意元素上,即可看到它的属性(包括
resource-id等)。
这样你就能知道“结果框”的 ID 是什么啦!
第四步:运行测试脚本
确保 Appium 服务已经在前台运行,然后执行:
python test_calculator.py
如果一切顺利,你会看到:
- 手机自动打开了计算器;
- 自动完成了输入、计算;
- 控制台输出:✅ 测试通过,结果正确!
常见问题解答(FAQ)

🔹 Q1:为什么找不到按钮?
答:可能是元素识别方式不对。试试换一种定位方法,例如:
# 通过资源ID定位
driver.find_element_by_id("com.android.calculator2:id/digit_5").click()
# 通过XPath(比较灵活)
driver.find_element_by_xpath("//android.widget.Button[@text='5']").click()
🔹 Q2:运行脚本报错:Could not start a new session
答:
- Appium 是否已启动?
- 设备连接是否正常(可用
adb devices检查)? - 包名或 Activity 是否写错了?
🔹 Q3:测试速度太慢怎么办?
答:可以用 implicitly_wait() 代替 time.sleep(),让程序智能等待元素出现:
driver.implicitly_wait(10) # 最多等10秒
学习建议(下一步怎么学?)
恭喜你已经完成了一个完整的自动化测试脚本!
接下来你可以沿着以下几个方向继续深入:
📌 方向一:进阶技能
- ✅ 学习多种元素定位方式(ID、XPath、AccessibilityId、class name 等)
- ✅ 使用 Page Object 模式设计结构化测试脚本
- ✅ 引入数据驱动测试(DDT),用 Excel 表格控制输入数据
- ✅ 结合测试框架(如 pytest),组织多个测试用例
📌 方向二:扩展平台
- ❗ 学习 iOS 自动化测试(需要 Mac)
- 🚀 支持云端测试(如 BrowserStack、SauceLabs)
📌 方向三:实战演练
- 👷 自己做一个简单的 App 并为其写测试脚本
- 🧪 参与开源项目或实习项目的测试自动化工作
总结
本文从零开始,带你了解了什么是移动应用自动化测试,搭建了必要的开发环境,详细讲解了几个关键概念,并完成了一个计算器App的自动化测试实战案例。
虽然看起来步骤不少,但只要跟着一步一步来,你就一定能够上手这项技术。记住一句话:
“不是你不会编程,只是还没开始写第一行代码。”
现在你已经有了第一行代码,那就大胆迈出去吧!
📚 推荐学习资料:
- Appium 官方文档
- Android Testing Guide
- 《Appium自动化测试实战》电子书(可搜索获取)
- Python + Appium 视频课程(B站、慕课网等平台均有)
祝你在自动化测试之路上越走越远!如有疑问欢迎留言交流 😊

评论 0