一、移动端自动化基础
1. 大厂都在做什么
《孙子·谋攻》曰:“知己知彼,百战不殆”。大厂是业界的风向标,我们个人不知道行业的风向标时,大厂就是我们的灯塔。最近看了罗胖的2020《时间的朋友》的演讲中,一句话令我印象深刻 “人生不是在每个关头都明确地知道自己该做什么选择。那怎么办?跟上这个时代,跟上这群人。”
BAT作为中国互联网的 “灯塔” 公司,看看他们在自动化测试方面有哪些 “动作”:
-
测试框架
阿里 Macaca 腾讯开源微信小程序自动化测试工具 百度内部的 Cafe 框架 Google:Espresso、UI Automator Ebay:Selendroid Walmart:Robotium Sauce Labs:Appium ThoughtWorks:Selenium 复制代码
-
测试平台
阿里 MQC 腾讯 WeTest 百度 MTC Testin 复制代码
2.自动化测试现状
手工测试非常有用,但仅手工测试是远远不够的,手工测试+自动化测试才是xiangmu快速迭代的根基,但是手工测试与自动化测试占比与公司业务类型、发展阶段和行业技术进步相关。总的来说:现阶段的 IT 行业的矛盾就是日益增长的快速迭代需求与落后的测试生产力之间的矛盾。
-
2.1 UI 自动化测试的瓶颈
技术成本高: 人力成本高:优秀测试开发工程师难招 技术门槛高:测试工程师自动化能力不足 维护成本高: 复用率不高:UI 和业务流程变更是最主要变更 稳定性不足:容易被干扰,执行慢 常见行业错误观点: UI 自动化测试无用论 UI 自动化测试就是模拟人工点点点 复制代码
-
2.2 UI自动化应用场景
冒烟测试自动化:提测之前自动断言提测质量,提供准入参考。 功能测试自动化:辅助 QA 与 测试工程师的快速验证。 验收测试自动化:兼容性测试等。 移动端性能专项测试自动化:性能、卡顿、健壮性测试、竞品分析。 复制代码
-
2.3 如何合理使用 UI 自动化
使用分层测试策略,控制 UI 自动化测试规模: 少数核心用例交给自动化测试 大部分的基础回归测试交给自动遍历 新功能交给人工测试 技术改进方案: 良好的维护模型:PageObject、数据驱动 更好的框架支持:增加 watch、智能等待、失败重试等机制 复制代码
-
2.4 如何高效落地自动化
学习方向: 了解待测产品和平台:Android、IOS、APP 精通最好的测试框架:Appium、UI Automator、WebDriverAgent 掌握自动化测试经验:PageObject、稳定性提升、数据驱动等 达到结果: 一天搞定一款 APP 的自动化测试脚手架 一天完成单个功能的业务测试自动化用例集合 N 周内搞定公司的 APP 自动化测试 复制代码
-
2.5 UI 自动化分类
Web 自动化:Selenium APP 自动化:Appium GUI 自动化:Windows、Mac 微信小程序自动化:APP + web 测试技术的外延形态 更多平台:智能设备、机器人、工业APP 复制代码
3. 自动化测试技术体系
-
3.1 UI 自动化测试框架及引擎
Appium 跨语言:Java、Python、Node.js等 跨平台:Android、IOS、Windows、Mac 底层多引擎可切换 生态丰富、社区强大 IOS: KIF、WDA、XCTest Android: Robotium、UI Automator 特色框架: calabash、Macaca、ATX 复制代码
APP 多端架构与自动化
3.2 移动App迭代及分层测试模型 移动 App 快速迭代模型
移动 APP 分层测试
-
3.3 自动遍历工具及价值
什么是自动遍历呢?
以自动化的方式对 App 进行充分的功能遍历以探索 bug 复制代码
自动化遍历的价值:
降低自动化测试维护成本,可替代 80% 的自动化测试 实现新功能的探索 实现老功能的回归 用途:多设备兼容测试、自动化专项测试 复制代码
大厂常见的遍历工具与技术
Andorid 原生 Monkey 百度 SmartMonkey 腾讯 New Monkey 阿里 Macaca 的 NoSomke Google 的 APP Crawler TesterHome 社区 seveniruby Appcrawler 复制代码
4. Android 自动化前提依赖
Android SDK:Android Studio 可辅助安装
模拟器:
Android Studio 自带的 Emulator
Genymotion、网易MuMu、BlueStacks
小米、华为、ViVo、OPPO真机
复制代码
5. Adb shell常用命令
5.1 关于网易MuMu连接
# 1. 首先打开网易 MuMu 模拟器
# 2. 下载 [adb shell 工具](https://developer.android.com/studio/releases/platform-tools.html)
# 3. 安装 adb shell,解压后复制 adb shell 的目录,将该目录配置到环境变量的 Path 中
# 打开 cmd,输入以下命令看是否安装配置成功
adb shell
# 4. 连接网易 MuMu 模拟器,看到root@x86:/ #,恭喜你连接成功
adb connect 127.0.0.1:7555
adb shell
复制代码
5.2 获取 App 的信息
# app信息
# 获取当前界面元素
adb shell dumpsys activity top
# 获取任务列表
adb shell dumpsys activity activities
# App 入口
adb logcat | grep -i displayed
aapt dump badging moblike.apk | grep lanunchable-activity
apkanalyzer 最新版本的 sdk 中才有
# 启动应用
adb shell am start -W -n com.xueqiu.android/.view.WelocmeActivityAlias -S
复制代码
5.3 Android 常用命令
# 查看设备
adb devices
# 关闭 adb 的后台进程
adb kill-server
# 让 Android 设备脱离 USB 线的 TCP 连接方式
adb tcpip 127.0.0.1:7555
# 连接开启了 TCP 连接方式的 Android 设备
adb connect 127.0.0.1:7555
# 查看 Android 日志查看
adb logcat
# 收集日志数据,用于后续的分析,比如耗电量
adb bugreport
复制代码
6.adb shell 常用命令
adb shell 本身就是一个 Linux 的 shell,可以调用 Android 内置命令
学习安排上
作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些软件自动化测试的学习资源,希望能给你前进的路上带来帮助。【保证100%免费】
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。