产品体验中心 下载与支持 产品社区 合作代理 |  咨询电话:400-035-7887/021-6072 5088
当前位置:泽众软件测试网- 技术文章 -正文

如何做接口压力测试?压力测试报告应该包含哪些结果?

发布时间:2020-07-17

大家都知道性能测试中,性能指标包括系统吞吐量,并发处理能力,系统稳定性,响应延迟等。性能测试就是为了如果发现有不满足要求的地方,需要定位出问题所在,并给出解决方案。今天小编来给大家说说接口压力测试的相关内容

性能测试

为什么要做接口压力测试?

1.清楚自己所提供的接口性能是多少;

2.判断出系统可能存在的问题(代码,DB,cache,系统配置,容量等),提前解决;

3.为设置接口的限流/熔断做参考;

接口压力测试的局限性

接口压力测试只注重单业务的接口性能,进行压测的时候,只关注个别接口的性能。

接口大部分时间是在线下进行,可能线上线下机器配置不一样,而且线上同时在进行着各种不同的业务。

因此在线下进行接口压力测试的结果,只能作为线上配置的一个参考值。

如何做接口压力测试?

通常使用 Jmeter ,loadRunner,PerformanceRunner 等进行压力测试。

如何确定并发数:

可以通过尝试的方式。第一次压测的时候,可以设置自己预期接口需要达到的并发数,进行压力测试。然后通过二分法进行调整。

举例:如果期望的并发数是512 ,第一次压测并发数设置为512 ,如果系统没有压力,第二次并发就尝试设置为1024。如果系统有压力,下次就设置为256。通过逐渐尝试的方式,找出当前接口的并发阈值。

如何确定总请求次数:

有时候单纯的通过并发数并不能完全发现系统的压力状况,因为并发数只能测出系统的处理能力。

但是有时随着长时间的调用,系统可能会出现其他问题。比如:随着数据量的增多,存储磁盘满了、内存缓存用光,缓存服务使用磁盘缓存而拖慢系统等情况。

为了避免这种情况,可以尝试用现有线上业务每天产生的数量乘以一定的天数(天数的大小视业务的具体情况而定,推荐180天以上),作为接口压力测试的总请求次数。

接口压力测试数据的选取:

通常随机选择数据。但是要注意重复进行压力测试对性能的影响。

比如:

第一次压测的 Id 是从2500W 到2600W 之间选择的,下次用同样的 Id 范围做压测的时候,如果接口实现中有缓存,则会很大程度影响压力测试的结果,对压力测试的解读时候,要考虑到这个因素。

另外,使用不存在的 Id 去进行压测,结果并没有太大意义。

七、压力测试报告应该包含哪些结果

接口压力测试结果

服务器压力

每次接口压力测试时,接口所在服务的服务器 cpu/jvm 使用率历史记录,jvm堆大小,响应时长图 (借助 pinpoint 查看),cpu load 值(top 命令),gc 信息等。

对于接口压力测试结果:

关注 响应时间是否符合要求,响应时间(前99%) 是不是在可允许的范围内。最大值是多少,是否可以容忍。 通常来说,错误百分比应该为0。

对于服务器压力:

看 cpu 使用率是否在可接受范围内,jvm 堆大小是否变化频繁,是否有 fullGC。Young GC 耗时,CPU load值是否在可接受范围内。 响应时长图是否平滑(如果有毛刺现象,需要找出原因)。

如何根据测试结果定位性能问题

1.响应时间不符合要求:通过 pinpoint 观察调用链,找出耗时比较长的步骤,进行优化;

2.并发数达不到要求,可以从以下几个方面进行考虑:

a 是否发生系统依赖资源争用(比如:数据库连接,业务处理线程数等)

b 业务流程/代码性能是否可以优化

c 在运行的过程中是否频繁 GC

3. CPU 使用率过高:

a 在运行的过程中是否频繁 GC

b是否发生过多的线程切换

c 程序中是否有比较耗 cpu 的代码

修复性能问题

除了只可能在极端压力测试情况下会发生的性能问题,并且修复代价过大的问题可以不进行修复修复性能问题

除了只可能在极端压力测试情况下会发生的性能问题,并且修复代价过大的问题可以不进行修复,但是要在压力测试报告中体现出来此问题,以及解决方案),其他问题都必须进行修复。

如果没有专门的接口压力测试环境,记得做完接口压力测试之后,将测试数据清除(缓存,数据库,消息中间件中未消费完毕的消息 等)。

推荐阅读:

全链路性能需求分析的要点是什么?和传统线下性能测试有什么区别

软件测试中服务器稳定性测试方法有哪些?

有哪些SQL性能测试工具?SQL性能测试工具的主要特点

性能测试和并发压力的关系 性能测试中怎么设置并发数?

什么是WebSocket?有哪些支持WebSocket协议的压力测试工具?

性能压测概念及性能压测工具对比选型

企业为什么需要做全链路压测?全链路压测能解决什么问题?

接口压力测试怎么才能做好?接口压力测试要点

cs项目怎么做性能测试?cs性能测试跟bs有什么区别?

本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-60725088-8054),我们将立即处理,马上删除。
沪ICP备07036474号 2003-2023 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
微信
咨询

添加客服微信 欢迎咨询测试工具和测试服务

微信客服
问题
反馈
产品
画册

扫描二维码下载泽众软件企业宣传册

产品画册
返回
顶部

方案咨询

×
提交信息

电话咨询,400-035-7887,安排专业技术售前给您解答(产品试用、技术交流、服务咨询和商务报价)。

您的信息已成功提交!

我们的客服人员稍后会与您联系