软件测试面试题——如何测试App性能?
为什么要做App性能测试?
如果APP总是出现卡顿或网络延迟的情况,降低了用户的好感,用户可能会抛弃该App,换同类型的其他应用。如果APP的性能较好,用户体验高,使用起来丝滑顺畅,那该应用的用户粘性也必然会提高。
那我们该如何做App性能测试,以及该关注哪些指标呢?

怎么做App性能测试?
目前,基本上都使用现有的工具来进行性能测试,比如 Android studio 中有自带工具。
也有其他公司开源的一些 性能测试的工具,主要还是分为两种,一种是自研的,一种是外部提供的开源/收费的。
自研:一般每家公司都会有都会有自研的收集性能数据的平台,当然有些是购买的外部的服务,经过二次开发之后再供使用。
开源:各大公司都有一些开源的软件免费供大家使用。
下面几款开源工具:
1、TraceView
TraceView 是Android平台配备一个性能分析的工具,用于分析计算性能,跟踪方法耗时导致的卡顿问题。它使用图形化的方式把结果呈现出来,直观的反应出代码的执行时间、执行次数。
如何使用:通过Android studio自带的traceview查看即可(Android profiler)。开发人员使用此工具的比较多,测试人员一般使用其他的开源App。
2、Emmagee
网易开发的一个Android性能监测工具,它可以可以监控单个应用性能, 并且支持用户自定义配置监控的采样频率以及性能的实时显示,最终会生成一份性能统计文件。
开源地址:https://github.com/NetEase/Emmagee ,在该地址可以下载到Emmagee 的安装包以及相关使用说明,只支持Android。
3、GT
GT(随身调)是腾 讯开源的,它支持iOS和Android两个手机平台。
GT Android版是腾讯 MIG 专项测试组自行研发的 Android APP 随身调测平台,它是直接运行在手机上的“集成调测环境”(ITE, Integrated Test Environment)。
利用GT,仅凭一部手机,无需连接电脑,即可对APP进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash日志查看、网络数据包的抓取、APP内部参数的调试、真机代码耗时统计等。
开源地址:https://github.com/Tencent/GT
4、soloPi
支付宝开源的Android自动化工具,主要有录制回放、性能测试、一机多控三项主要功能。
录制回放:SoloPi拥有录制操作的能力,用户只需要通过SoloPi执行用例步骤,SoloPi就能够将用户的操作记录下来,并且支持在各个设备上进行回放,这一切都能够在手机上独立完成。
性能测试: SoloPi能够记录待测应用的各项指标,你可以在悬浮窗中观察实时更新的数据,也可以对性能数据进行录制,在录制结束后查看图表;同时,Soloπ还支持性能加压,能够对CPU、内存进行限制,复现应用在性能较差、网络环境不佳场景下的表现。
一机多控:SoloPi支持通过操作一台主机设备来控制多台从机设备,不需要在各个设备上分别进行重复冗杂的兼容性测试,能够极大提升兼容性测试的效率。
开源地址:https://github.com/alipay/SoloPi/wiki/Performance
市面上常见的性能测试工具就这几款,可以根据自己的需求选择。笔者最近常用SoloPi。

APP性能测试关注哪些指标?
1、启动耗时
App启动耗费的时间是我们一个重要的时间,其中又分为热启动和冷启动等。
测试启动时间比较依赖人为判断,一般我们是通过录屏,然后使用分帧的工具对 启动时屏幕渲染的过程做一个精细化的耗时分析。
优点:能真实反馈App的耗时;无侵入,离线分析,可对竞品进行精细化分析
缺点:判断时间比较依赖人肉眼判断,自动化工具无法判断。
2、单位时间耗电量、单位时间网络流量消耗
3、移动终端相关资源的利用率:不仅仅服务器端的CPU、内存、磁盘I/O、网路是性能测试关注的重要内容,移动端的CPU、内存也是我们需要关注的内容之一。
- cpu 主要关注运行时cpu占有率和后台情况下的cpu占有率;
- 内存 进入某个业务场景下的的内存增量, 和 在多链路执行国购的 内存总消耗。
4、业务响应时间、帧率(fps):由于人类的特殊结构,当看画面的帧率高于24的时候,就会认为是连贯的。fps越高,画面越流畅。
- FPS 分为滑动时的FPS,如果涉及视频/动画/直播,还要该业务运行时的FPS。
以上,对APP性能测试做了个简单的介绍,了解了常见的工具以及性能指标,后续要学习的就是如何设计APP性能测试用例、APP性能测试的执行以及报告的编写等等~

相关文章:
软件测试面试题——如何测试App性能?
为什么要做App性能测试? 如果APP总是出现卡顿或网络延迟的情况,降低了用户的好感,用户可能会抛弃该App,换同类型的其他应用。如果APP的性能较好,用户体验高,使用起来丝滑顺畅,那该应用的用户粘…...
玩转C链表
链表是C语言编程中常用的数据结构,比如我们要建一个整数链表,一般可能这么定义: struct int_node {int val;struct int_node *next;}; 为了实现链表的插入、删除、遍历等功能,另外要再实现一系列函数,比如:…...
MySQL表的基础的增删改查
增(insert into) 插入所有列的数据 不写具体列名要确保字段都对应正确 -- 假设你有一个名为 "employees" 的表,有多个列 INSERT INTO employees VALUES (101, Alice, Manager, 50000);插入指定列的数据 -- 假设你有一个名为 "students" 的表&…...
数字化车间
一、数字化车间概述 数字化车间是以现代化信息、网络、数据库、自动识别等技术为基础,通过智能化、数字化、MES系统信息化等手段融合建设的数字化生产车间,精细地管理生产资源、生产设备和生产过程。随着工业4.0概念的提出,未来的工业和制造…...
基础堆排序
目录 基础堆排序 一、概念及其介绍 二、适用说明 三、过程图示 基础堆排序...
ISC 2023 | 赛宁网安验证评估 重磅发布
8月9日-10日,第十一届互联网安全大会(简称ISC 2023)在北京国家会议中心隆重举办。作为本次大会的战略合作伙伴(最高级别),赛宁网安主办 “安全验证评估论坛”,邀请邬江兴院士与业界专家共同…...
浅谈AI浪潮下的视频大数据发展趋势与应用
视频大数据的发展趋势是多样化和个性化的。随着科技的不断进步,人们对于视频内容的需求也在不断变化。从传统的电视节目到现在的短视频、直播、VR等多种形式,视频内容已经不再是单一的娱乐方式,更是涉及到教育、医疗、商业等各个领域。 为了满…...
github 无语的问题,Host does not existfatal: Could not read from remote repository.
Unable to open connection: Host does not existfatal: Could not read from remote repository. image.png image.png image.png Please make sure you have the correct access rights and the repository exists. 如果github desktop和git pull 和git clone全部都出问题了&…...
机器学习基础之《特征工程(4)—特征降维—案例》
一、探究用户对物品类别的喜好细分 1、找到用户和物品类别的关系 数据如下: (1)order_products__prior.csv:订单与商品信息 字段:order_id,product_id,add_to_cart_order,reordered…...
docker 删除镜像文件
docker 容器里面太多镜像,D盘满了 四 查看和移除镜像 1 查看镜像 docker images 2 移除镜像命令 docker rmi 镜像名称 # 只输入前四位即可 五 实际有效操作 清除所有不使用的资源 docker system prune 这个命令将会删除所有不使用的镜像、容器和数据卷等资…...
ArcGIS Pro 基础安装与配置介绍
ArcGIS Pro ArcGIS Pro作为ESRI面向新时代的GIS产品,它在原有的ArcGIS平台上继承了传统桌面软件(ArcMap)的强大的数据管理、制图、空间分析等能力,还具有其独有的特色功能,例如二三维融合、大数据、矢量切片制作及发布…...
剑指 Offer 13. 机器人的运动范围
地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如&am…...
技术应用:Docker安全性的最佳实验|聊聊工程化Docker
🔥 技术相关:《技术应用》 ⛺️ I Love you, like a fire! 文章目录 首先,使用Docker Hub控制访问其次,保护密钥写在最后 不可否认,能生存在互联网上的软件都是相互关联的,当我们开发一款应用程序时&#x…...
【Tomcat】Tomcat部署及优化
Tomcat 它是一个免费、开源的web应用服务器;基于java代码开发的软件;处理动态请求和基于Java代码的页面开发; 可以在html当中写入Java代码,Tomcat可以解析html页面当中的Java代码,执行动态请求以及动态页面 缺点&#…...
xAI与GPT-4:探索宇宙真实本质的AI之战
xAI与GPT-4:AI之战 写在前面第一部分第二部分推动科学研究提升人机交互引发伦理和社会问题 第三部分模型的进一步优化跨领域合作人机融合 最后总结 写在前面 人工智能(AI)领域的发展一直以来都备受关注,而近期马斯克宣布成立xAI&…...
unity vscode 代码关联 跳转 BUG
一早打开电脑发现代码关联失效了,目测可能跟昨天一些插件更新有关 结论 就这货,开了就没法提示代码关联,估计预览版全是BUG。 另一个坑 同期有个unity插件也是预览版,“非常好使”,当场去世。评论点开有好几个人说用…...
Linux命令200例:tree用于以树状结构显示文件和目录
🏆作者简介,黑夜开发者,全栈领域新星创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 &…...
[C++项目] Boost文档 站内搜索引擎(5): cpphttplib实现网络服务、html页面实现、服务器部署...
在前四篇文章中, 我们实现了从文档文件的清理 到 搜索的所有内容: 项目背景: 🫦[C项目] Boost文档 站内搜索引擎(1): 项目背景介绍、相关技术栈、相关概念介绍…文档解析、处理模块parser的实现: 🫦[C项目] Boost文档 站内搜索引擎(2): 文档文本解析模块…...
PO、VO、DAO、BO、DTO、POJO 能分清吗?
一、PO :(persistant object ),持久对象 可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择。 二、VO :(value object) ,值对象 通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的…...
31 | 独角兽企业数据分析
独角兽企业:是投资行业尤其是风险投资业的术语,一般指成立时间不超过10年、估值超过10亿美元的未上市创业公司。 项目目的: 1.通过对独角兽企业进行全面地分析(地域,投资方,年份,行业等),便于做商业上的战略决策 项目数据源介绍 1.数据源:本项目采用的数据源是近…...
Redis缓存雪崩、穿透、击穿:成因、解决方案与代码实现
Redis缓存雪崩、穿透、击穿:成因、解决方案与代码实现 在现代高并发系统中,Redis作为高性能缓存被广泛应用,但缓存雪崩、穿透和击穿问题可能引发系统崩溃。本文将深入分析这三种问题的成因,并提供实用的解决方案与代码实现&#…...
网络故障定位工具怎么搭配:Wireshark、tcpdump、监控平台各自该在什么时候上场?
网络故障定位工具怎么搭配:Wireshark、tcpdump、监控平台各自该在什么时候上场? 很多团队的网络排障效率低,不是因为没人干活,而是因为工具顺序用反了:明明问题还在“先确认范围”的阶段,就急着抓全量包&am…...
PiliPlus:如何用一款跨平台B站客户端实现全设备无缝追番体验
PiliPlus:如何用一款跨平台B站客户端实现全设备无缝追番体验 【免费下载链接】PiliPlus PiliPlus 项目地址: https://gitcode.com/gh_mirrors/pi/PiliPlus 想要在手机、平板、电脑上都能流畅观看B站内容吗?PiliPlus作为一款基于Flutter开发的开源…...
Gemma-4-26B-A4B-it-GGUF入门指南:WebUI中启用streaming响应与禁用流式输出对比体验
Gemma-4-26B-A4B-it-GGUF入门指南:WebUI中启用streaming响应与禁用流式输出对比体验 1. 项目概述 Gemma-4-26B-A4B-it-GGUF是Google Gemma 4系列中的高性能MoE(混合专家)聊天模型,具备256K tokens的超长上下文处理能力ÿ…...
Phi-4-mini-reasoning应对403 Forbidden:智能诊断与权限修复建议
Phi-4-mini-reasoning应对403 Forbidden:智能诊断与权限修复建议 1. 为什么403错误让人头疼? 遇到403 Forbidden错误就像被关在门外——你知道资源就在那里,但就是无法访问。这种错误在Web开发和API调用中特别常见,可能由各种原…...
2026年降AI工具改写后阅读自然度对比:哪款工具改出来的文字最通顺
2026年降AI工具改写后阅读自然度对比:哪款工具改出来的文字最通顺 帮五个同学处理过论文,加上自己用的,总共测过六七款工具。 结论先说:综合价格、效果、售后,嘎嘎降AI(www.aigcleaner.com)是…...
风控规则上线前怎么做回放验证?历史样本回放、命中对比、效果校验全拆开讲
风控规则上线前怎么做回放验证?历史样本回放、命中对比、效果校验全拆开讲 这篇不讲“上线前跑一下历史数据”这种宽泛表述,直接按真实风控项目来拆:样本池怎么建、回放任务怎么发、规则引擎怎么复用、结果怎么比、哪些指标能决定是否允许上线…...
MusicPlayer2:你的Windows音乐管家,三步打造专属音乐空间
MusicPlayer2:你的Windows音乐管家,三步打造专属音乐空间 【免费下载链接】MusicPlayer2 MusicPlayer2是一款功能强大的本地音乐播放软件,旨在为用户提供最佳的本地音乐播放体验。它支持歌词显示、歌词卡拉OK样式显示、歌词在线下载、歌词编辑…...
怎样轻松配置魔兽争霸3优化工具:完整实用指南
怎样轻松配置魔兽争霸3优化工具:完整实用指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代电脑上的兼容性问题而…...
5步终极指南:如何用XJoy实现免费游戏手柄改造,轻松获得低成本游戏设备升级方案
5步终极指南:如何用XJoy实现免费游戏手柄改造,轻松获得低成本游戏设备升级方案 【免费下载链接】XJoy Use Nintendo Switch JoyCons as a virtual Xbox 360 controller in Windows 项目地址: https://gitcode.com/gh_mirrors/xjo/XJoy 还在为昂贵…...
