有什么需要欢迎私我,交流群让学习不再孤单。
适合要入门自动化测试的人阅读,小空不是测试人员,在请教了测试的朋友后了解到的相关知识。
有时候开发完会发现莫名奇妙的Bug,Bug 来了咱不怕,那就解决呗。但是这 Bug贼得很,几个小时甚至几天出来调戏你一次,撒手就跑,就问你服不服。所以为了让 App 中的 Bug 尽可能的减少,好好研究了下 Android 平台的自动化测试,在此总结一下。
😜自动化总纲
Android 平台的自动化测试可以从两个方向入手
-
Android 端的自动化测试框架
-
各大云测试平台
-
腾讯优测云测试平台
-
华为开发者联盟
-
Testin 云测
测试的内容包括:
-
兼容性测试:安装、启动、登录、遍历、卸载
-
功能测试:行为检测、手势模拟、功能验证
-
稳定性测试:CPU/内存/Crash/ANR/功能异常等
-
场景测试:模拟真实网络场景,2G、3G、4G、wifi 网络的切换
Android 自动化测试框架
通过代码完成相应的测试用例,尽量减少人工的重复性操作,提升工作质量解放双手去创造更有意思的。伴随的缺点就是对测试人员的开发需求要高一些,而且有限,作为辅助开发的选择。
各大云测试平台
可以提供市面上大部分机型,兼容性测试很广,测完之后都会有详细的测试报告,位置定位比较明确。缺点嘛,就一个「收费」。毕竟人家也是要恰饭的。
😜真经上卷:自动化测试框架
第一重-ADB
开始前,我们先熟悉下ADB几个命令,因为底层的操作其实就是adb的各种真气流转,这点要了解。
安装卸载
adb install 安装包地址 adb uninstall 包名
adb 获取包名/界面名
adb shell dumpsys window windows | findstr mFocusedApp
发送文件到手机
adb push 电脑文件路径 手机文件夹路径
从手机拉取文件
adb pull 手机文件路径 电脑文件夹路径
打印日志信息
adb logcat 找到异常E级别
第二重-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
测试试验脚本
import uiautomator2 as u2
from time import sleep
d = u2.connect(‘192.168.1.66’)
启动App
d.app_start(“com.zhima.app”)
搜索
d(resourceId=“com.zhima.app:id/j0”).click()
输入关键字
d(resourceId=“com.zhima.app:id/p9”).set_text(“flyme”)
搜索按钮
d(resourceId=“com.zhima.app:id/tp”).click()
sleep(2)
停止app
d.app_stop(“com.zhima.app”)
此框架说到这就结束了,有兴趣的可自信修炼,因他不是跨平台的,我们先放一放,重点看第三重-Appium
第三重-Appium介绍
Appium 是一款「移动」的自动化测试框架,牛逼的地方在于支持 iOS 和 Android 原生和混生的移动 Web 应用程序,也就是跨平台。
Appium环境搭建
我们使用Appium和python来进行测试,所以需要安装Appium客户端以及Python环境。
他们的执行顺序是:
python代码 -> Appium-python库 -> Appium -> 手机。
极速体验
-
打开手机模拟器/真机
-
打开appium工具
-
创建python项目
-
复制下面代码,并作微微修改
测试示例
from appium import webdriver
import time
desired_caps = dict()
平台的名字,大小写无所谓,不能乱写
desired_caps[‘platformName’] = ‘Android’
平台的版本
desired_caps[‘platformVersion’] = ‘9’
设备的名字,随便写,不能乱写
desired_caps[‘deviceName’] = ‘123456’
要打开的应用程序
desired_caps[‘appPackage’] = ‘com.huawei.systemmanager’
要打开的界面
desired_caps[‘appActivity’] = ‘.mainscreen.MainScreenActivity’
地址就是appium启动页面的地址端口
driver = webdriver.Remote(‘http://localhost:4723/wd/hub’, desired_caps)
time.sleep(5)
到这就有一个简单的启动了,当然既然是自动化测试,单纯启动没什么用,所以我们就需要具体的操作view/控件,这个时候就需要借助UIAutomatorViewer
UIAutomatorViewer
他是用来扫描和分析Android应用程序的UI控件的工具,帮助你快速获取元素特征。
-
进入SDK目录下的目录
-
mac 在 tools/bin 目录下,打开 uiautomatorviewer
-
windows 在 tools 目录下,打开 uiautomatorviewer.bat
-
电脑连接真机或打开android模拟器
-
启动待测试app
-
点击 uiautomatorviewer 的左上角 Device Screenshot (从左数第二个按钮)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

文末
初级工程师拿到需求会直接开始做,然后做着做着发现有问题了,要么技术实现不了,要么逻辑有问题。
而高级工程师拿到需求会考虑很多,技术的可行性?对现有业务有没有帮助?对现有技术架构的影响?扩展性如何?等等…之后才会再进行设计编码阶段。
而现在随着跨平台开发,混合式开发,前端开发之类的热门,Android开发者需要学习和掌握的技术也在不断的增加。
通过和一些行业里的朋友交流讨论,以及参考现在大厂面试的要求。我们花了差不多一个月时间整理出了这份Android高级工程师需要掌握的所有知识体系。你可以看下掌握了多少。
混合式开发,微信小程序。都是得学会并且熟练的
这些是Android相关技术的内核,还有Java进阶
高级进阶必备的一些技术。像移动开发架构项目实战等
Android前沿技术;包括了组件化,热升级和热修复,以及各种架构跟框架的详细技术体系
以上即是我们整理的Android高级工程师需要掌握的技术体系了。可能很多朋友觉得很多技术自己都会了,只是一些新的技术不清楚而已。应该没什么太大的问题。
而这恰恰是问题所在!为什么别人高级工程师能年限突破30万,而你只有十几万呢?
就因为你只需补充你自己认为需要的,但并不知道企业需要的。这个就特别容易造成差距。因为你的技术体系并不系统,是零碎的,散乱的。那么你凭什么突破30万年薪呢?
我这些话比较直接,可能会戳到一些人的玻璃心,但是我知道肯定会对一些人起到点醒的效果的。而但凡只要有人因为我的这份高级系统大纲以及这些话找到了方向,并且付出行动去提升自我,为了成功变得更加努力。那么我做的这些就都有了意义。
喜欢的话请帮忙转发点赞一下能让更多有需要的人看到吧。谢谢!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
工程师能年限突破30万,而你只有十几万呢?
就因为你只需补充你自己认为需要的,但并不知道企业需要的。这个就特别容易造成差距。因为你的技术体系并不系统,是零碎的,散乱的。那么你凭什么突破30万年薪呢?
我这些话比较直接,可能会戳到一些人的玻璃心,但是我知道肯定会对一些人起到点醒的效果的。而但凡只要有人因为我的这份高级系统大纲以及这些话找到了方向,并且付出行动去提升自我,为了成功变得更加努力。那么我做的这些就都有了意义。
喜欢的话请帮忙转发点赞一下能让更多有需要的人看到吧。谢谢!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!