惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
B
Blog
Stack Overflow Blog
Stack Overflow Blog
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tailwind CSS Blog
MongoDB | Blog
MongoDB | Blog
小众软件
小众软件
博客园 - 三生石上(FineUI控件)
Recent Announcements
Recent Announcements
U
Unit 42
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
腾讯CDC
D
DataBreaches.Net
Microsoft Azure Blog
Microsoft Azure Blog
G
Google Developers Blog
M
MIT News - Artificial intelligence
P
Proofpoint News Feed
罗磊的独立博客
L
LangChain Blog
V
Visual Studio Blog
雷峰网
雷峰网
aimingoo的专栏
aimingoo的专栏
宝玉的分享
宝玉的分享

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理,
产品经理:性能测试了解下?
产品宅 · 2024-07-17 · via 人人都是产品经理

本文将深入探讨性能测试的重要性,介绍不同类型的性能测试,并解释如何通过性能测试来优化系统性能。从产品经理的视角出发,我们将学习如何关注关键性能指标,以及如何阅读和理解性能测试报告。

小A接到个网站设计需求,由于是感兴趣的领域,拿到手可开心了。哼哧哼哧画了好几天原型,又拿着菜刀架在开发脖子上猛干了几天,终于在一个月黑风高的晚上上线了这个网站。

然而过了不久,客服电话被打爆,所有投诉都是一句话“你xxx还让不让人用了!一直在加载是什么鬼?”于是,在第一百个投诉打来的时候,小A已经骑着电驴去送外卖了。而导致小A捡瓶盖的罪魁祸首浏览人数过多,系统直接崩了。

至今,被采访的小A都表示“现在就是后悔,非常后悔,怎么就没盯下性能测试呢?”为了避免过早和小A合伙送外卖,我们一起来学习下性能测试吧。

01 什么是性能测试?

性能测试是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。

在产品上线前,我们无法知道用户数量,而且用户场景也存在不确定性,一旦用户多了就可能整出各种幺蛾子,所以需要进行系统性能测试。

性能测试可以告诉我们用户数量增加、系统负载增加时,系统能承受的并发用户数量,以及带宽是否够用、cpu是否够用、内存是否够用、硬盘速度是否跟得上等问题。

02 性能测试测什么?

性能测试的类型和划分网上有很多定义,我这取比较常见的几个

  • 负载测试(Load Testing):负载测试主要测试软件系统在不同负载下,性能指标是否符合预定指标,譬如在一定负载时,系统最大支持多少并发用户数,软件请求出错率等。
  • 压力测试(Stress Testing):压力测试是指在被测系统在一定饱和状态下,例如CPU、内存等在饱和使用情况下,系统能够处理的会话能力。说人话就是看看在极端情况下系统还能不能转得起来。
  • 容量测试(Volume Testing):确定系统最大承受量,譬如系统最大用户数,最大存储量,最多处理的数据流量等。

03 作为产品需要关注的性能点有哪些?

为了安稳端好产品经理的饭碗,我们需要关注这些性能点:

  1. 系统处理一个请求或一个任务耗时多少?
  2. 系统最多支持多少用户访问、系统最大业务处理量是多少?
  3. 系统性能可能存在的瓶颈在哪里?
  4. 系统能否支持7×24小时的业务访问?

04 性能测试的常见指标有哪些?

上面叨叨了这么多,大家对性能测试和需要关注的内容应该有所了解了,那么作为产品,我们怎么对性能测试进行验收呢?为了防止被忽悠,这里我们需要了解一些性能的关键指标:

1. 外部指标

  • 吞吐量:每秒钟系统能够处理的请求数、任务数。
  • 响应时间:服务处理一个请求或一个任务的耗时。
  • 错误率:一批请求中结果出错的请求所占比例。

2. 内部指标

  • 从服务器的角度看,性能测试主要关注CPU、内存、服务器负载、网络、磁盘IO等。

由于我们是只用指手画脚,不用自己操刀的产品经理,我们只需要重点关注外部指标就可以了。接下来我们学习这些外部指标。

对于响应时间,我们比较关注的是它的均值、中位值、P95值、P99值等。平均值和中位值比较好理解,P分位值是什么意思呢?以P95为例,将响应时间从小到大排列,顺序处于95%位置的值就是P95值。

产品经理:性能测试了解下?

系统吞吐量则有几个重要参数:QPS(TPS)、并发数、响应时间:

  • QPS(TPS):每秒钟request/事务数
  • 并发数:系统同时处理的request/事务数
  • 响应时间:一般取平均响应时间

QPS(TPS)=并发数/平均响应时间

可以看出一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降。

在低吞吐量下的响应时间的均值、分布比较稳定,不会产生太大的波动。而在高吞吐量下,响应时间会随着吞吐量的增长而增长,增长的趋势可能是线性的,也可能接近指数的。当吞吐量接近系统的峰值时,响应时间会出现激增。

产品经理:性能测试了解下?

上图便是吞吐量、响应时长、并发数几者的关系图。横坐标是并发数,绿线是CPU使用率,紫线是吞吐量,即QPS,蓝线是响应时间。

05 测试报告长啥样?

理论终归于实践,能看懂测试报告,那读这篇文章的目的才算达到了。

1. 测试概述

1.1 测试目标

本次测试的目的在于探查XXX项目二期重构环境的系统业务处理性能,以及在高负载情况下的系统表现。

1.2 指标和术语
描述本次测试中涉及到的性能指标术语

产品经理:性能测试了解下?

2. 环境、工具

2.1 测试环境

服务器:

产品经理:性能测试了解下?

客户机:

产品经理:性能测试了解下?

2.2 测试工具

产品经理:性能测试了解下?

3. 测试方案

3.1 测试类型

本次性能测试将主要采用以下几种测试类型:

  • 基准测试:在小并发条件下,探测系统各性能指标表现,作为后续比对基础。
  • 压力测试:由于无法准确预估用户访问量,因此考虑使用压力测试方法。压力测试旨在通过不断 增加系统并发处理事务数,增加系统负载,直到系统到达性能瓶颈。以此推算出系统可承载用户和事务请求数。稳定性测试:
  • 将系统置于较长时间高负载场景下,探测系统是否出现稳定性缺陷。

3.2 业务模型

针对系统接口,究竟哪些需要被纳入压测范畴?不同事务应该以何种比例被调用,这是需要建模设计的,也是性能测试的难点之一。

通过对于项目架构和业务场景分析,设计以下业务模型进行模拟和测试:

场景1:简单业务场景

产品经理:性能测试了解下?

场景2:混合业务场景

产品经理:性能测试了解下?

3.3 加密验签处理

由于系统对于所有事务请求都进行了加密验签处理,因此在本次性能测试中,需要对请求报文进行一致的加密和签名。处理逻辑如下:

  • 使用APP同样的加密签名代码,导出jar包做为加密工具类
  • 使用jmeter前置处理器-beanshell处理器调用上述jar包方法实现请求参数加密
  • 将加密签名后的请求参数存储为变量,后续接口调用时使用

3.4 压力梯度

对于3.2所述场景,分别进行梯度加压,从100并发开始,每次递增100并发数,直至到达系统瓶颈。

4. 测试结果

4.1 聚合报告

产品经理:性能测试了解下?

场景1-10并发-循环5次

产品经理:性能测试了解下?

场景1-500并发-循环1次

产品经理:性能测试了解下?

场景1-550并发-循环1次

产品经理:性能测试了解下?

4.2 系统吞吐量

场景1-550并发-循环1次

产品经理:性能测试了解下?

场景2-450并发-循环10次

产品经理:性能测试了解下?

4.3 资源占用率

最优负载条件下:CPU使用率

产品经理:性能测试了解下?

内存占用率

产品经理:性能测试了解下?

磁盘使用率

产品经理:性能测试了解下?

5. 分析和建议

5.1 测试结论分析

经过多次测试和数据报表分析,可以得出如下结论:

  • 当总体并发用户数为450-500时,系统具有最优性能表现;当事务并发数超过500时,事务失败率整体上升,系统到达性能拐点。
  • 多事务混合条件下,系统巅峰TPS在90左右,平均吞吐量在13-18/s。
  • 在小压力条件下(10并发),最大事务响应时间为查询用户信息事务的2042毫秒,平均在600毫秒左右系统。整体事务微观响应速度较优。
  • 满负载条件下,登录具有最佳的性能表现,平均响应时间为7000-12000毫秒;查询用户信息事务性能较差,平均响应时间在30000-40000区间。满负载条件下系统整体微观响应时间较差。查询用户接口由于其使用极为频繁,建议进行SQL效率调优
  • 系统资源方面,内存占用率始终处于高位水平(90%以上),磁盘空间由于日志写入而不断被占用。

5.2 问题

测试过程中发现了如下显著问题:

  • 加密验签功能并未生效-现阶段任何签名均可通过验签。属于功能性问题,不影响性能表现。
  • 日志文件由于不断写入导致磁盘占满,建议调低系统日志级别,并做好定期日志备份。
  • 内存占用处于高位水平,需要进一步探查原因。

作者:阿宅的产品笔记;公众号:阿宅的产品笔记

本文由 @阿宅的产品笔记 原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自Unsplash,基于CC0协议。

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务