各大云测试平台
可以提供市面上大部分机型,兼容性测试很广,测完之后都会有详细的测试报告,位置定位比较明确。缺点嘛,就一个「收费」。毕竟人家也是要恰饭的。
😜真经上卷:自动化测试框架
第一重-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 (从左数第二个按钮)
-
点击希望查看的控件 查看右下角
-
Node Detail 相关信息
有了特征值,后面我们就可以搞事情了。怎么办呢?利用Appium的api进行对应的操作即可
获取当前设备的分辨率
print(driver.get_window_size())
print(driver.get_window_size()[“width”])
print(type(driver.get_window_size()[“width”]))
点击
driver.find_element_by_id(“com.android.settings:id/search”).click()
清空所有文本内容
input_label.clear()
获取文本内容
eles = driver.find_elements_by_id(“com.android.settings:id/title”)
还有更多API就不介绍了,代码是死的,人是活的,灵活运用,可以写出很多骚操作的测试用例。
其他的一些框架比如Espresso等,虽然也是Google自己出的,有不少优点,但是年久未更,放一放,以后再说,权当是普及。
😜真经下卷:云测试平台
第一重-腾讯优测云测试平台
图.png
收费高,pass!(图也懒得传)
结语
- 现在随着短视频,抖音,快手的流行NDK模块开发也显得越发重要,需要这块人才的企业也越来越多,随之学习这块的人也变多了,音视频的开发,往往是比较难的,而这个比较难的技术就是NDK里面的技术。
- 音视频/高清大图片/人工智能/直播/抖音等等这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以AndroidNDK技术已经是我们必备技能了。
- 要学习好NDK,其中的关于C/C++,jni,Linux基础都是需要学习的,除此之外,音视频的编解码技术,流媒体协议,ffmpeg这些都是音视频开发必备技能,而且
- OpenCV/OpenGl/这些又是图像处理必备知识,下面这些我都是当年自己搜集的资料和做的一些图,因为当年我就感觉视频这块会是一个大的趋势。所以提前做了一些准备。现在拿出来分享给大家。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
之外,音视频的编解码技术,流媒体协议,ffmpeg这些都是音视频开发必备技能,而且
- OpenCV/OpenGl/这些又是图像处理必备知识,下面这些我都是当年自己搜集的资料和做的一些图,因为当年我就感觉视频这块会是一个大的趋势。所以提前做了一些准备。现在拿出来分享给大家。
[外链图片转存中…(img-oUz99VDd-1715341327065)]
[外链图片转存中…(img-L0lhqzQn-1715341327066)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!