首页 > 其他分享 > 压力测试、并发测试实践,后端工程师必看

压力测试、并发测试实践,后端工程师必看

时间:2023-02-10 18:02:46浏览次数:52  
标签:测试 必看 压测 句柄 接口 并发 https

压测背景

单接口压测是为了能够在开发阶段对单个接口进行性能测试,快速了解接口的承载能力、发现性能瓶颈,在开发早期就能发现问题,消除性能风险。

作为一名优秀的后端工程师,在交付线上环境前,对自己的每一个接口进行简单的性能检测,是一种良好的职业习惯。

另外,当业务在生产环境遇到实际接口请求瓶颈时,通过模拟真实的并发环境,也是一种快速寻找问题的方式。

压测结果的影响因素

高并发结果很容易受外界因素影响,压测时需要尽量减少外界因素影响。

影响压测结果外界因素有本机句柄数限制,dns解析速度,网络质量,服务端连接数限制等等。例如使用1w并发,很容易出现超过本机最大句柄数限制(一般最大限制1024),超过句柄数限制的请求会因为句柄数受限导致连接失败。

因此选择合适并发数对测试接口性能非常重要,并非并发数越大越好

实际实践中建议并发数先在10,100,500,1000左右分别测试下,如果失败率小于1%,再考虑逐步增加并发数量。只有增加并发每秒请求数量能持续增加才是健康的使用方式。当并发数增加到一定数量后,接口响应能力不再增加或者错误数变高,这时候再增加并发量是无效的。

压测工具

1、Jmeter

Jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,支持http、https、websocket、grpc等协议的并发压测。但缺点在于比较消耗单机性能,一般用于分布式压测或作为压测引擎使用。另外如果只想针对一个接口进行简单测试,需要较深的操作路径,使用起来较为繁琐。

2、ab

ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。

但唯一不足的是,ab基本是命令行执行,如果一个接口需要输入较复杂的请求参数,操作起来会比较繁琐。

3、Apipost

自7.0.12版本起,Apipost上线了单接口一键并发功能。该功能底层采用了自研的基于Golang语言的压测引擎(已开源:​​https://github.com/Apipost-Team/runnerGo​​),较好的支持单机高并发压测。目前支持http/https协议,对websocket、grpc等协议尚未支持。

下载使用:​​https://www.apipost.cn/download/ver10017​

本文仅简单介绍基于http/https协议的压测实践,出于便捷性考虑,我们采用 Apipost 的压测模块。


压测流程

1、压测模块位于API调试模块下,在进行接口调试时可以看到,如图所示:

 压力测试、并发测试实践,后端工程师必看_apipost

2、在输入被压测的URL后,在压测tab下,填写并发数和轮次;

3、点击【开始压测】按钮,页面展示【压测中...】状态;

 压力测试、并发测试实践,后端工程师必看_apipost_02

4、压测任务完成后,页面展示压测结果,完成压测。

 压力测试、并发测试实践,后端工程师必看_并发测试_03

压测结果计算方式

 压力测试、并发测试实践,后端工程师必看_后端_04


标签:测试,必看,压测,句柄,接口,并发,https
From: https://blog.51cto.com/u_15961827/6049663

相关文章

  • SpringBoot + Disruptor实现高并发内存消息队列
    1.简介  Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开......
  • 剖析字节案例,火山引擎 A/B 测试 DataTester 如何“嵌入”技术研发流程
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群日前,在WOT全球创新技术大会上,火山引擎DataTester技术负责人韩云飞做了关于字节......
  • Java多线程06——JUC并发包02
    1线程的同步工具类​​CountDownLatch​​​​CountDownLatch​​同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。​​CountDownLatch......
  • 汽车测试术语-简介
      目录  软件与车辆:高度复杂 测试对象,测试用例和动态测试 测试级别 测试环境 无论是MiL、SiL、PiL、HiL、单元测试、软件测试还是集成测试:汽车软......
  • CH582 CH573 CH579 低功耗测试数据
    CH582广播功耗数据  CH573广播功耗数据 CH573连接状态功耗 ......
  • APP测试与web测试的区别
    web和app的区别web项目,一般都是b/s架构,基于浏览器的。App则是C/S的,必须要有客户端。首先从系统架构来看的话,Web测试只要更新了服务器端,客户端就会同步会更新。而且客......
  • 如何使用 Python 编程进行多线程并发?
    当单线程python爬虫已经不能满足企业需求时,很多程序员会进行改代码或者增加服务器数量,这样虽说也能达到效果,但是对于人力物力也是一笔不小的消耗。如果是技术牛点的,正常都......
  • 软件测试|教你用skip灵活跳过用例
    前言日常工作中,我们难免会遇到本次执行不需要所有用例都跑一遍的情况,或者说,我们就是希望某些用例不执行,来看看报错。那除了我们手动去注释掉部分用例,还有没有其他的办法自动......
  • 软件测试|Pytest必会技巧(四)使用autouse实现自动传参
    Pytestfixture之autouse使用写自动化用例会写一些前置的fixture操作,用例需要用到就直接传该函数的参数名称就行了。当用例很多的时候,每次都传这个参数,会比较麻烦。fixture......
  • 软件测试|Python操作Excel制作报表,不要太方便
    前言今天我们介绍的是Python操作Excel制作报表,我们需要用到的库是openpyxl,我们主要使用的功能有下列几个功能插入与查询数据分类数据统计数据可视化字体颜色修改基本操作表......