如何进行性能测试

news2025/1/11 10:03:48

文章目录

  • 前言
  • 什么是性能测试
  • 为什么要做性能测试
  • 怎么做我们的性能测试
  • 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:启动耗时计算 一般指的是,我们应用的起动时间(包含我拉的冷启动和我们的热启动)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1030572.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最新Java JDK 21:全面解析与新特性探讨

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

STP生成树协议基本配置示例---STP逻辑树产生和修改

STP是用来避免数据链路层出现逻辑环路的协议,运行STP协议的设备通过交互信息发现环路,并通过阻塞特定端口,最终将网络结构修剪成无环路的树形结构。在网络出现故障的时候,STP能快速发现链路故障,并尽快找出另外一条路径…

放大电路的理解

如有错误,敬请指正 【电子】模拟电子技术基础 上交大 郑益慧主讲(模拟电路/模电 讲课水平堪比华成英,视频质量完爆清华版)_哔哩哔哩_bilibili

Redis面试问题三什么是缓存雪崩怎么解决

定义 缓存雪崩是因为大量的key设置了同一过期时间的导致在同一时间类缓存同时过期,而这时因为请求过来已经没有缓存了,DB压力大数据库崩溃了。 解决方法 我可以在设置过期时间的时候加一个随机时间,在1-5分钟那样可以分散过期时间&#xf…

ClickHouse面向列的数据库管理系统(原理简略理解)

目录 官网 什么是Clickhouse 什么是OLAP 面向列的数据库与面向行的数据库 特点 为什么面向列的数据库在OLAP场景中工作得更好 为什么ClickHouse这么快 真实的处理分析查询 OLAP场景的关键属性 引擎作用 ClickHouse引擎 输入/输出 CPU 官网 https://clickhouse.com…

python实现命令tree的效果

把所有的文档都传到了git上,但是内容过多找起来不方便,突发奇想如果能在readme中,递归列出所有文件同时添加上对应的地址,这样只需要搜索到对应的文件点击就能跳转过去了… 列出文件总得有个显示格式,所以就按照tree的来了… 用python实现命令tree的效果 首先,这是tree的效果…

JS 手写call、apply和bind方法

手写call、apply和bind方法 一、方法介绍1.1 call 方法1.2 apply 方法1.3 bind 二、方法的实现2.1 call 方法2.2 apply 方法2.3 bind 方法 一、方法介绍 apply、call和bind都是系统提供给我们的内置方法,每个函数都可以使用这三种方法,是因为apply、call…

Unity中关于多线程的一些事

一.线程中不允许调用unity组件api 解决方法:可以使用bool值变化并且在update中监测bool值变化来调用关于unity组件的API. 二.打印并且将信息输出到list列表中 多线程可能同时输出多条信息。输出字符串可以放入Queue队列中。队列可以被多线程插入。 三.启用socke…

计算机基础协议/概念:推送数据— —WebSocket与SSE;前端Blob/URL下载文件

计算机基础协议/概念:推送数据— —WebSocket与SSE 1 WebSocket:双向通信 1.1 概念:通信过程 ①Upgrade:浏览器告知服务器升级为WebSocket协议 ②Switch:服务器升级成功后会返回101状态码 ③Communicate&#xff1…

SQL注入脚本编写

文章目录 布尔盲注脚本延时注入脚本 安装xampp,在conf目录下修改它的http配置文件,如下,找到配置文件: 修改配置文件中的默认主页,让xampp能访问phpstudy的www目录,因为xampp的响应速度比phpstudy快得多&am…

使用EasyExcel后端导出excel

官方文档:关于Easyexcel | Easy Excel 这里进行简单记录,方便确定是不是适用此方式: 零:实体类中注解用法 一:读excel /*** 强制读取第三个 这里不建议 index 和 name 同时用,要么一个对象只用index&…

代码随想录算法训练营第二天(C) | 977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵

文章目录 前言一、977.有序数组的平方二、209.长度最小的子数组三、59.螺旋矩阵总结 前言 java版: 代码随想录算法训练营第二天 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵_愚者__的博客-CSDN博客 一、977.有序数组的平方 …

Python环境配置及基础用法Pycharm库安装与背景设置及避免Venv文件夹

目录 一、Python环境部署及简单使用 1、Python下载安装 2、环境变量配置 3、检查是否安装成功 4、Python的两种模式(编辑模式&交互模式) 二、Pycharm库安装与背景设置 1、Python库安装 2、Pycharm自定义背景 三、如何避免Venv文件夹 一、P…

【Java 基础篇】Java TCP通信详解

TCP(Transmission Control Protocol)是一种面向连接的、可靠的网络传输协议,它提供了端到端的数据传输和可靠性保证。TCP通信适用于对数据传输的可靠性和完整性要求较高的场景,如文件传输、网页浏览等。本文将详细介绍Java中如何使…

搜索二叉树【C++】

文章目录 二叉搜索树二叉搜索树的模拟实现构造函数拷贝构造函数赋值运算符重载函数析构函数Insert循环递归 Erase循环递归 Find循环递归 二叉搜索树的应用K模型KV模型 完整代码普通版本递归版本 二叉搜索树 二叉搜索树又称为二叉排序树,它或者是一棵空树&#xff0…

Spring Security 的身份验证绕过漏洞CVE-2023-34035

文章目录 0.前言漏洞漏洞介绍描述 1.参考文档2.基础介绍2.1 组件简介:2.2 漏洞简介: 3.解决方案3.1. 升级版本 0.前言 背景:公司收到关于 Spring Security 的一个身份验证绕过漏洞的通知,该漏洞被标识为 CVE-2023-34035 漏洞 高 …

滴滴可观测平台 Metrics 指标实时计算如何实现了又准又省?

在滴滴,可观测平台的 Metrics 数据有一些实时计算的需求,承载这些实时计算需求的是一套又一套的 Flink 任务。之所以会有多套 Flink 任务,是因为每个服务按照其业务观测需要不同的指标计算,也就对应了不同数据处理拓扑。我们尽力抽…

ruoyi-vue-pro yudao 项目商城 mall 模块启用及相关SQL脚本

目前ruoyi-vue-pro 项目虽然开源,但是商城 mall 模块被屏蔽了,查看文档却要收费 199元(知识星球),价格有点太高了吧。 分享下如何启用 mall 模块,顺便贴上sql相关脚本。 一、启用模块 修改根目录 pom.xm…

时序预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序列预测

时序预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序列预测 目录 时序预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序…

工具篇 | Gradle入门与使用指南

介绍 1.1 什么是Gradle? Gradle是一个开源构建自动化工具,专为大型项目设计。它基于DSL(领域特定语言)编写,该语言是用Groovy编写的,使得构建脚本更加简洁和强大。Gradle不仅可以构建Java应用程序&#x…