首页 > 其他分享 >jmeter两种不同场景的设计2

jmeter两种不同场景的设计2

时间:2023-04-11 18:36:40浏览次数:44  
标签:场景 用户 响应 两种 线程 监听器 100 jmeter 用户数

前言

jmeter单场景设计,一般性能需求场景设计

  1. 性能需求1:在一定的用户数到访问下,要求响应时间是不是在规定的时间内,而且错误率是不是在规定的范围之内,如:要求能支持5个用户的访问,响应时间在100ms以内,错误率不超过2%
  2. 性能需求2:要求响应时间在一定的范围内的情况下,能支持最大的用户数是多少,如:要求访问响应时间在3s内的,最大能支持多少个用户并发

单场景设计

1.性能需求1

要求能支持5个用户的访问,响应时间在100ms以内,错误率不超过2%

  1. 添加线程组,设置线程数是5,ramp-up时间5s,循环次数够选永远,持续时间添加20simage-20211225204930622

  2. 添加http请求image-20211225205340511

  3. 添加监听器,添加三个监听器,响应时间的监听器,线程数的监听器,聚合报告

  4. jp@gc - Active Threads Over Time:活跃的线程数的监听器

  5. jp@gc - Response Times Over Time:响应时间的监听器
  6. 聚合报告

  7. 查看结果

  8. 查看线程数的监听器,从线程数的监听器中可以看出,差不多4s多一点把5个线程数全部起起来,到了19s多左右开始释放线程,而我们需要参考的数据就是两个绿线直接的数据,也就是4s-19s直接的数据

    image-20211225214335867

  9. 响应时间的监听器,在响应时间的监听器中,在4s多到19s多左右之间的响应时间,低于100ms的属于正常的响应,超过100ms的就不满足本次的性能要求,如果在100ms以内但是响应波动比较大,也是需要重点关注image-20211225215435894

  10. 聚合报告,查看错误率是否满足,还有95%的响应时间是否满足需求,从图中可以看出虽然错误率是0,但是95%的平均响应时间是290ms,超过了100ms的要求,不满足性能要求image-20211225215951640

  11. 分析性能为什么不满足要求,是本地的负载机,还是服务器,应用服务器,数据库服务器,缓存服务器,到问题影响

性能需求2

要求访问响应时间在5s内的,最大能支持多少个用户并发,需要预估一个用户数,比如:100个用户,如果预估到这个用户测试完的结果还可以,就继续往上加用户数,这里加用户数有两种加法

  1. 通过二分查找计算最大并发,每次加的用户数是上一轮用户的一半在加上上一轮的用户数,进行递增,如果在当前这次测试后发现不满足性能要求,或者出现性能瓶颈,这时候就开始减少用户数,进行递减,用当前的用户数和上一轮的用户数取中间的那个数,最终测试的结果满足当前要求的那个用户数就是最大用户数

  2. 第一轮用户数100个

  3. 第二轮用户数就是100+100/2=150

  4. 第三轮用户数就是150 +150/2=225,假设这一轮测试结束后,发现不满足性能要求,下一轮的用户数计算:(225-150)/2+150=187.5=188,大约是188个用户

  5. 第四轮用户数(225-150)/2+150=187.5=188,大约是188个用户,如果这时候还是不满足要求,就继续折中

  6. 第五轮用户数 (188-150)/2+150=169,如果这时候测试的结果满足性能要求,那169就是最大并发

    假设从50个用户开始:

    第一轮的截图:50个用户数后没有出现错误率,响应时间95%,5s左右满足性能要求,第二轮增加到75个

image-20211225224127861

第二轮截图:75个用户数,也满足性能要求,第三轮增加到113个用户image-20211225224927047

第三轮截图:113个用户,虽然响应时间在5s以内,但是聚合报告已经出现错误率,而且95%到响应时间超过7s,这时候假设已经不满足我们的性能要求,然后开始递减用户数,第四轮用户数从75-113中间的数,也就是96左右image-20211225225749751

第四轮截图,96个用户数,这次没有出现错误率,但是95%到响应时间还是超过了5s,所以还是不满足要求,继续递减,第五轮用户数从75-96中间的数,也就是86左右

image-20211225230448461

第五轮截图:86个用户数,这次出现错误率但是在接受范围之内,但是95%到响应时间在5s,所以满足要求,大概到最大并发就是86个用户数image-20211225231156140

  1. 通过逐步加压对过程更准,需要安装逐步加压线程组插件,原有的线程组虽然也可以设置在一定时间增加多个线程,比如10s内增加到100个线程,看上去是平均每秒增加10个,但是实际是10s内增加到100个,并不一定是每秒增加10个

所以出现新的插件线程组,可以满足更准确的逐步加压,插件名:jp@gc - UItimate Thred Group,

设置的线程组场景,逐步增压,前10s的时间20个用户在跑,每秒启用两个用户,10s后在启用20个用户数,相当于10-20s之间有40是个用户在跑,以此类推,达到100个用户在跑

image-20211226101951944

响应时间和线程数关系图中,要求3s的响应时间内支持的多少用户数,到100用户数也没有超过3s说明100并发是可以支持的,但是从聚合报告看出,95%的响应时间超过3s,所以100用户数性能已经受到影响

image-20211226101915015

image-20211226101357602


本文永久更新地址:

https://www.fenxiangbe.com/p/jmeter两种不同场景的设计2.html

标签:场景,用户,响应,两种,线程,监听器,100,jmeter,用户数
From: https://www.cnblogs.com/fenxiangbe/p/17307231.html

相关文章

  • Jmeter 启动时报错:Not able to find Java executable or version. Please check your
    安装java环境,cmd窗口中执行java-version可以看到java的版本信息。双击jmeter启动文件,报错:NotabletofindJavaexecutableorversion.PleasecheckyourJavainstallation解决办法:在启动文件jmeter.bat中添加java的环境信息SETJAVA_HOME=D:\Ksoftware\openjdk-19.0.2_w......
  • Jmeter在linux环境下会出现 html测试报告 响应结果为空得问题
    1.在jmeter_home/bin/jmeter.properties文件中修改配置jmeter.save.saveservice.response_data=truejmeter.save.saveservice.samplerData=true 2.在user.properties文件中追加配置jmeter.save.saveservice.output_format=xmljmeter.save.saveservice.response_data=truej......
  • 装饰器应用场景
    01.装饰器语法糖如果你接触Python有一段时间了的话,想必你对@符号一定不陌生了,没错@符号就是装饰器的语法糖。它放在一个函数开始定义的地方,它就像一顶帽子一样戴在这个函数的头上。和这个函数绑定在一起。在我们调用这个函数的时候,第一件事并不是执行这个函数,而是将这个函......
  • vue中使用echarts的两种方法
    vue中使用echarts的两种方法Postedon 2021-08-1518:59  书中枫叶 阅读(33524) 评论(1)  编辑  收藏  举报在vue中使用echarts有两种方法一、第一种方法1、通过npm获取echartsnpminstallecharts--save2、在vue项目中引入echarts在 main.js 中添加下......
  • 全网最详细中英文ChatGPT-GPT-4示例文档-智能聊天机器人从0到1快速入门——官网推荐的
    目录Introduce简介setting设置Prompt提示Sampleresponse回复样本APIrequest接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例其它资料下载ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和文字,生成流畅和有趣的回答。如果你想跟上AI时代的潮流......
  • Linux的3种特殊权限场景实战:SUID、SGID、SBIT
    3种特殊权限在Linux系统中,有3种特殊权限,它们分别是Setuid(SUID)、Setgid(SGID)和StickyBit。Setuid权限:通过Setuid权限,普通用户可以在执行某些特定程序时,拥有与程序所有者相同的权限。也就是说,该程序在执行时,会自动获取其所有者的权限,而不是执行者的权限。这通常用于一些需要r......
  • 多库多表场景下使用 Amazon EMR CDC 实时入湖最佳实践
    一、前言CDC(ChangeDataCapture)从广义上讲所有能够捕获变更数据的技术都可以称为CDC,但本篇文章中对CDC的定义限定为以非侵入的方式实时捕获数据库的变更数据。例如:通过解析MySQL数据库的Binlog日志捕获变更数据,而不是通过SQLQuery源表捕获变更数据。Hudi作为最热......
  • 对于intend to do 和intend doing两种用法的解释
    ![[Pastedimage20230409205800.png]]![[Pastedimage20230409205816.png]]intendtodo“Intendtodo”意为“打算做某事”。通常,该短语的结构为“intendto”+动词原形。例如:Iintendtotravelaroundtheworldnextyear.(我打算明年环游世界。)Thecompanyinten......
  • Jmeter线程组间传递变量
    做接口测试,上一个线程组(A线程组)提取的变量,需要传递给下一个线程组(B线程组)使用。故需要将A线程组内提取的变量设置为全局变量。实现如下:1.json提取变量(A线程组)通过json提取器,将A线程组请求中的billId提取出来,如下:2. BeanShell取样器定义变量(A线程组)添加【BeanShell......
  • 华为云发布多项场景化解决方案助力制造业企业加速上云
     随着中国制造2025的提出,制造业企业数字化转型发展正在加速进行。然而,制造业企业在向数字化、智能化转型过程中,由于IT历史包袱重,很难高效实现数字化转型。例如,ERP软件是帮助企业实现信息化,解决企业在生产过程涉及的采购、生产、销售、库存、财务等日常经营管理等方面的问题。过去,E......