7年经验之谈 —— 如何高效的开展app的性能测试?

news2025/1/9 2:32:26

APP性能测试是什么

从网上查了一下,貌似也没什么特别的定义,我这边根据自己的经验给出一个自己的定义,如有巧合纯属雷同。

客户端性能测试就是,从业务和用户的角度出发,设计合理且有效的性能测试场景,制定各性能场景下的客户端性能指标(内存、CPU、卡顿数、帧率、电量、加载时长等),并制定规范化的执行流程,按照执行标准执行性能场景同时使用性能测试具收集性能数据,并对数据进行分析,如果有性能问题并对问题进行定位,配合开发进行修复验证发布,最后输出完整的性能报告。

从上面的定义中,我们可以得出,在APP的性能测试需要关注以下几方面,性能测试的场景的设计、性能指标的定义、规范化的执行流程、性能数据数据收集、性能数据分析、性能问题定位、性能测试报告。

性能测试并不是说我们上来找个工具,随便跑个场景,拿到数据,输出个报告,就可以了。每一步都应该做到有的放矢,从而体现出测试人员的专业性。

image-20210817201225068

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

APP性能测试怎么做

下面我们分别来看一下:

性能测试场景的设计

场景可能是一个操作的不断重复,也可能是几个操作的组合再重复,对于性能测试的场景来说,他一定有重复的操作或者持续的操作,目的是通过重复或者持续的操作,把性能问题放大到一定程度,能够让我们发现问题。

举个栗子:以B站推荐tab为例,想测试feed滑动情况下的性能表现,那性能场景可以设计成,feed滑动50次,每次滑动间隔2s。

性能指标的定义

常见的移动端性能指标有:内存、cpu、帧率、卡顿数、wakp up数、展示时长等,关注什么性能指标是依托于我们的性能测试场景。

举个栗子:以B站推荐tab为例,当我们冷启APP进入推荐tab的时候,更关注数据展示时长,滑动场景更关注卡顿数,为不同场景设计合理的性能指标也是我们需要认真考虑的。

规范化执行流程

场景和指标都定义好了以后,就要开始执行了,这里要求要规范化执行,规范化执行不是简单的按照场景的定义去执行就好,而是要有很多关注的点。

可以定义的规范有哪些:

 - 场景开始执行前需要等待多少s
 - 执行后需要等待多少s
 - 每次测试需不需要冷启或是必须重新安装
 - 安装好需要等待多久才可以开始测试
 - 测试账号、测试数据、设备、网络需不需要固定

每一个点都可能影响的性能数据的准确性,必须要定义规范,每次都要按着规范去执行,而且这个规范是动态,随着我们不断的测试,会发现很多影响性能数据的问题,都必须定制规范,加以规避。同时好的规范能够未我们后面进行性能数据分析打下基础。

image-20210817203621029

性能数据数据收集

性能数据收集可能是整个客户端性能测试中最简单的部分了,有成熟的工具perfdog可以使用,方便简单,也可以使用商业化的perfdog service实现自动化的性能数据收集,就是需要花钱。

性能数据分析

在收集到性能数据之后,就要去分析数据,如何分析,下面我简单说一下,后面会出文章专门说如何对性能数据进行分析

  • 走势图,从走势图上我们大致可以看出该场景在当前版本的性能表现,可以得出以下结论:

    • 和之前版本的走势图进行对比,性能指标的波动情况
    • 性能指标峰值、场景的均值以及涨幅的变化
  • 场景的起始值与之前版本的变化

  • 场景结束后的值与之前版本的变化

性能问题定位

在进行完性能数据分析以后,如果有问题,就需要去定位问题是那一块业务的问题或者是哪一个mr引起的问题,就需要回溯。

  • 先找开发,和开发沟通一下,看能否根据问题表象确定问题,如果确认不了,就需要测试定位是哪个mr合入引起的
  • 列出本次版本合入所有mr,筛选出那些mr是性能问题所在的业务
  • 找mr合入前后的包重新跑,确认每个mr是否有影响
  • 当确定是哪个mr合入引起的性能问题后,再次和开发沟通

性能测试报告

性能测试报告的目的是给出当前版本的性能表现情况,需要包含一些核心的模块

  • 测试结论
  • 性能问题归因
  • 各个场景的性能指标数据
  • 测试环境以及方案
  • 各个场景的性能指标走势图

以上我对app性能测试的一些粗浅理解和经验,有问题可以留言,一起探讨。。

今天的分享就到此结束了,大家还有什么不懂的可以评论区下提问哈,如果我的文章对你有所帮助的话,可以点赞三联支持一下哈

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

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

相关文章

一体化运维管理平台:为企业提供全面监控和运维服务

随着科技的不断发展,信息技术已经渗透到了各行各业中。尤其是对于大多数企业来讲,IT系统的稳定性、安全性和可靠性至关重要。 在现代企业中,一个稳定且高效的IT运维管理系统已经成为企业数字化转型中不可或缺的一部分,它可以帮助…

短视频商城系统的技术架构与最佳实践

短视频商城系统的概念正在迅速崭露头角,它不仅融合了视频内容和电子商务,还需要一个坚固的技术架构来支持其功能。在本文中,我们将探讨构建短视频商城系统的关键技术组件以及最佳实践,并提供一些示例代码来说明这些概念。 技术架…

Flink DataStream 体系

前言 本文隶属于专栏《大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 思维导图 正文 对 Flink 这种以流为核心的分布式计…

中文版开源!这或许是最经典的编程教材

大家好,我是涛哥。 《Think Python》是很多Python初学者的不二入门教材,受到广泛好评。该书原作者是美国Olin工程学院的教授Allen B. Downey,目前该书的原版和中文翻译电子版本都已免费开源。 该书可以直接在官网下载或者阅读英文版第二版&a…

Linux系统编程:文件编程

一 常用API 打开、创建、关闭文件&#xff0c;读写文件&#xff0c;利用man指令查询相关说明 open & create man 2 open 或 man 2 create NAMEopen, creat - open and possibly create a file or deviceSYNOPSIS#include <sys/types.h>#include <sys/stat.h…

海外专线网络费用

在企业海外扩展和开展业务时&#xff0c;建立可靠的网络连接是至关重要的。而海外SD-WAN专线网络作为一种优化广域网连接的解决方案&#xff0c;提供更好的连接质量和性能。本文将介绍海外SD-WAN专线网络的费用组成&#xff0c;帮助企业更好地了解和规划网络投资。 1. 专线租用…

python趣味编程-恐龙克隆游戏

Python 中使用 Turtle 的恐龙克隆游戏免费源代码 使用 Turtle 的恐龙克隆游戏是一个用Python编程语言编码的桌面游戏应用程序。该项目包含在 Chrome 浏览器中克隆实际恐龙游戏的多种功能。该项目可以使正在修读 IT 相关课程的学生受益。这个应用程序非常有趣,可以帮助您学习创…

博客之QQ登录功能(一)

流程图 上图spring social 封装了1-8步需要的工作 1、新建包和书写配置文件 public class QQProperties {//App唯一标 识private String appId "100550231";private String appSecret "69b6ab57b22f3c2fe6a6149274e3295e";//QQ供应商private String…

1688API接入说明(1688商品详情+关键词搜索商品列表)商品详情数据,商品sku数据

1688商家订单详情API接口可以帮助你开拓新的业务机会。通过API&#xff0c;你可以将自己的业务系统与1688平台连接起来&#xff0c;利用1688平台丰富的资源和渠道优势&#xff0c;扩大你的业务范围。此外&#xff0c;1688商家订单详情API接口还支持多种语言和格式&#xff0c;如…

Docker入门,Docker是什么?有什么用?该怎么用?

目录 1. 项目部署时的复杂性&#xff1f; 2. Docker是如何解决依赖兼容问题的&#xff1f; 3. 众多Linux操作系统发行版的区别 4. Docker 是如何实现跨系统运行的&#xff1f; 5. Docker与虚拟机的差别 6. 镜像(Image)与容器(Container) 7. DockerHub 8. Docker 架构 …

Python 操作 CSV

使用过 CSV 文件都知道&#xff1a;如果我们的电脑中装了 WPS 或 Microsoft Office 的话&#xff0c;.csv 文件默认是被 Excel 打开的&#xff0c;那么什么是 CSV 文件&#xff1f;CSV 文件与 Excel 文件有什么区别&#xff1f;如何通过 Python 来操作 CSV 文件呢&#xff1f;带…

创建开机自启的脚本

在启动许多ros节点时有多种方式&#xff0c;我推荐使用launch来启动所有的节点&#xff0c;这也是一种规范的方式。以后会慢慢向这个方向靠。 除此之外还可以通过创建的脚本来启动&#xff1a; 脚本位置不限&#xff0c;只需要&#xff1a; sudo gedit xxx.sh在里面添加相应的…

网站框架识别方法

cms一般有dedecms(织梦&#xff09;&#xff0c;dzcms&#xff0c;phpweb&#xff0c;phpwind&#xff0c;phpcms&#xff0c;ecshop&#xff0c;dvbbs&#xff0c;siteweaver&#xff0c;aspcms&#xff0c;帝国&#xff0c;zblog&#xff0c;wordpress等。 一般cms都有特定的…

ES6——知识点记录

这里写目录标题 1.字符串支持1.codePointAt——根据字符串码元的位置得到其码点2.includes——判断字符串中是否包含指定的子字符串3.startsWith——判断字符串中是否以指定的字符串开始4.endsWith——判断字符串中是否以指定的字符串结尾5.repeat——将字符串重复指定的次数&a…

AB试验(二)统计基础

AB试验&#xff08;二&#xff09;统计基础 随机变量 均值类指标&#xff1a;如用户的平均使用时⻓、平均购买金额、平均购买频率等 概率类指标&#xff1a;如用户点击的概率(点击率)、转化的概率(转化率)、购买的概率 (购买率)等 经验结论&#xff1a;在数量足够大时&#…

Vibro-meter VM600 200-510-041-021数字量控制板卡

Vibro-meter VM600 200-510-041-021 数字量控制模块通常用于振动监测和机械设备的控制系统中&#xff0c;以执行振动数据采集、分析和控制任务。以下是通常情况下数字量控制模块的一些产品特点&#xff1a; 多通道输入&#xff1a;这些模块通常配备多个输入通道&#xff0c;以接…

浅析数字孪生在科学研究中的作用和优势

在科学研究领域&#xff0c;数字孪生技术正迅速崭露头角&#xff0c;为研究人员提供了前所未有的工具和资源&#xff0c;以更深入、更全面地理解复杂的自然现象和系统。本文带大家探讨数字孪生对科学研究的作用&#xff1a; 1. 精准建模和仿真 数字孪生技术允许科学家创建真实…

【Minecraft】Lucky Block(幸运方块)mod介绍

文章目录 mod介绍支持版本mod作者合成方式幸运值使用方法总结 mod介绍 幸运方块模组虽然只是添加了一个方块&#xff0c;两种武器&#xff0c;一种药水&#xff0c;但拥有超过一百种可能性&#xff01; 简单地打破幸运方块&#xff0c;它将开出意想不到的东西&#xff01; 你可…

云原生安全性:构建可信任的云应用的最佳实践

文章目录 云原生安全性的重要性1. 数据隐私2. 恶意攻击3. 合规性要求4. 业务连续性 构建可信任的云应用的最佳实践1. 安全开发2. 身份验证与授权3. 容器安全性4. 监控与审计5. 持续集成与持续交付&#xff08;CI/CD&#xff09;6. 安全培训和教育 未来趋势&#xff1a;服务网格…