APP测试技术ADB安卓手机测试一座神奇的桥
前言:
近年移动互联网好比IT界的一条浩瀚银河,安卓手机测试可谓其中最璀璨的一颗明珠,这里有一座你不得不熟悉的桥--ADB
曾见过不少相关的文章或培训,不乏空谈多,实战少;期望大,效果差。也见过很多测试同仁,预成大牛,却不得其法。今日我们秉承单点极致的精神。聚焦实用的技能,也思考下测试这条路,该如何走的深远。
安卓测试,乃如今移动测试领域中举足轻重的部分,相信也有不少同仁奋战在这片战场。工作中听闻最多的几个关键词"性能","自动化","稳定性"……掌握这些测试技能,或可成为高级测试工程师。也达到很多同仁眼中的成功,至少是成就感。那么这条路远嘛?难嘛?我说,不远,也不难,你和成功其实只隔一座桥--ADB。
ADB,或许很多人并不陌生,何谓ADB,简言之:"adb的全称为Android Debug Bridge"就是起到调试桥的作用。最基本的安装,环境变量配置,相信大家也能查到诸多资料,而一些入门级的介绍更是犹如滔滔江水,连绵不绝。相信如下几个场景,或者命令大家都尝试过:
1)安装一个安卓APP: adb install
2)卸载一个安卓APP: adb uninstall
3)查看设备连接: adb devices
4)推送/拉去一个文件: adb push/pull
5)重启手机: adb reboot
入门级命令十多个,相信大家看到这里很亲切。不错!这也是常考的一些笔试题。
但是问题来了,又有多少人,到此就浅尝辄止了?!恐怕也是犹如黄河泛滥吧……
ADB 是一个非常实用的工具,尤其是对我们测试人员。什么才是进阶实践呢?您是否基于 ADB 做过"性能测试","自动化测试","稳定性测试"?姑且让我们从这三个场景看看这座桥(ADB)有多少神奇的潜力。
注:
1. 以下截图中代码,都来真实测试项目中的代码片段,必要地方我会加以解释。
2. h 是 Java 封装的一个类,主要作用是把 adb 命令发送到控制台执行。
很多高级语言都有相似方法,比如 php,或者 python
一、性能测试场景
安卓测试中,启动速度,安装包大小,内存占用,CPU 占用,耗电等是我们公认的重要性能指标。通过这座桥,这些都能实现。
例 1:测试 app 的启动速度:
【项目实战代码】:
【核心命令】:
【效果分析】:
其中的 ThisTime,和 TotalTime 就是我们关注的启动时间,单位是毫秒。
知道这个,结合你已经掌握的安装卸载命令,再加上任何一门高级编程语言的基本语法就可以完成贵公司 app 启动速度专项测试。
提供思路如下(赶快动手试试吧):
1) 设置安装包路径,如果有实力可以脚本完成定期去 FTP 服务器拉去最新可用安装包。
2) 安装
3) 启动并记录时间
4) 解析结果并入数据库。
5) 完成分析数据,横向对比,量化的把控启动速度的变化趋势。
例 2:获取 app,安装后大小:
【项目实战代码】
【核心命令】:
【效果分析】
其中 system 后面就是大小(单位是 B)顺便连安装时间也有了^_^。
租后面无疑是包名字,想针对具体的应用来看,自然也是可以的。
很简单,也很神奇。应用场景,你懂得。
例 3:内存的获取:
【项目实战代码】
【核心命令】:
【效果分析】
远比你想想的要详细,惊呆了,有木有。其中前两项是我们要获取的总内存,和剩余内存,至于其他,按需获取。
【核心命令】:
【效果分析】
不难看出吧 58753KB,就是猎豹清理大师当前的内存占用。
至于您想获取哪个应用,多久获取一次?合适获取。可以自己定义。总之内存这个常提到性能指标就通过一座"桥"实现了。
例 4:电量测试
【项目实战代码】
【核心命令】:
【效果分析】
不难看出,很容易解析到,我们要的电量,电压,温度。除此之外,你甚至会发现,连充电方式,电池的健康程度,电池类型等都有。
想新到此,您已对 ADB 这座桥有了新的认知。
其实远远不仅如此。让我们继续领略一二。
二、功能自动化测试场景
一提到安卓安卓手机的自动化测试。恐怕就会想到,monkeyrunner,robotium,Athrun 等一系列的框架。其实根据项目的情况选择合适的测试技术也是一项很有学问的事情。在此不展开讨论。
说个具体场景。要检验猎豹清理大师的建议清理效果(该删除的文件被删除)
核心步骤:
1) 安装,启动,跳过协议页,规避弹窗:
adb install(安装)
adb shell am start(启动)
adb shell input keyevent 4(点击 back 键)
2) 进入垃圾清理,等待扫描完成,点击清理
adb shell input tap X Y(点击某点,横坐标 X,纵坐 Y 标)
3) 检查手机文件系统,完成效果比对。
这无疑是一个典型的自动化测试场景。 核心的 ADB 命令如上,大家可以小试牛刀。
三、基本稳定性测试场景
提到稳定性,大家第一时间想到,monkey。不错,确实有一条命令:
adb shell monkey –n XX (包名) 1000(伪随机时事件数)
这无疑算是一种稳定性测试方法,但是常用的同学也不难发现它的缺点!
>随机性强,不容易复现。
>盲目性大,很容易点到别的应用。
>可控性差,运行很久未必重点测试预期的模块。
今天我们有这样一个测试场景,测试手机主要的模块,能正正常进入,并且没有崩溃。
核心点有三个:
1) 驱动手机进入指定模块;
ADB 的坐标点击,你懂得,就不赘述
2) 获取当前系统最上层的 ActivITy 名称。
【项目实战代码】
【核心命令】:
【效果分析】
3) 结果比实际最上层 ActivITy 名称,和预期比较,判断稳定性,记录结果。
字符串比较,留给大家自己发挥。
至此,我们多少重新认识了下,似曾相识的 ADB。其实安卓测试,认真的走过这座"桥"漠然回首的时候,你会发现,自己经找到晋身高级测试工程师的门路了。当然由于时间和字数的限制。今日只能带大家走马观花的领略下,这座神器的"桥"。工作中如果有疑难的测试场景,不妨想起 ADB,或许一些问题就迎刃而解,修行在个人,希望大家一起更上一层楼。
最后再次如何在测试这条路上走的更深,更远。虽说命题有些宽泛,但是有些方法论可以参考
>在某个领域钻的够深,你就是专家。
>简单的事情做出新意,你就是大牛。
>茫然的领域探出条道路,你就是领袖。
和大家共勉。最后:
1)关注+私信回复:"测试" ,可以免费领取一份10G软件测试工程师面试宝典文档资料。
2)关注+私信回复:"入群" 就可以邀请你进入软件测试群学习交流~~
计划生育档案是什么,每个人都有吗,和户口有什么关系?平时我们都知道新生儿出生需要上户口,但是很多人怀孕以后去医院孕检需要建档,提供母子健康手册,去本地卫生院建档的时候呢,又需要提供准生证,现在叫生育服务手册(便于理解,本文一律使用准
浅谈十八世纪时期,扎苏拉克封建关系和车臣东北部社会的财产文历史观察所A编辑历史观察所A在这种关系中,军事冲突也可以追溯到,这是由于强大的库梅克封建领主对邻近土地的主张,他们希望将影响力扩展到较弱的土地。政治上和军事上,农村社会和睦邻关系
孕期饮食禁忌丨怀孕了,这些食物才是真该忌口的!怀孕了,准妈妈们总能从网上亲朋好友那听到各种饮食禁忌。其实,网上流传的那些被妖魔化的孕妇不能吃的食物,大多数是没有科学依据的谣言。到底什么食物才是孕期该忌口的呢?我们分类来说说。生
为什么宝宝容易发生食物过敏?宝妈们一定要重视起来!据统计,食物过敏的患者主要集中在儿童,尤其是两岁以下的婴幼儿。宝宝之所以容易出现食物过敏,原因主要有以下几点1宝宝肠道发育不完善,肠道屏障功能很弱,食物中的大分子蛋白质容易透过肠道
附子理中丸这样搭配不止温中健脾,还可以脾肾双补,阴阳同补附子理中丸相必大家都不陌生,具有很好的温中健脾的作用,可以改善脾胃虚寒等情况,但是今天和医生教你这样搭配,还可以脾肾双补,阴阳同补,还能燥湿化痰。首先呢,我们在用一个中成药之前呀,
25岁才明白的消费真相买贵的更省钱我是小北,一个梦想实现自由职业的女孩,点击右上方关注,每天为你分享女性成长个人精进干货25岁才明白的消费真相买贵的更省钱年轻时,以为省钱就是花的越少越好以为省钱就是买一大堆便宜的东
年轻人该不该躺平摆烂?当前部分年轻人精神生活状况堪忧,躺平摆烂已成常态。没有目标工作敷衍了事虚度光阴缺乏激情兴趣逃避困难感情疮痍忙累迷茫成了常态。当然这和整个社会大环境也有关系,改变不了环境,只能改变自
阿里搬家马云移民?谣言再假也会破坏信心阿里和马云的被造谣被中伤可能只是一个微小但典型的最新案例,背后却是中国民营企业经年累月的舆论困境。特约撰稿丨艾川过年期间,一则看似言之凿凿的特大新闻广为传播阿里巴巴集团将在新加坡建
王者荣耀二月皮肤前瞻,五款新皮肤,情人节限定返场大家好,这里是阿呆的峡谷日记,将会给你带来王者荣耀最新的爆料内容。王者荣耀春节活动已经持续一段时间了,而新皮肤在同一时间上线之后,也有一段时间没有上线新皮肤了,马上迎来2月份,可能
哪种茶,可能会伤肝呢?建议及时改正过来!随着人们饮食水平不断提升,虽然寿命有所增高,但是患慢性疾病的人数也在不断攀升,甚至有的人因为慢性病夺走了生命。肝其实是一个很娇弱的脏器,很多行为都容易导致肝损伤。肝癌早期的症状有哪
癌症糖尿病高血压最偏爱哪些人?建议每个人都看看为什么有些人生病,有些人却能健康平安?生活方式是很关键的一个原因!坏的生活方式,不知不觉就把一些人培养成了疾病候选人!一癌症候选人总吃剩饭菜除了营养素流失之外,剩饭菜最让人担心的是