手把手教你搭建智驾场景下的自动化性能试

作者:蒙天浩 李雪 刘力龙

方案概述

1.1 业务需求背景

智驾地图应用在真实应用场景中,是以小时为单位进行运行使用,具有应用使用时间长的特性。例如,车主进行长距离旅行时,往往需要连续几个小时使用智驾地图进行导航。因此,为了保证智驾地图在真实场景下的稳定性和可靠性,测试时需要对智驾地图应用的性能进行长时间的监控。

1.2 为什么选择PerfDogService+Airtest

PerfDog是腾讯WeTest出品的性能测试工具,功能强大且支持多种测试框架。PerfDog是一款移动平台的性能测试工具,手机(平板等)无需ROOT/越狱,最快1分钟可获得APP性能指标,全网唯一支持iOS/Android/小程序/H5性能测试的工具。通过PerfDog仅对内开放的PerfDogService服务组件进行二次开发,定制自动化性能测试。基于该组件,可以一键搭建属于您自己的PerfDog性能工具或自动化服务,完美结合需求特点,快速获取性能数据。

Airtest是一款基于Python语言的UI自动化测试工具,能够通过图像和poco控件进行识别。它由AirtestIDE、Airtest、Poco、AirLab等多个组件构成,包含Poco、图像识别和selenuim三大类库。Airtest适用于游戏、APP、web以及Windows程序项目的自动化测试,能够有效实现自动化测试流程。此外,AirtestIDE能够在Windows、MacOS和Linux等多个操作系统上运行,可广泛应用于Unity3d、Cocos2d以及Android和iOS App等多种平台。

1.3 整体方案和当前成果

目前,该方案已经稳定运行一年有余,能有效模拟用户的真实使用,并发现应用中的异常性能指标,针对性的解决了特定场景复测难的问题。下面,我会从Airtest和PerfDogService等方面介绍一下整个方案的落地过程。

Airtest基础使用方法

2.1 Airtest介绍

Airtest是一款基于Python的、跨平台的UI自动化测试框架,适用于游戏和App。欢迎使用 - Airtest Project Docs详细易懂,包括从框架的介绍到ide的使用,还有一些调试过程中常见的问题。这里我简单介绍一下本地调试的基本流程:使用ios系统连接鸿蒙平板进行用例编写和调试。

2.2 环境准备

1.安装python

下载地址:Welcome to Python.org

可参考:Python安装超详细教程_python安装教程-优快云博客

2.平板环境

A. 在平板上开启“开发者选项”,接着在“开发者选项”内启用“允许USB调试”功能。对于部分平板,若无法找到“开发者选项”,可能是因为系统进行了隐藏处理。此时,可以进入系统详细参数界面,连续点击系统版本号信息7至10次,系统便会弹出与开发者模式相关的窗口或入口。

B. 由于需要对平板进行操作,因此电脑需要安装ADB。ADB是Google官方提供的Android调试工具。AirtestIDE依赖ADB与安卓设备进行通信。ADB的详细介绍可以参考 文档,里面有多种下载方案。这里简单提供一个使用跳转提示-稀土掘金homebrew快速安装的命令:

brew install --cask android-platform-tools

除此之外,还可以通过下载Andrid Studio来进行安装。下载完成后,可以将平板USB与电脑相连,并执行一下命令来判断设备是否连接成功。

adb devices

如果展示了以下内容,就是连接成功啦。 

2.3 Airtest IDE

下载:Airtest ProjectAirtest Project

A. 点击“新建脚本”,会自动创建一个.air的脚本文件,.air这是Airtest脚本的专属后缀,文件夹中会自动创建一个同名的.py文件。.py文件是用例的主体,是Python脚本。

B. 点击窗口中的出现connect进行设备连接。在Poco Assistant中,选择平板对应的系统。最后点击录像机按键,进行操作录制。

2.4 用例编写

编写用例需要掌握python语法、airtest框架的基础api,也可以通过AirtestIDE进行快速实现脚本编写,通过以下按键点击屏幕进行操作来实现用例编写。

  • touch :点击某个位置,可以设定被点击的位置、次数、按住时长等参数

  • swipe :从一个位置滑动到另外一个位置

  • text :调用输入法输入指定内容

  • keyevent :输入某个按键响应,例如回车键、删除键

  • wait :等待某个指定的图片元素出现

  • snapshot :对当前画面截一张图

PerfDog Service

3.1 PerfDogService架构介绍

PerfDog是一款针对移动平台的性能测试工具,无需对手机进行ROOT或越狱操作,即可在最快1分钟内获取APP的性能指标。作为全网唯一支持iOS、Android、小程序及H5性能测试的工具,PerfDog为您提供了丰富的功能选择。目前,您可以通过PerfDog内部专有的PerfDogService服务组件进行二次开发,实现自动化性能测试。借助这一组件,您可以轻松搭建属于自己的PerfDog性能工具或自动化服务,紧密结合实际需求,迅速收集性能数据。在内测阶段,PerfDogService已成功为公司的数十个项目组提供了定制化服务,其中包括《王者荣耀》、《一人之下》、《火影忍者》、《QQ音乐》和《微视》等知名产品。经过全新升级后,PerfDogService功能更为完善,接入过程也更加便捷。

可以看到,PerfDog Service采用GRPC/TCP协议进行内部通信,而PerfDog客户端则是在此基础上构建的用户界面封装。PerfDog SDK旨在使iOS和Android设备能够实时悬浮显示由PerfDog Service采集的数据。在部署了PerfDog的每台机器上,PerfDog Service的后台rpc server实例运行于本地地址127.0.0.1的23456端口。客户端或用户自主开发的自动化性能工具通过gRPC协议与该实例进行通信,执行数据采集或上传等操作。PerfDog Service所采集的数据可通过gRPC接口灵活导出至本地、云端或内部服务器,为用户提供便利的数据解析和提取基础。

3.2 环境准备

令牌申请教程:PerfDog | 全平台性能测试分析专家

安装包下载:PerfDog | 全平台性能测试分析专家

安装python3:从官网下载最新python3版本

安装python3库,grpcio(1.43.0)和protobuf(4.25.1),推荐使用pip安装

A. 本地解压PerfDogService安装包,PerfDogService.exe:Service启动文件,一般不用手工启动,自动化脚本会自动启动此程序。perfdog.proto: grpc接口和protobuf结构体的定义文件。

B. 启动教程

注1:须使用PerfDogServicev8.1及以上版本才可以支持此Demo

注2:使用Mac无法启动Service,可打开shell,进入perfdogservice的目录,先执行./init.sh ,再执行./PerfDogService

自动化性能测试结合方案

如图所示,通过AirtestIDE编写特定场景的脚本,并通过Airtest框架让测试平板中的APP执行特定操作。在执行特定的操作时,会同时在PerfDogService的run_test函数中调用run_test_app()方法进行监控,用于监控测试平板上的APP性能指标。并最后在执行结束后,将采集的性能数据上传到PerfDog平台(或以json的格式保存到本地)。以下附上了部分结合的代码供参考。

使用结果&方案优缺点

目前,该方案已经稳定运行一年有余,能有效模拟用户的真实使用,并发现应用中的异常性能指标,针对性的解决了特定场景复测难的问题。该方案可以保证各个场景二十四小时的不停运行,模拟不同场景的的真实使用。方案的优缺点,可以结合项目的实际情况选择。

1、入门简单,支持自动录制等

熟悉python的同学上手airtest不会有太大难度,它本身的api都简单易懂,一站式的airtestIDE也把所有需要搭建和设置的环境打包解决。我在了解airtest到本地调通用例,只花了很短的时间。同时,上文中有提到,airtest的官方文档非常友好,步骤讲解详细且提供了许多异常问题的排查、解决方案。

2、稳定,平台或框架导致的误报很少

由于平台和框架的成熟,在该方案实际执行的一个月内,误报比较少。大部分报错都是页面加载时间过长的问题,这些问题可以后续通过优化用例设计解决,几乎没有因为真机连接或框架异常导致的报错。

3、PerfDog平台支持多种性能监控

PerfDog支持多种性能的监控,包括但不限于Avg(FPS)、 Var(FPS)、Drop(FPS)、Std(FPS)、Memory、GPU Usage等多种性能指标。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值