Android自动化测试的一个总结

2017-02-21(Tue) by chenjia.me

Android 自动化测试

因为这两年都在研究Android安全,不知不觉的积累了许多自动化测试的知识。也是门外汉一步一步的学习过来。今天看到一本书,书名为《腾讯Android自动化测试实战》,发现其很好的整合了我这两年的学习,纠正了我很多概念上的错误。并且从中也获取了一些新的知识。

Android自动化测试,最高的目标就是能让你的脚本正确的完成你想要的测试路径的覆盖。

正如该书所述,对于初学者,至少现在要掌握这些框架,并且知道他们的不同之处。

  • Robotium
  • Monkey
  • UIAutomator
  • Appium

这四个分别代表着测试用例,随机化,跨应用和Server-Client测试模式

每个类别的框架都有很多,就靠自己发现和对比。

获取的新知识

  1. Monkey,Instrumentation和MonkeyRunner是和Android同时开源的。
  2. 自动化框架Selendroid,Espresso,Calabash,Appium 需要自己体会优缺点。选择适合你的
  3. 国内框架BAT都有,BA开源
  4. Robotium原理剖析
  5. 获取logcat logcat -V time >log.txt
  6. 获取流量信息 cat /proc/uid_stat/<UID>/tcp_rcv or tcp_set
  7. ps |grep <package name>获取 PID
  8. 替换手机内的jar,要用dx命令进行转换,dxplatform-tools下,使用命令dx --dex --output=<path> <source.jar>
  9. Linux下替换文件:源码source后直接执行make monkey,输出在out目录下。
  10. UIAutomator支持API>=17,提供类,可以和Robotium合用。
  11. Android 4.2 引入settings命令,参考 Settings,值得学习,很多系统信息和操作不用root就能执行
  12. TCPDUMP+Wireshare
  13. getevent -h获取设备输入接口
  14. 可以尝试加入opencv 来进行图像识别
  15. Spoon框架使用,可以作为日志整理,支持和Robotium合用,可以提高效率
  16. UIAutomator + Dump (我目前常用的方法)
  17. UIAutomator结合Instrumentation模式,在UIAutomator 2.0(2015.3)后开始支持,在extra目录下找到aar文件,解压其中的classes.jar就是jar文件。
  18. 代码覆盖率测试

书上无介绍的知识

  • 绕过Instrumentation签名限制
  • Ant的具体应用
  • adb的应用

Comments