概述
性能测试依照不同视角,能够分为以下几类:
a. 用户视角的性能
用户角度感触到的网站响应速度的快和慢。从用户在浏览器输出网址/关上利用, 到整个页面出现给用户的耗时。蕴含了用户端发送申请,服务端收到并执行申请,返回 申请,客户端收到之后渲染的总工夫。
b.开发人员视角的性能
包含零碎吞吐量,并发解决能力,零碎稳定性,响应提早等。如果发现有不满足要求的中央,须要定位出问题所在,并给出解决方案。
c.运维
次要关注基础设施性能和资源利用率,如网络运营商带宽能力,服务器应急配置, 数据中心网络架构,服务器和网络带宽的资源利用率等。
为什么要做接口压力测试
1.分明本人所提供的接口性能是多少
2.判断出零碎可能存在的问题(代码,DB,cache,系统配置,容量等),提前解决
3.为设置接口的限流/熔断做参考
接口压力测试的局限性
接口压力测试只重视单业务的接口性能,进行压测的时候,只关注个别接口的性能。
接口大部分工夫是在线下进行,可能线上线下机器配置不一样,而且线上同时在进 行着各种不同的业务。
因而在线下进行接口压力测试的后果,只能作为线上配置的一个参考值。
谁来做接口压力测试
对接口比拟相熟的开发人员来做,这样有以下益处:1.对接口实现比拟理解,对接口中潜在的问题有肯定的预判2.比拟容易对接口进行优化(业务逻辑层面和技术层面)。
如何做接口压力测试
通常应用 Jmeter ,loadRunner, Metersphere 等进行压力测试。
如何设计接口压力测试计划
1.如何确定并发数:
能够通过尝试的形式。第一次压测的时候,能够设置本人预期接口须要达到的并发 数,进行压力测试。而后通过二分法进行调整。
举例:如果冀望的并发数是 100 ,第一次压测并发数设置为 100 ,如果零碎没有 压力,第二次并发就尝试设置为 200。如果零碎有压力,下次就设置为 150。通过逐步 尝试的形式,找出以后接口的并发阈值。
2.如何确定总申请次数:
有时候单纯的通过并发数并不能齐全发现零碎的压力情况,因为并发数只能测出零碎的解决能力。
然而有时随着长时间的调用,零碎可能会呈现其余问题。比方:随着数据量的增多, 存储磁盘满了、内存缓存用光,缓存服务应用磁盘缓存而拖慢零碎等状况。
为了防止这种状况,能够尝试用现有线上业务每天产生的数量乘以肯定的天数(天 数的大小视业务的具体情况而定,举荐 180 天以上),作为接口压力测试的总申请次数。
3.接口压力测试数据的选取:
通常随机抉择数据。然而要留神反复进行压力测试对性能的影响。比方:
第一次压测的 Id 是从 2500W 到 2600W 之间抉择的,下次用同样的 Id 范畴做压 测的时候,如果接口实现中有缓存,则会很大水平影响压力测试的后果,对压力测试的 解读时候,要思考到这个因素。
另外,应用不存在的 Id 去进行压测,后果并没有太大意义。
压力测试报告应该蕴含哪些后果
1.接口压力测试后果
2.服务器压力
每次接口压力测试时,接口所在服务的服务器 cpu/jvm 使用率历史记录,jvm堆大
小,响应时长图 (借助 pinpoint 查看),cpu load 值(top 命令),gc 信息等。
如何解读压力测试的后果
1.对于接口压力测试后果:
关注响应工夫是否符合要求,响应工夫(前 99%) 是不是在可容许的范畴内。最大值是多少,是否能够容忍。通常来说,谬误百分比应该为 0。
2.对于服务器压力:
看 cpu 使用率是否在可承受范畴内,jvm 堆大小是否变动频繁,是否有 fullGC。Young GC 耗时,CPU load 值是否在可承受范畴内。响应时长图是否平滑(如果有毛 刺景象,须要找出起因)。
如何依据测试后果定位性能问题
1.响应工夫不符合要求:
通过 pinpoint 察看调用链,找出耗时比拟长的步骤,进行优化
2.并发数达不到要求,能够从以下几个方面进行思考:
a 是否产生零碎依赖资源争用(比方:数据库连贯,业务解决线程数等)b 业务流程/代码性能是否能够优化
c 在运行的过程中是否频繁 GC
- CPU 使用率过高:
a 在运行的过程中是否频繁 GC
b 是否产生过多的线程切换
c 程序中是否有比拟耗 cpu 的代码
全链路:pinpoint
修复性能问题
除了只可能在极其压力测试状况下会产生的性能问题,并且修复代价过大的问题可 以不进行修复(然而要在压力测试报告中体现进去此问题,以及解决方案),其余问题 都必须进行修复。
其余
如果没有专门的接口压力测试环境,记得做完接口压力测试之后,将测试数据革除(缓存,数据库,消息中间件中未生产结束的音讯等)
《2021接口测试白皮书》传送门 >>>
一站式播种前沿测试开发技术、先进测试治理教训,结识业界大咖精英