【Jmeter】按比例分配Api压测

这篇具有很好参考价值的文章主要介绍了【Jmeter】按比例分配Api压测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

先看

【Jmeter】基础介绍-详细

【Jmeter】Request1输出作为Request2输入-后置处理器

继续聊提出的第二个问题,即

  2.需要按比例分配API请求并发,以模拟真实的API压力场景

做压测的时候,一般的需求都是多个API同时压,不然也看不出真正的tps是多少啊。

比如虽然接口a的需求并发不高,500个用户才请求一次,但是特别耗性能,导致其他接口tps下降严重,所以压测的时候可以将比例调的很小,但是不能忽略它,只测并发请求高的接口

说会主题,如何按比例分配压测并发量呢?使用Jmeter可以有两种实现方式

先说第一种,通过线程组的方式控制:

线程组1配置:

【Jmeter】按比例分配Api压测

 线程组2配置:

【Jmeter】按比例分配Api压测

 区别就是线程数不一样,当然用循环次数也可以控制,区别可以看【Jmeter】基础介绍-详细。

Request请求:

【Jmeter】按比例分配Api压测

 结果:

【Jmeter】按比例分配Api压测

 这里哪个请求在前完全随机,两个线程中互不干扰。

这种方式的好处就是完全并行,互不干扰,缺点就是基本没有使用场景,一般情况下,API都是有权限认证接口的,后面的接口需要依赖前面接口的输出(实现方式可以看【Jmeter】Request1输出作为Request2输入-后置处理器),这种完全隔离的方式显然无法满足需求,或者你需要自己写代码提前获取登录信息,不使用压测过程中登录返回的认证信息。

我们继续介绍第二种方式,其实就是按【Jmeter】Request1输出作为Request2输入-后置处理器中创建的线程组一样,只使用一个线程组,然后通过循环控制器来控制某个Api所占比例:

新建循环控制器:

【Jmeter】按比例分配Api压测

 调整参数达到按比例分配Api压力的目的:

【Jmeter】按比例分配Api压测

【Jmeter】按比例分配Api压测

 执行效果:

【Jmeter】按比例分配Api压测

 如上图所示,执行了一个Request1和两个Request2,而且是按顺序执行的,即这种方式可以满足【Jmeter】Request1输出作为Request2输入-后置处理器需求的同时使用。不过有两点需要注意:

  1. 这种方式按顺序执行时,变量(例如身份信息token)是会被覆盖的,即无法完全模拟多用户登录及身份信息的场景。
  2. 这种配置方式会导致api并发分配不均,即在时间段1全部请求都是Request1,时间段2全部请求都是Request2,虽然总量是按比例的,但是并不符合我们的需求。

以上两个问题,在我的测试场景中1没有影响,即用户1、2、3、4、5那个来请求Api对压测来说是不关心的,性能完全一样。这里的登录只是为了压测登录接口,同时生成一个token给下面的接口使用。问题2影响比较大,可以通过【Jmeter】基础介绍-详细中提到的Ramp-up时间参数来控制,首先按比例配置好循环控制器后,将线程数和循环次数配置为1,Ramp-up配置为0,即立刻启动,然后使用压测机跑一下用于估算一次压测流程的时间。得到这个时间后,就是我们在实际压测中需要填写到Ramp-up中的参数,比如一次完整的压测流程需要2s,我现在需要压测执行1000个线程,循环100次,即一共10w次请求,将Ramp-up时间设置为2s,即1000个线程将在2s内逐步启动,达到所有线程的启动时间覆盖第一个线程一次循环的整个时间段,来达到真实模拟多种请求并发执行的过程,解决以上提到的第二个问题。

 文章来源地址https://www.toymoban.com/news/detail-424520.html

到了这里,关于【Jmeter】按比例分配Api压测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jmeter压测工具详解

    Apache JMetier是Apache组织开发的基于Java的压力测试工具。一款非常优秀的开源的性能测试工具。 适用的测试领域: 用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。它可以用于测试静态和动态资源,例如静态文件、 Java小服务程序、 CGI脚本

    2024年02月02日
    浏览(43)
  • 压测工具Jmeter学习

    Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器等等。 除了Jmeter外,其它常

    2024年02月10日
    浏览(38)
  • 用jmeter压测tcp

    在工作中有个接口是tcp协议的,然后需要压测一下,就想到jmeter有现成的tcp取样器,搜了一下,压测流程大致和http差不多,需要注意的是tcp请求的一些设置,在此记录一下~ 1.根据需求改一下配置文件,根据需求看看自己要发的是哪一种请求,直接在配置文件里搜索一些tcp,

    2023年04月09日
    浏览(32)
  • jmeter随记2:压测

    简述 关于压测,jmeter更直观的作用是用来编写压测脚本【请求和压测策略】,然后在linux服务器上执行,也可以在本地执行,压测执行脚本在启动jmeter服务的时候,会打印出执行压测的命令 一、压测步骤 step1: 编写jmeter脚本,以及压测策略 a、若想压的接口很多 且都是相同域

    2024年02月15日
    浏览(32)
  • 基于jmeter完成压测

    ✅作者简介:大家好,我是Cisyam,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Cisyam-Shark的博客 💞当前专栏: 程序日常 ✨特色专栏: MySQL学习 🥭本文内容:基于jmeter完成压测 🖥️个人小站 :个人博客,欢迎大家访问 📚个人知识库: 知识库

    2024年02月06日
    浏览(88)
  • jmeter性能压测

    jvm指令 jstat -gcutil -h5 -t 1 3s 发压端的tcp这么达到1000TPS jmeter的jvm的设置

    2024年04月10日
    浏览(41)
  • jmeter压测步骤

    参考:使用Jmeter压测的第一个接口 第一步,在测试计划里添加一个线程组(要压测的接口名称),如图所示,在测试计划里右键--添加--线程--线程组就可以了。 第二步,设置线程组参数,如下图所示。 第三步,添加请求,在线程组上右键--添加--取样器--HTTP请求,具体参数如

    2024年02月15日
    浏览(41)
  • 压测工具之JMeter使用

    最近公司项目需要进行压测,查验S A A S 系 统中的多 租 户数据是否串库等问题! JMeter这款工具相信接触过测试的小伙伴都有所耳闻,即使是开发,应该也会或多或少的有所了解。 这就是今天的主角,我们是使用这款工具来完成我们对系统的压测。 接下来我们看一下如何使

    2024年02月16日
    浏览(54)
  • jmeter简单压测kafka

          这也是一个笔记,就是计划用jmeter做性能测试,但是这里是只要将数据放到kafka的topic里,后面查看下游业务处理能力。       因为只要实现数据放到kafka,参考了下博友的方案,可行。       详细过程就不重复写了。直接上博友的链接吧。 https://blog.csdn.net/sh

    2024年02月04日
    浏览(34)
  • 通过Jmeter压测存储过程

    1、建立一个空表:   2、建立一个存储过程:   3、调试下:   1、网上找到:mysql-connector-java-8.0.29.jar(版本不限定),放到Jmeter目录libext下。 2、网上找或将本地:ojdbc14.jar,放到Jmeter目录lib下。   全局配置如下图:   右键,Config Element下添加节点,配置如图: a. Name可以

    2024年02月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包