Android自动化测试之路——技术准备

在接触Android自动化测试已有一段时间,觉得有必要做一些总结,以便更明确的目标。

首先第一部分,我觉得有必要谈一谈,所需要用到的哪些技术,以下总结是平常工作中我经常会用到的:

第一、AndroidSDK tools,当然是它,google的SDK工具。比如:adb ddms lint hierarchyviewer uiautomatorviewer等。

Adb 不用多说了,桥接工具。无论你是开发、调试、测试都需要首先进行adb连接。这里特别提一下,有可能会遇到需要无线连接的需求,此时就需要adbWirlness工具,打开服务后,运行adb connect  <your device IP>,然后就可以进行无线操作了。

另外,就是Android linux命令,比如am  pm  dumpsys 

第二、了解Android四大组件。也是明确我们测试的对象。

熟悉Activity的生命周期,各种控件的测试方法;熟悉service的两种生命周期;了解Content provider的使用方法;了解广播的的两种注册方法,如何收听广播。

第三、反签名 反编译

反签名适用无源码的测试工程,让测试工程与被测工程的签名保持一致。要分析apk就得用到反编译。

第四、跨进程 需要了解下单app如何跨进程,多app如何跨进程的原理。

这是app测试中谈论比较多的话题,如果用google自己的工具就无需自己考虑,如果用到instrumentation或robotium来测试的话,需要考虑如何跨进程

第五、多线程  这个好理解,activity运行在主线程中,如果要执行一些耗时操作而不能影响主线程的,只有通过Thread 或Android的handler 这个用的比较多

第六、java反射  

用途因你的测试框架  或者产品而异。google出于安全考虑,一大部分api都是被hide起来的,要使用的话反射应该是最好的选择;另外如果无源码测试下,开发的产品有许多派生的对象,要测试它们,就需要用到反射。 

 

后面有空会更新具体测试的细节,比如具体控件的测试方法、service测试、content的测试、NDK测试等。

很久没打这么字,有说得不好不对的地方望请指正。欢迎大家一起交流!

 

posted @ 2014-11-24 10:48  xiao.kkp  阅读(225)  评论(0编辑  收藏  举报