最近在整理Android自动化测试的相关资料,大体上把一些知识点梳理了,这里做一个简单的分享!
Android里面测试相关的工具和框架太多了。你应该从以下几个方面入手。
编程语言的选择
如果你要学习的是Appium的话,当然它是移动自动化测试领域最流主流的工具之一,同时支持iOS和Android两大平台,最主要是还支持多种编程语言(Java/Python/C#/JavaScript…等),这是它能得到广泛使用的原因之一。如果你只想做APP UI层的自动化测试,那么,你完全可以使用自己熟悉的编程语言来做Appium自动化测试。
我发现用Python + Appium的人非常多。这主要是因为Python简单,在测试圈有广泛的应用基础。不过,这里我推荐使用Java,虽然我个人最熟悉的是Python。这里选择Java的主要原因是因为,我对Android自动化测试的学习不想只停留在UI层,我还想知道Android的单元测试怎么做,怎么调用接口?甚至是CPU,内存的调度是怎样的。
所以,我需要知道Android应用是怎么被开发出来的。Android应用的开发目前只能用Java,这就是我选择Java的理由。
从哪里开始入手
知道了我的选择,肯定也知道我会从哪里下手了。先不要着急去搭建Appium/Robotium这样的自动化能测试环境。建议先把Android开发环境搭建起来,参考Android官方文档,把上面的一个demo跑起来。这样你就会了解到Android开发的基本流程,并认识到你要操作的按钮、输入框等其实是由布局文件定义的。对Android开发越熟悉,自动化测试才能做得更好。
Android测试框架
这就是Android测试相关的一些工具和框架。看到这些时我内心是崩溃! 这么多怎么学?它们都是啥,我到底该学啥?
官方文档中测试库支持主要介绍了AndroidJUnitRunner、Espresso 和 UI Automator。
AndroidJUnitRunner类是一个JUnit运行器,可以在你设备上运行JUnit3或者JUnit4风格的测试代码。并且同时支持Espresso 和UIAutomator测试运行。所以,AndroidJUnitRunner不是一个单独的测试工具,它只是一个运行Junit单元测试的组件。(其实,这里又隐含了一个前提条件,你需要知道Junit单元测试框架。)
Espresso是一个非常好的白盒风格的自动化测试框架,它与测试目标运行在同一个APP下。你可以把Espresso看作是Android的单元测试框架。
UI Automator测试框架非常适合写黑盒box-style自动化测试,测试代码不依赖于目标应用程序的内部实现细节。所以,UI Automator是Android的UI测试框架。
先把以上三个工具搞明白,那么你就可以做Android 单元/UI自动化测试了。
Appium学习
为什么还要学习Appium?因为它流行嘛,支持多平台(Android/iOS)、多语言、混合应用(原生代码和Web内容交互);社区活跃,资料丰富。出门打怪升级必备技能。
Appium的学习分三部分:
* 编程语言(Java/Python/Ruby...)
* Appium API(Android APP界面元素定位与操作)
* 单元测试框架(测试用例的组织与执行,以及生成测试报告)
其实,所有自动化测试技术的学习都是一样的。把Appium换成Selenium,那么就是Web UI自动化测试的学习内容了。我们应该是花费更多力气学好的是编程语言和单元测试框架。这两个搞定了,再学习新的领域的自动化技术才能事半功倍。
更多测试 文章搜索公众号 “测试圈TC”