Android自动化测试学习路线
最近在整理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”
Android自动化测试学习路线的更多相关文章
- 最实用的Android开发学习路线分享
Android开发学习路线分享.Android发展主导移动互联发展进程,在热门行业来说,Android开发堪称火爆,但是,虽然Android有着自身种种优势,但对开发者的专业性要求也是极高,这种要求随 ...
- Android开发学习路线的七个阶段和步骤
Android开发学习路线的七个阶段和步骤 Android学习参考路线 第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环. 2.String和St ...
- Robotium原理初步--Android自动化测试学习历程
章节:自动化基础篇——Robotium原理初步(第四讲) 主要讲解内容与笔记: 一.基于控件 1.spinner——下拉菜单 2.TabHost——左右滑动选择菜单,类似电话本 3.Gallery—— ...
- 百度Cafe原理--Android自动化测试学习历程
主要讲解内容及笔记: 一.Cafe原理 Cafe是一款自动化测试框架,解决问题:跨进程测试.快速深度测试 官网:http://baiduqa.github.io/Cafe/ Cafe provides ...
- Appium原理初步--Android自动化测试学习历程
章节:自动化基础篇——Appium原理初步(第七讲) 本期关键词: Appium.跨语言跨平台.Bootstrap 主要讲解内容及笔记: 一.what is appium 一种封装了uiautomat ...
- Selenium原理初步--Android自动化测试学习历程
章节:自动化基础篇——Selenium原理初步(第五讲) 注:其实所有的东西都是应该先去用,但是工具基本都一样,底层都是用的最基础的内容实现的,测试应该做的是: (1)熟练使用工具,了解各个工具的利弊 ...
- 自动化预备知识上&&下--Android自动化测试学习历程
章节:自动化基础篇——自动化预备知识上&&下 主要讲解内容及笔记: 一.需要具备的能力: 测试一年,编程一年,熟悉并掌握业界自动化测试工具(monkey--压力测试.monkeyrun ...
- Android-Junit-Report测试报告生成——Android自动化测试学习历程
视频地址: http://www.chuanke.com/v1983382-135467-384869.html 这个内容其实已经在用了,我在上一篇文章robotium—只有apk文件的测试中已经讲过 ...
- (2018干货系列十)最新android开发学习路线整合
怎么学Android Android是一个以Linux为基础的半开源操作系统,主要用于移动设备,由Google和开放手持设备联盟开发与领导.据2011年初数据显示仅正式上市两年的操作系统Android ...
随机推荐
- JavaScript面向对象编程指南(五) 原型
第5章 原型 5.1 原型属性 function f(a,b){ return a*b; }; // length 属性 f.length; // constructor 构造属性 f.constru ...
- ASP.NET MVC Json的序列化和反序列化
1.利用js进行序列化成字符串和反序列化 var personObj = {name:"Tom",age:16}; // 利用JS序列化成字符串 var personStr = J ...
- Android为TV端助力 不需要Socket的跨进程推送消息AIDL!
上篇介绍了跨进程实时通讯http://www.cnblogs.com/xiaoxiaing/p/5818161.html 但是他有个缺点就是服务端无法推送消息给客户端,今天这篇文章主要说的就是服务器推 ...
- Testlink1.9.17使用方法(第八章 测试执行/报告BUG)
第八章 测试执行/报告BUG QQ群交流:585499566 把他们放到一起,是因为报告bug是在执行的过程中同步进行的——即执行用例的过程中一旦发现bug我们需要立即把其报告到我们的bug管理系统r ...
- (后台)SQL Server 代理(已禁用代理 XP) 怎么解决(转)
百度知道搜索的答案: 在SQL Server Management Studio中连接到SQL Server实例后,会显示“SQL Server 代理”节点.如果当前该实例的Agent服务没有启动,“ ...
- Java:字节流和字符流(输入流和输出流)
本文内容: 什么是流 字节流 字符流 首发日期:2018-07-24 什么是流 流是个抽象的概念,是对输入输出设备的抽象,输入流可以看作一个输入通道,输出流可以看作一个输出通道. 输入流是相对程序而言 ...
- SQL SERVER中LIKE使用变量类型不同输出结果不一致解惑
一同事在写脚本时,遇到一个关于LIKE里面使用不同的变量类型导致查询结果不一致的问题,因为这个问题被不同的人问过好几次,索性总结一下,免得每次都要解释一遍,直接丢一篇博客岂不是更方便!其实看似有点让人 ...
- springmvc复习笔记----Restful 风格,PathVariable获取 Url实例
结构 包与之前相同 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&qu ...
- Oracle根据已有表的数据建立新表
需要保证create的表内的字段与select的表一致. create table 表名(字段名,字段名,字段名,字段名,字段名,字段名) as select * from 表名
- Android 5.0 版本 USB 调试模式打开方法
Android 4.2 版本 USB 调试模式打开方法 1. 进入“设置”页面,点击“关于平板电脑”.见下图红色方框. 2. 疯狂点击“版本号”,见下图红色方框,直到出现“您现在处于开发者模式!” ...