持续集成的探索之 Android
2017年2月15日 · 370 字 · 1 分钟 · CI Android
本文主要是以 Android 项目进行的自动化测试。
注:文中提到的例子地址是 https://github.com/CarlisleChan/CIPractice
另外 android 的自动化测试框架很多,这里只介绍一些常用的。
UI Automation Framework
- UIAutomator
- Espresso
- Monkey
给出一个 Monkey 参考
adb shell monkey -p com.tencent.mm -s 100 --throttle 10 --ignore-crashes --ignore-timeouts --monitor-native-crashes --pct-appswitch 30 --pct-majornav 20 --pct-nav 20 --pct-touch 20 --pct-motion 10 -v -v -v 100 > monkey_log.txt
收集 crash 和 ANR 等错误一般的做法就是去 log 日志中搜索对应字段,其实可以使用脚本处理过滤,输出方便观察的日志,同时也可以做到统计次数等。
Unit Test Framework
- Robolectric
- Powermock
- Mockito
- JUnit
其他专项指标测试
1. 静态代码检查
请参看例子中的配置,执行对应脚本即可。
- checkstyle
- lint
- findbugs
- pmd
- infer
2. apk info
dexcount
在项目根目录的 build.gradle 中添加 classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.5.2'
在 app 项目的 build.gradle 中添加 apply plugin: 'com.getkeepsafe.dexcount'
,执行构建动作即可看到分析结果。
apk size
在终端执行以下命令即可
mkdir -p app/build/outputs/apksize
OUTFILE=app/build/outputs/apksize/result.csv
echo filesize > $OUTFILE
# yep, that's for Mac. Use "stat -c %s" instead on Linux
stat -f %z app/build/outputs/apk/app-debug.apk >> $OUTFILE
3. 内存泄漏检查
4. 启动速度检测
5. APK 包分析
6. 安全扫描
7. 代码覆盖率
使用的是 jacoco
资源:
google 官方测试库的使用 https://google.github.io/android-testing-support-library/
参考
- http://www.codingtrip.com/2016/05/19/0008_%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E5%AE%9E%E8%B7%B5%EF%BC%88android%EF%BC%89/
- https://gold.xitu.io/entry/56810f8900b0cff56c4f42e5
- https://medium.com/@mreichelt/android-apk-size-dexcount-charts-on-jenkins-ae518e961818#.ldm1ccv9o
- http://www.jianshu.com/p/410f286404be#
- https://google.github.io/android-testing-support-library/