不知不觉,毕业已经快两年时间了.其中从事CTS测试自动化工作已经一年多了.这期间对Google认证测试执行原理有一定的了解.而对执行这些认证测试的框架则更为感兴趣,本系列博客主要是回顾自己所学的Tradefed测试框架.
Tradefed是由Google开发的一套自动化测试框架,主要用于对Android手机进行自动化测试.其功能强大,支持多种测试类型,如AndroidJunit测试,主机端Jar包测试,基于C++的Gtest测试等,也支持多种测试前置操作,如Fastboot刷机,修改Settings数据库,安装APK,修改测试环境.当测试用例过多时,还可以通过时空转换的思想,增加测试设备数量,将测试用例平均分到多个设备上进行测试.谷歌认证系列的测试(CTS/VTS/GTS/GSI)均是基于此框架所进行的.
我一直相信一句话:“授人以鱼不如授人以渔”,虽然本系列博客主要是用来讲述Tradefed框架执行原理的,但我感觉更重要的是要教会如何学习这个框架.有了学习方法,就算再换个框架,也能较为快速的掌握其原理.
对于一个测试框架,要想弄明白其中的执行原理,首先应当是要先学习如何使用此框架.就好像要想搞清楚一辆汽车的工作原理,首先你应当会开车(注意:不是那个开车的意思),在此基础上来搞懂汽车是如何启动的会更轻松一些.因此,我们可以通过一个简单的例子来学习如何调用此框架来跑测试.
First of all,我们应当先搭建此框架的执行环境,只有此框架环境搭建好了,才能进行相应的测试.本系列博客将选用原生CTS测试包来讲解Tradefed框架,因为CTS针对Tradefed进行了二次封装,丰富了更多的功能,而且有实际的测试用例,更容易进行debug,讲解.
本文选用当前可获得到的最新版本的CTS测试包(11-r3版本),浏览器访问如下地址进行下载:
https://dl.google.com/dl/android/cts/android-cts-11_r3-linux_x86-arm.zip?hl=zh_cn
下载完成后解压测试包.
CTS测试谷歌要求是需要在Linux下进行,但由于通过VMware搭建虚拟机搭建Linux环境较为繁琐.在此直接使用Win10自带的Linux子系统用于执行CTS测试(经验证WSL下执行CTS测试与纯Linux环境下执行并无差异).对于WSL的搭建,网上教学博客有很多,在此不专门讲解如何搭建WSL.
针对WSL的环境配置,主要就是运行CTS测试时候的环境需求,主要需要如下环境:
这里需要再次强调下ADB的版本,一定要保证Windows下的ADB与Linux下的ADB版本相同,这样才可以正常进行测试,在此分享两个平台的ADB下载地址:
https://dl.google.com/android/repository/platform-tools_r31.0.2-linux.zip?hl=zh_cn # linux平台
https://dl.google.com/android/repository/platform-tools_r31.0.2-windows.zip?hl=zh_cn # Windows平台
将此两个SDK工具下载下来安装好后,Windows版本的在Windows环境变量上配置好,Linux版在子系统的环境变量也配置好,插上手机并打开开发者模式-usb调试选项,在命令行执行 adb devices,如果有设备输出,则代表adb环境搭建完成.
如上图,在Windows和Linux下均能通过adb来找到设备.
后续再安装java和aapt即可,注意,由于此ubuntu默认的镜像源下载工具速度很慢,我们可以给改成阿里的镜像源,需要使用root用户权限来编辑sources.list文件.首先在cmd窗口运行 wsl 指令,进入Linux子系统,然后执行如下指令进行编辑
vim /etc/apt/sources.list
在此列出ubuntu 18.04版本的阿里镜像源,如安装的是其他版本的ubuntu,请百度对应版本的镜像源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
之后执行如下指令,可以安装java环境和aapt环境
sudo apt install openjdk-11-jre-headless
sudo apt install aapt
接下来我们查看2.1步骤所下载的测试包,将其解压,进入解压文件后会有如下内容:
我们本次主要是研究框架部分,因此进入tools目录:
这里边有很多文件,在这里挑其中比较重要的说下:
因为要启动cts测试套件,所以需要到Linux界面下执行cts-tradfed即可:
这样,CTS测试框架就启动起来了.
可以手动执行一条测试指令,看看效果
run cts -m CtsJniTestCases
如果可以成功执行,则代表环境搭建完成,若未成功执行,可考虑是否是如下问题:
到下一节,会专门讲解这条指令的含义.
如有其它问题,欢迎博客下留言.