Android自动化测试
安卓客户端测试的一些主流技术。
官方支持
- testing-samples: 一些示例项目
Espresso
UI测试支持,Android Support库的一部分。 需要App源码.
- 优点:控件支持最丰富,定制型强。
- 对应的: 需要安卓控件的良好设计MVP,对客户端代码的熟悉。安卓开发的最爱。
注: 最后发布于 @ 2018-12-13
参考
UIAutomator2
支持系统操作和跨应用界面操作,适合黑盒自动化. 适用于Android 4.3+ (不需要App源码).
基于Accessibility服务
可以对第三方App进行测试,获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作
mobly
- mobly:Python实现的负载E2E测试工具
App Crawler
自动测试应用(遍历模拟点击、滑动等行为),不需要额外的开发。支持配置登录等。
可以用来测试崩溃、显示问题、性能问题。
用法:
# 测试已安装应用
java -jar crawl_launcher.jar --app-package-name com.xulizhao.demo --android-sdk D:\opt\Android\sdk --timeout-sec 180 --ui-automator-mode
# 指定apk自动安装
java -jar crawl_launcher.jar --apk-file path/to/my/app.apk --android-sdk=D:\opt\Android\sdk
# 选项 --device-serial-code 可以指定设备
截屏测试
WindowManagerGlobal + imageMagick
框架
- Airtest / 文档:网易出品,基于图形识别,跨平台[python]
- AndroidViewClient:Python实现的自动化增强工具
- Test Butler: Lindedin的稳定测试
- Uiautomator2 :Uiautomator2 的Python实现
- Robolectric: 安卓单元测试
STF
- STF设备工厂: Node.JS实现的web,远程管理众多设备
- PoC for STF deployment on a single machine
# 启动
docker-compose up -d --build
# 停止
docker-compose down
手动测试辅助
应用双开
- 华为-隐私空间
- 小米-手机分身
- 三星-安全文件夹
- 应用支持:360分身大师
参考
- f-droid: 开源apk下载