Android自动化测试的一个总结
2017-02-21(二) by chenjia.meAndroid 自动化测试
因为这两年都在研究Android安全,不知不觉的积累了许多自动化测试的知识。也是门外汉一步一步的学习过来。今天看到一本书,书名为《腾讯Android自动化测试实战》,发现其很好的整合了我这两年的学习,纠正了我很多概念上的错误。并且从中也获取了一些新的知识。
Android自动化测试,最高的目标就是能让你的脚本正确的完成你想要的测试路径的覆盖。
正如该书所述,对于初学者,至少现在要掌握这些框架,并且知道他们的不同之处。
- Robotium
- Monkey
- UIAutomator
- Appium
这四个分别代表着测试用例,随机化,跨应用和Server-Client测试模式
每个类别的框架都有很多,就靠自己发现和对比。
获取的新知识
- Monkey,Instrumentation和MonkeyRunner是和Android同时开源的。
- 自动化框架Selendroid,Espresso,Calabash,Appium 需要自己体会优缺点。选择适合你的
- 国内框架BAT都有,BA开源
- Robotium原理剖析
- 获取logcat
logcat -V time >log.txt
- 获取流量信息
cat /proc/uid_stat/<UID>/tcp_rcv
ortcp_set
ps |grep <package name>
获取 PID- 替换手机内的jar,要用
dx
命令进行转换,dx
在platform-tools
下,使用命令dx --dex --output=<path> <source.jar>
- Linux下替换文件:源码source后直接执行
make monkey
,输出在out
目录下。 - UIAutomator支持API>=17,提供类,可以和Robotium合用。
- Android 4.2 引入
settings
命令,参考 Settings,值得学习,很多系统信息和操作不用root就能执行 - TCPDUMP+Wireshare
getevent -h
获取设备输入接口- 可以尝试加入
opencv
来进行图像识别 - Spoon框架使用,可以作为日志整理,支持和Robotium合用,可以提高效率
- UIAutomator + Dump (我目前常用的方法)
- UIAutomator结合Instrumentation模式,在UIAutomator 2.0(2015.3)后开始支持,在
extra
目录下找到aar文件,解压其中的classes.jar
就是jar文件。 - 代码覆盖率测试
书上无介绍的知识
- 绕过Instrumentation签名限制
- Ant的具体应用
- adb的应用