Android- 聊聊自动化测试真经
👉关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!专注于 Android/Unity 和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
👉即将学会
了解到自动化测试的内容,知道如何入手,并且带有实践过程。
👉背景
🙈小空和🙎小芝:今天小空和小芝很安静,没有故事,不过一起吃了土豆饼。
👉实践过程
有时候开发完会发现莫名奇妙的 bug,bug 来了咱不怕,那就解决呗。但是这 bug 贼得很,几个小时甚至几天出来调戏你一次,撒手就跑,就问你服不服。所以为了让 App 中的 bug 尽可能的减少,好好研究了下 Android 平台的自动化测试,在此总结一下。
自动化总纲
Android 平台的自动化测试可以从两个方向入手
Android 端的自动化测试框架
各大云测试平台
腾讯优测云测试平台
华为开发者联盟
Testin 云测
测试的内容包括:
兼容性测试:安装、启动、登录、遍历、卸载
功能测试:行为检测、手势模拟、功能验证
稳定性测试:CPU/内存/Crash/ANR/功能异常等
场景测试:模拟真实网络场景,2G、3G、4G、wifi 网络的切换
Android 自动化测试框架
通过代码完成相应的测试用例,尽量减少人工的重复性操作,提升工作质量解放双手去创造更有意思的。伴随的缺点就是对测试人员的开发需求要高一些,而且有限,作为辅助开发的选择。
各大云测试平台
可以提供市面上大部分机型,兼容性测试很广,测完之后都会有详细的测试报告,位置定位比较明确。缺点嘛,就一个「收费」。毕竟人家也是要恰饭的。
真经上卷:自动化测试框架
第一重-ADB
开始前,我们先熟悉下 ADB 几个命令,因为底层的操作其实就是 adb 的各种真气流转,这点要了解。
第二重-UIAutomator2
背景介绍
Google 提供的 uiautomator 库可以获取屏幕上任意一个 APP 的任意一个控件属性,并对其进行任意操作,但有缺点:
只能使用 Java 语言 ;
Android 版本大于 4.4,Python 大于 2.7
必须每次被上传到设备上运行;
为了解决以上缺点,才有了 uiautomator2。uiautomator2 是一个 Android UI 自动化框架,支持 Python 编写测试脚本对设备进行自动化。
基本原理
uiautomator2 的底层是基于 Google uiautomator,原理是在手机上运行了一个 http 服务器,将 uiautomator 中的功能开放出来,然后再将这些 http 接口,封装成 Python 库。
安装 uiautomator2
pip install --pre uiautomator2
pip install pillow
测试试验脚本
此框架说到这就结束了,有兴趣的可自信修炼,因他不是跨平台的,我们先放一放,重点看第三重-Appium
第三重-Appium 介绍
Appium 是一款「移动」的自动化测试框架,牛逼的地方在于支持 iOS 和 Android 原生和混生的移动 Web 应用程序,也就是跨平台。
Appium 环境搭建我们使用 Appium 和 python 来进行测试,所以需要安装 Appium 客户端以及 Python 环境。
他们的执行顺序是:python 代码 -> Appium-python 库 -> Appium -> 手机。
极速体验
打开手机模拟器/真机
打开 appium 工具
创建 python 项目
复制下面代码,并作微微修改
测试示例
到这就有一个简单的启动了,当然既然是自动化测试,单纯启动没什么用,所以我们就需要具体的操作 view/控件,这个时候就需要借助 UIAutomatorViewer
UIAutomatorViewer
他是用来扫描和分析 Android 应用程序的 UI 控件的工具,帮助你快速获取元素特征。
进入 SDK 目录下的目录 mac 在 tools/bin 目录下,打开 uiautomatorviewerwindows 在 tools 目录下,打开 uiautomatorviewer.bat
电脑连接真机或打开 android 模拟器
启动待测试 app
点击 uiautomatorviewer 的左上角 Device Screenshot (从左数第二个按钮)
点击希望查看的控件
查看右下角 Node Detail 相关信息
有了特征值,后面我们就可以搞事情了。怎么办呢?利用 Appium 的 api 进行对应的操作即可
还有更多 API 就不介绍了,代码是死的,人是活的,灵活运用,可以写出很多骚操作的测试用例。
其他的一些框架比如 Espresso 等,虽然也是 Google 自己出的,有不少优点,但是年久未更,放一放,以后再说,权当是普及。
真经下卷:云测试平台
第一重-腾讯优测云测试平台
图.png
收费高,pass!(图懒得传)
第二重-Testin
Testin 在云端部署了 300 多款 1000 多部测试终端,终端种类及数量都比较全面。
该平台也是收费的,但是具体的收费标准没有在官网上显示出来,只能联系商务客服。
第三重-华为开发者联盟
可以云端测试,远程调试,特点是免费的。但是只支持华为品牌。具体的报告日志详细。
测试主要包括:
兼容性测试:华为这边提供所有华为手机的测试
稳定性测试
安装、启动、注册登录、遍历、卸载
Crash、ANR、UI、功能异常
提供问题上下截图及异常截图
最终卷-返璞归真
当你使用很熟练了之后,过过脑子就基本能定位到 bug 模块,这时候可能用手操作是最快的。思想与手速相辅相成,唯快不破。
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://www.infoq.cn/profile/DB2492B85795C4/publish
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。
版权声明: 本文为 InfoQ 作者【芝麻粒儿】的原创文章。
原文链接:【http://xie.infoq.cn/article/bb0f001e0b098ada6f2631fe1】。文章转载请联系作者。
评论