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 ...
随机推荐
- Visualization of Detail Point Set by Local Algebraic Sphere Fitting
Refers to Dynamic Sampling and Rendering of Algebraic Point Set Surfaces Growing Least Squares for t ...
- 自己动手写Android插件化框架,让老板对你刮目相看
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由达文西发表于云+社区专栏 最近在工作中接触到了Android插件内的开发,发现自己这种技术还缺乏最基本的了解,以至于在一些基本问题上浪 ...
- (后端)mybatis中使用Java8的日期LocalDate、LocalDateTime
原文地址:https://blog.csdn.net/weixin_38553453/article/details/75050632 MyBatis的型处理器是属性“createdtime参数映射为 ...
- (python)面向对象
一.面向对象概述 要了解面向对象,就需要先了解面向过程的概念,那么什么是面向过程编程呢?最具代表性的就是C语言了,所谓面向过程编程就是在做一件事的时候,需要按步骤进行,第一步干什么,第二步干什么,这种 ...
- mysql练习----Using Null
teacher id dept name phone mobile 101 1 Shrivell 2753 07986 555 1234 102 1 Throd 2754 07122 555 1920 ...
- spring4笔记----报错publicid systemid之间要有空格的解决方法
<?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www. ...
- HBase快速安装
配置hbase-env.sh #JAVA_HOME 需要Java 1.7+ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ # Java CLA ...
- 前后端分离djangorestframework——路由组件
在文章前后端分离djangorestframework——视图组件 中,见识了DRF的视图组件强大,其实里面那个url也是可以自动生成的,就是这么屌 DefaultRouter urls文件作如下调整 ...
- 自动化测试基础篇--Selenium cookie操作
摘自https://www.cnblogs.com/sanzangTst/p/8376471.html 在验证浏览器中cookie是否正确时,有时基于真实cookie的测试是无法通过白盒和集成测试进行 ...
- PCL学习笔记1
先贴一段代码,从别处抄来的 #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_type ...