大家都知道性能测试中,性能指标包括系统吞吐量,并发处理能力,系统稳定性,响应延迟等。。

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

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 的代码

修复性能问题

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

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

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

推荐阅读:

软件压力测试报告要怎么写,如何做接口压力测试?压力测试报告应该包含哪些结果?...相关推荐

  1. 测试过程中为什么要做接口Mock测试,以及如何做

    文章目录 关于Mock测试 什么是Mock测试? 为什么要进行Mock测试? Mock对象适用场景 Mock测试的优势 Mock测试存在的问题 Mock测试方式 Mock Server-Moco fi ...

  2. python做接口自动化如何输出测试报告-python生成接口自动化测试报告模版

    自动化测试报告:&test_data 被测版本:&version 成功:&pass 失败:&fail 错误:&error 最后时间:&lasttime ...

  3. 通信模块测试软件,Q/GDW 376.2集中器本地通信模块接口协议测试

    1 前言 Q/GDW 376.2集中器本地通信模块接口协议(Concentrator Local Communication Module Interface)规定了电力用户用电信息采集系统中集中器与 ...

  4. java unit test moke_惊了,unittest做接口mock测试竟然这么简单

    在项目研发的时候,一般开发会先提供接口文档,虽然很多接口并没有被实现,但测试可以提前写好Mock,等接口实现时可以快速完成该接口的自动话代码编写,进而提高接口自动化测试效率,那么使用Python如何实 ...

  5. 软件测试报告重点审核点有哪些,一份完善的软件测试报告该怎么写?

    原标题:一份完善的软件测试报告该怎么写? 一.什么是测试报告? 测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础. ...

  6. java好的代码_做java软件工程师,怎样才能写出好的代码?

    原标题:做java软件工程师,怎样才能写出好的代码? Java代码之于java程序员而言就是左膀右臂,java代码写的好的java程序员明显更是企业的欢迎,一个优秀的java程序员的考核标准之一也是看 ...

  7. 软件项目测试报告怎么做?详细测试方案模板参考

    从一个软件项目立项到研发最后上线要经过很多环节,其中软件测试也是其中重要的环节之一,做软件项目测试就不可避免的牵涉到项目测试报告了.一份完整明确的软件项目测试报告能够帮助软件开发人员更好的完善产品质量 ...

  8. 软件测试用python一般用来做什么-想要成为一个优秀的软件测试人员,应该学些什么?...

    0-3岁软件测试工程师必看!涵盖手工测试.性能测试.自动化测试.测试开发必备技能! 给你提供一条非常清晰的软件测试技能进阶路线! 我根据薪资的不同,划分成以下几个阶段具体说一下:月薪5-9k:从零基础 ...

  9. 软件需求说明书谁负责写_新手入门软件测试需要掌握哪些知识点?

    新手入门软件测试小知识点 这些软件测试常识你必须牢记:01软件测试(软件测试存在的意义) 1.发现程序中的错误而执行程序的过程 2.检验产品是否符合用户需求 3.提高用户体验 02软件测试原则(常识) ...

  10. 软件性能测试报告_软件测试新手请收好:测试基本流程、及如何写好测试用例全在这里!...

    最近,很多小伙伴正在为面试新工作做准备.所以我整理一下软件测试的基本工作流程和一些测试用例编写方法.大致内容如下,希望这些内容对大家有帮助. # 首先,作为测试人员需了解业务,分析需求点 # 为什么测 ...

最新文章

  1. Spring的Java配置
  2. matlab disteclud,机器学习实战ByMatlab(3)K-means算法
  3. securecrt遇到一个致命的错误且必须关闭_谈谈如何利用 valgrind 排查内存错误
  4. 《如何搭建小微企业风控模型》第七节 准入规则节选
  5. apache+mysql+php的环境配置
  6. go语言多态接口样例
  7. python可以代替按键精灵吗_Python 假装自己是按键精灵
  8. 直播系统源代码,快速实现改变图片尺寸
  9. yzj学长的即兴发挥
  10. 思科WLC与AP无法正常Join
  11. Koa2实现电影微信公众号前后端开发学习视频
  12. 哪些产品需要做3C认证,费用是多少
  13. 炒期货赚钱吗?掌握技巧才有得赚
  14. 程序员过完年第一天上班被公司劝退!得知原因后,网友:被安排了
  15. 【计算机网络】笔记及考点
  16. 一阶零输入响应例题_一阶RC电路零输入响应的求解.PPT
  17. 10.WebRTC实现网页录音功能
  18. 抽象数据类型线性表的定义与实现
  19. 查看windows系统进程的详细信息,任务管理器看不到的
  20. 《集体智慧编程》P8-P18

热门文章

  1. Another Redis DeskTop Manager:一款可视化的Redis管理工具
  2. Git 使用 — Git下载与安装
  3. 中国省市县地区代码一览表
  4. python调用swmm程序_Python SWMM5包_程序模块 - PyPI - Python中文网
  5. J2EE是技术还是平台还是框架? 什么是J2EE
  6. fceux模拟器linux,FCEUX模拟器
  7. java ios开发_使用Java开发iOS应用
  8. json转Map泛型Map<String,T>,json转集合Map泛型List<Map<String,T>>工具类
  9. Java中json转map方法,简单快捷
  10. 网络摄像机(大华)不知道ip地址怎么办?查询IPC的ip地址?修改IPC的ip地址?