文章目录
- 前言
- 什么是性能测试
- 为什么要做性能测试
- 怎么做我们的性能测试
- SoloPi
- SoloPi的介绍和安装
- SoloPi的性能数据
前言
随着科学技术的迅速发展,信息时代离不开软件,软件的成功上线离不开软件测试的功劳,因此软件测试对于软件的重要性不言而喻。性能测试作为软件测试中的一部分,通过自动化测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
什么是性能测试
性能测试,简而言之就是测试软件性能方面的质量,是一种非功能性的测试。App性能测试类型包括响应、内存、CPU、FPS、GPU、耗电、耗流量、启动时长和页面响应时长。
内存:
内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。
现代的操作系统为了最大利用内存,在内存中存放了缓存,因此内存利用率100%并不代表内存有瓶颈,衡量系统内有有瓶颈主要靠SWAP(与虚拟内存交换)交换空间利用率,一般情况下,SWAP交换空间利用率要低于70%,太多的交换将会引起系统性能低下。
Swap解释:
当物理内存接近崩溃时,将物理内存中最近一段时间最少频率使用到的页框移出物理内存,放进该存储空间,这段存储空间我们称之为*交换空间(Swape)
cpu:
中央处理器是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据
FPS:
FPS是图像领域中的定义,是指画面每秒传输帧数(单位为Hz),通俗来讲就是指动画或视频的画面数。FPS是测量用于保存、显示动态视频的信息数量。每秒钟帧数越多,所显示的动作就会越流畅。通常,要避免动作不流畅的最低是30。某些计算机视频格式,每秒只能提供15帧,电影以每秒24张画面的速度播放,也就是一秒钟内在屏幕上连续投射出24张静止画面。fps越高,画面越流畅。
GPU
图形处理器(英语:graphics processing unit,缩写:GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些称动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理。
GPU使显卡减少了对cpu的依赖,并进行部分原本CPU的工作,尤其是在3D图形处理时GPU所采用的核心技术有硬件T&L(几何转换和光照处理)、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬件T&L技术可以说是GPU的标志。GPU的生产商主要有NVIDIA和ATI
耗电、耗流量
就是安装了对应的App会不会,掉电快,和偷偷的吃掉我们的流量,或者使用时耗费我们的大量流量。
启动时长
首次安装启动时间、冷启动、热启动测试
页面响应时间:
用户从点击一个控件,到下一页面主页面完全展示的时间;
为什么要做性能测试
果APP总是出现卡顿或网络延迟的情况,降低了用户的好感,用户可能会抛弃该App,换同类型的其他应用。如果APP的性能较好,用户体验高,使用起来丝滑顺畅,那该应用的用户粘性也必然会提高。
怎么做我们的性能测试
服务端:使用jmeter,loadrunner等工具。
App:目前,基本上都使用现有的工具来进行性能测试,比如 Android studio 中有自带工具,也有其他公司开源的一些 性能测试的工具,主要还是分为两种,一种是自研的,一种是外部提供的开源/收费的。
自研:一般每家公司都会有都会有自研的收集性能数据的平台,当然有些是购买的外部的服务,经过二次开发之后再供使用。
开源:各大公司都有一些开源的软件免费供大家使用,部分如下
1、GT:
GT(随身调)是腾 讯开源的,它支持iOS和Android两个手机平台,
GT Android版是腾讯 MIG 专项测试组自行研发的 Android APP 随身调测平台,它是直接运行在手机上的“集成调测环境”(ITE, Integrated Test Environment)。
利用GT,仅凭一部手机,无需连接电脑,即可对APP进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash日志查看、网络数据包的抓取、APP内部参数的调试、真机代码耗时统计等,手机需要Root.
开源地址:https://github.com/Tencent/GT
2、soloPi:
支付宝开源的Android自动化工具,主要有录制回放、性能测试、一机多控三项主要功能。
录制回放:SoloPi拥有录制操作的能力,用户只需要通过SoloPi执行用例步骤,SoloPi就能够将用户的操作记录下来,并且支持在各个设备上进行回放,这一切都能够在手机上独立完成。
性能测试: SoloPi能够记录待测应用的各项指标,你可以在悬浮窗中观察实时更新的数据,也可以对性能数据进行录制,在录制结束后查看图表;同时,Soloπ还支持性能加压,能够对CPU、内存进行限制,复现应用在性能较差、网络环境不佳场景下的表现。
一机多控:SoloPi支持通过操作一台主机设备来控制多台从机设备,不需要在各个设备上分别进行重复冗杂的兼容性测试,能够极大提升兼容性测试的效率。
开源地址:https://github.com/alipay/SoloPi/wiki/Performance
市面上常见的性能测试工具就这几款,可以根据自己的需求选择。笔者最近常用SoloPi。
3、TraceView:
TraceView 是Android平台配备一个性能分析的工具,用于分析计算性能,跟踪方法耗时导致的卡顿问题。它使用图形化的方式把结果呈现出来,直观的反应出代码的执行时间、执行次数。
如何使用:通过Android studio自带的traceview查看即可(Android profiler)。开发人员使用此工具的比较多,测试人员一般使用其他的开源App。
4:perfdog 性能狗
介绍:
移动全平台iOS/Android性能测试、分析工具平台。快速定位分析性能问题,提升APP应用及游戏性能和品质。手机无需ROOT/越狱,手机硬件、游戏及应用APP也无需做任何修改,极简化即插即用。
PerfDog支持移动平台所有应用程序(游戏、APP应用、浏览器、小程序、小游戏、H5、后台系统进程等)、Android模拟器、云真机等性能测试。支持APP多进程测试(如Android多子进程及iOS扩展进程APP Extension)。
Windows & Mac OS X平台PerfDog桌面应用程序版本都支持对iOS和Android设备进行测试。PC上PerfDog可多开,单PC可同时测试多台手机。
SoloPi
SoloPi的介绍和安装
SoloPi是蚂蚁金服开发的一款无线化、非侵入、免Root的Android专项测试工具。直接操控安卓系统的手机或智能设备,即可完成自动化的功能、性能、兼容性、以及稳定性测试等工作,降低广大测试开发者的测试成本,提升测试效率。
SoloPi特点
1、免费开源
2、纯Java开发
3、可跨平台
4、轻量级,apk仅4.50 MB
5、使用adb命令 ,安装简单
6、本身对CPU、内存占用极小,基本可以忽略不计
7、操作简单
8、使用Apache-2.0授权协议
SoloPi的主要功能
SoloPi拥有录制回放、性能测试、一机多控三项主要功能。同时,SoloPi还支持性能加压,能够对CPU、内存与网络环境进行限制,复现应用在性能较差、网络环境不佳场景下的表现。除了常规性能指标,SoloPi还提供了启动耗时计算工具,测试同学只需要点击两次按钮,就可以得到最贴近用户体验的启动耗时数据。同时,启动耗时计算工具还可以通过广播调用,可以非常方便地与UI自动化测试打通。
安装SoloPi
1、安装并配置ADB环境变量 (jdk,Adb) 如果在命令行上面出现的是不是内部或者是外部的命令,说明你的jdk
是没有配置的,或者说没有配置成功。
2、用数据线连接电脑和被测安卓手机或模拟器 。
3、输入cmd回车,打开命令行窗口,执行如下命令安装桌面:
C:\Users\Administrator.DESKTOP-EDKP2H7>adb install SoloPi.apk
4、可以在安装命令后直接将本地apk文件拖拽进去,回车执行安装命令。出现Success说明安装成功。
5、安装好SoloPi以后,首次打开需要进行一些授权操作。
(1)申请ADB权限
在命令行窗口输入adb tcpip 5555 命令后,点击【重试】即可。
(2)申请浮窗权限
请点击【前往授权】,授予SoloPi显示悬浮窗的权限,然后返回该界面点击【我已授权】。SoloPi在运行过程中需要悬浮窗来展示实时数据或者通过操作悬浮窗来执行操作。
(3)申请相机、录制屏幕权限
对于一机多控,SoloPi需要额外申请相机、录制屏幕权限,用于主从机的扫描连接和响应耗时计算。
SoloPi的性能数据
1:cpu
包含应用顶层Activity所在进程的CPU占用百分比与全局CPU占用百分比,对于单进程应用,该数据表示该应用的CPU占用情况;对于多进程进程应用,该数据表示顶层UI进程的CPU占用情况,当发生进程切换时,Solopi能够自动切换到新的进程数据
2:内存
包含应用顶层Activity所在进程的PSS(Proportional Set Size,即实际使用内存)内存、Private Dirty(私有内存)内存与全局占用内存,对于单进程应用,该数据表示该应用的内存占用情况;对于多进程进程应用,同CPU一样,Solopi也支持自动切换顶层进程。
3:响应耗时
包含应用点击的响应耗时与刷新耗时数据。属于应用维度数据。从用户点击开始,到系统第一次发出界面更新时间为响应耗时,到系统停止界面刷新的时间为刷新耗时。
4:电池
包含设备瞬时电流与电流均值。属于全局维度数据。点击右侧清零按钮可以清空电流累计数据。
5:网络
包含应用上下行速率与累计流量以及全局上下行速率与累计流量。属于应用维度数据。点击右侧清零按钮可以清空累计数据。
6:进程状态
7:启动耗时计算 一般指的是,我们应用的起动时间(包含我拉的冷启动和我们的热启动)