自动采集编写(安装Python自动化测试的脚本是用Python3写的吗)
优采云 发布时间: 2021-12-29 09:07自动采集编写(安装Python自动化测试的脚本是用Python3写的吗)
写在前面
本文主要介绍一个基于uiautomator2封装的Python库android-catcher。该库的功能主要包括Android设备的UI自动化测试和手机性能数据的采集。适用于列表滑动、视频录制等各种测试场景。 CPU,内存、帧率等信息的抓取方便后续分析。
Github地址:
安装 Python
自动化测试脚本使用Python 3编写,运行脚本需要安装Python 3环境。
下载链接:
Python 3.6.5
安装 android-catcher 依赖
打开脚本目录,执行以下命令安装依赖
pip install -r requirements.txt
使用方法 uiautomator2
安装uiautomator2后,一般只需要执行以下命令来初始化设备并在设备上安装uiautomator2服务
python -m uiautomator2 init
如果出现如下提示,则安装成功
更多uiautomator2的使用请参考:
脚本文件说明
这个脚本库根目录下的主要文件有
参数说明 生成的文件说明
采集到的信息根据信息类型存储在指定输出目录下的cpu_stats、mem_stats、fps_stats、net_stats四个子目录中。文件名为信息类型_设备号_应用程序ID_版本号_测试场景名称_时间戳,如cpu_d3c2edaa_video。like_RecordVideo_1.9.9_1524122928.csv.csv,实际效果大致如下
输出文件为csv文件,直接打开和用Excel打开的效果如下:
此外,您可以为测试的每个阶段添加节点描述
task.period = "idle"
生成类似于下图的图形
如何使用无自定义测试场景
适用于没有特定测试场景,脚本运行一段时间后脚本处于采集状态的情况。时长可以通过配置参数指定,用户可以在此过程中随意操作手机。直接通过命令行运行_main_.py脚本文件并指定相关参数
比如我想采集applicationId为video.like的应用程序10s内的cpu信息和内存信息,采样间隔为200ms,输出目录为当前目录,那么可以在所在目录下执行如下命令脚本位于
python _main_.py -s 设备号-a video.like -f 0.2 -d 10 -i mem,cpu -o .
脚本运行后,在根目录下可以看到如下图的文件生成
注意:要带-d参数指定采集的持续时间,否则脚本默认运行10s,不需要-t参数。默认测试场景命名为 Random
如何使用自定义测试场景
自定义测试场景不能直接调用_main_.py 脚本。需要新建一个脚本,继承task.py#Task并重写Task#execute方法,在Task#execute中实现自定义测试场景的逻辑,如下图所示:
在这里创建一个名为 start_app.py 的脚本,运行命令:
python start_app.py -s 设备号-a 进程名 -f 0.1 -i cpu,mem -o .
可以启动相应的APP,采集CPU信息和内存信息,采样间隔100ms,输出到当前目录。注意这里没有-d参数,因为采集的时长以测试任务的时长为准。设置的参数必须按照说明进行,否则无法采集数据
如果要采集
自定义信息,可以继承 info.py#Info 并重写 Info#get_start_info 和 Info#get_end_info 方法。可以参考已经实现的四种信息集合,最后通过Task#add_info方法进行添加。
自定义测试场景后,调用_main_#main方法,传入测试场景实例。测试场景的名称将用作输出文件命名的一部分。最好取一个能准确表达测试场景的名字,比如一个APP录制视频 测试场景的名字是RecordVideo
采集
到的信息可以通过Excel制作成图表。以下是完整视频录制测试场景的CPU比例和内存变化
通过图表,可以直观地分析应用程序不同版本、不同场景的性能状态
写在最后
以上是对该库使用的一些介绍。由于工作经验还比较少,所以现在也在学习和使用Python。在编写这个库的时候,可能会有很多考虑不周或不完善的地方。有能力的朋友可以直接修改库实现更多的自定义功能。另外也希望大家多多使用,多发现问题,欢迎issue,欢迎star,欢迎新的使用需求和想法。后续会继续完善,谢谢!
Github地址: