如何制定性能测试的指标

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 干货

有一些问题集中在如何确定并发数,我在原文中有这么一段话

衡量性能测试的指标,很多人会说是并发。并发指同一时间节点发生的事情,但这个同一时间并不是一个标准的度量,也不是我们性能测试直接测量出来的指标。在性能测试中往往是通过在工具中增加虚拟用户数得到的接口每秒的调用量去衡量。

我想大家没仔细看这一段话,那我们就来进一步解析为什么不直接说并发,当你问我这个问题是,我也想问下你是如何衡量并发的?很多人回答不上来,也有人拿出一套公式给我,公式中充满了晦涩的概念以及经验值,在我的经验当中,也没有哪个公司套用这个公式。

image.png




我继续追问,你觉得并发的单位应该是什么?很多同学又支支吾吾,自己提的问题自己也越来越迷糊了,回到并发这个词,要去衡量服务器同时处理的事情,已经不能用时间作为载体,因为再小的时间单位也可以继续细分,甚至我们需要追溯到cpu处理器的核数,但事实上这是不现实也没有太大意义,这个并不能很好的评估业务承载量,因此我们引入了相对并发的概念,通过每秒调用的次数来衡量并发,也就是我们通常所说的tps,tps是最被广泛接受的衡量性能好差的指标。所以你在问别人如何去评估并发时,一定要想清楚并发是什么?


我遇到过一个场景,测试、开发运维在一起聊的热火朝天讨论这次活动的并发量,但是最终没有形成任何结论,后来我又仔细推敲了下,开发所说的并发是网站的活跃人数,运维认为的并发是网关连接数,测试认为的并发是测试工具中的线程数,每个人想的都不一样,试问这样的情况讨论三天三夜又能如何?就算讨论出结果又如何去实操落地呢?


我的专栏中如果问我性能核心指标如何制定,我只认tps,你不要说并发,因为我不知道你有没有理解清楚并发是什么,你是怎么去衡量的,这点没形成共识,其他的无从谈起。


接下来继续晒问题,有人拿出一些数据问我应该如何指定tps,比如有人跟我说他么一天的访问数是10W,该怎么指定性能指标?这样的颗粒度还是很粗的,有同学说去套用用28原则,我的建议是先去和监控相关的同事聊有没有颗粒度更细的监控,关于颗粒度的细化在专栏中也有所提及,其实在性能领域没有太多的推倒公式,绝大多数都是依靠实际数据做决策。


所以关于指标制定记住两个重要准则

  • 首先在团队内部对性能指标的认知达成共识
  • 历史数据是最直接的依托,提供了具体的访问数值和增长趋势作参考


真实准确的结果都是靠测出来,如果都能推出来,阿里巴巴还需要提出线上性能测试干什么呢?性能环境测出一个结果去用公式算一下不就行了?事实上,没有这些捷径。


还有同学提问,我么是没有监控数据怎么办?

但我认为你所说的仅仅代表你自己的认知,不代表公司的实际情况,绝大部分公司都会有网关日志记录访问数据,通过这部分日志就能提取到实际访问的tps,如果运维没有做加工,可能就是告诉你简单两个字:没有,这种情况是最典型的,实际上有但你获取不到加工不了。

第二种情况是新项目数据都没进来,确实没有,我的做法是先对新接口做一轮基准测试,根据指标排序,重点关注并先优化性能较差的接口;了解周边数据,比如这次新项目有没有活动推送,推送量是多少,历史转化率是多少,多少用户注册等,通过时间去层层推进,不断丰富数据场景,这是一个过程,如果什么数据都没有,就应当进行数据基础建设,而不是想通过经验值公式或者咨询大咖怎么办,除了做基础建设为之后铺路其他没有什么好办法,不完整的过程不可能得到一个完整的结果。通过这篇我希望大家可以对性能指标认知和制定上更上一个层次,还有知道如何走向正确的方向。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
6月前
|
机器学习/深度学习 搜索推荐 算法
推荐系统离线评估方法和评估指标,以及在推荐服务器内部实现A/B测试和解决A/B测试资源紧张的方法。还介绍了如何在TensorFlow中进行模型离线评估实践。
推荐系统离线评估方法和评估指标,以及在推荐服务器内部实现A/B测试和解决A/B测试资源紧张的方法。还介绍了如何在TensorFlow中进行模型离线评估实践。
426 0
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
57 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
6月前
|
JSON 数据可视化 测试技术
性能测试之Artillery(示例及指标)
性能测试之Artillery(示例及指标)
83 2
|
4月前
|
测试技术
单元测试策略问题之行覆盖率和分支覆盖率之间的问题如何解决
单元测试策略问题之行覆盖率和分支覆盖率之间的问题如何解决
154 7
|
4月前
|
Java 测试技术 Spring
单元测试策略问题之平衡单元测试和集成测试的问题如何解决
单元测试策略问题之平衡单元测试和集成测试的问题如何解决
|
5月前
|
测试技术 Windows
软件测试之 性能测试 性能测试基础指标 Loadrunner、Jmeter等工具(下)
软件测试之 性能测试 性能测试基础指标 Loadrunner、Jmeter等工具(下)
72 2
|
5月前
|
测试技术 程序员
软件测试之 性能测试 性能测试基础指标 Loadrunner、Jmeter等工具(上)
软件测试之 性能测试 性能测试基础指标 Loadrunner、Jmeter等工具(上)
100 1
|
6月前
|
敏捷开发 数据可视化 安全
测试度量指标
测试度量指标
|
6月前
|
敏捷开发 自然语言处理 数据可视化
敏捷测试度量指标
敏捷测试度量指标
121 0
|
6月前
|
XML 安全 JavaScript
常见性能测试指标
常见性能测试指标
113 0