需求

下面有3个场景,思考一下在jmeter里面如何设计

场景1:有一个项目,500用户同时登录,响应时间能达到多少
场景2:考勤打卡,最大吞吐量能达到多少(每秒最大能完成多少笔打卡业务)
场景3:银行业务,如果需要支持1分钟内完成3000笔取款操作,平均每秒能支持多少用户同时取款完成

压力模式

性能测试中的压力模式有两种。
第一种是并发用户模式(虚拟用户模式)
并发用户是指虚拟并发用户数,从业务角度,也可以理解为同时在线的用户数。从客户
端的角度出发,摸底业务系统各节点能同时承载的在线用户数,可以使用该模式设置目
标并发,也就是 jmeter 里面的线程数。
第二种是RPS 模式(吞吐量模式)
RPS(Requests Per Second)是指每秒请求数。RPS 模式即“吞吐量模式”,通过设置
每秒发出的请求数,从服务端的角度出发,直接衡量系统的吞吐能力。

场景设计

场景1就是典型的并发用户模式

我们在用jmeter设计第一种场景的时候,可以用线程数去模拟并发用户。如下图
设置500线程去模拟500用户;一次迭代表示每个线程的请求只发起一次;集合点500表示这500线程将在同一时间发起请求,添加监听器查看响应时间

场景二分析

场景二就是典型的吞吐量模式了。
为什么要设计这种模式呢?经常领导让做性能测试的时候,并不知道具体的并发数及系统的访问量,这样的画我们是不是就没有办法去测试了?

所以后来从阿里衍生出了一个RPS模式,就是绕过并发数的计算,直接通过吞吐量去直接衡量服务端的性能。吞吐量是衡量系统性能的唯一标准
设计第二种场景的时候,我们就需要考虑吞吐量了。我们一般通过负载测试来找到吞吐量的拐点。
负载测试:持续稳定地增加系统的负载,测试系统性能的变化,找出系统瓶颈和性能拐点
如果用rps压力模式的话,这里所谓的增加系统负载,就是指的增加每秒请求数。如下图rps定时器

下图表示我在20s内将rps稳定的加到200/s

查看tps

场景三分析

场景三其实也是一种吞吐量模式,但是这里的吞吐量不再是完成的请求数,而是完成的业务数,或者叫事物

业务时间

支撑1分钟内的3000笔取款操作,怎么才算完成业务呢?事实上我们一笔取款机取款业务的完成时间需要从打开页面发起请求开始计算,到响应完成,然后取款机给出结果让用户看到为止,中间还要包括思考时间。所以单笔取款业务时间=浏览器渲染时间+连接时间+思考时间+服务处理时间

平均并发数

我们知道了一分钟完成3000笔业务的需求,业务时间也可以计算出来。那么平均并发数是什么意思?这里的平均并发数指的是平均每秒有多少用户同时取款完成,才能达到这个一分钟3000的业务量。假设我的服务处理+浏览器渲染时间是2s,思考时间是8s。计算平均并发数的公式如下:
平均并发=业务总量*(单笔业务时间/业务时间)= 3000*(10/60)=500/s
也就是说,平均每秒有500个用户取款,能达到我的预期业务量场景设计

最新文章

  1. C#递归遍历子目录与子目录中的文件
  2. 【转载、推荐】不要自称是程序员,我十多年的 IT 职场总结
  3. web前端学习部落22群开源分享 左边菜单导航
  4. SQLAlchemy高级ORM之改查删除及GROUP,JOIN...
  5. 使用vim 查看二进制文件
  6. Android 判断app是否在前台运行
  7. HDU 5476 Explore Track of Point 数学平几
  8. 文件I/O(不带缓冲)之write函数
  9. 24种设计模式--责任链模式【Chain ofResponsibility Pattern】
  10. 【 UVALive - 2197】Paint the Roads(上下界费用流)
  11. h.264并行解码算法分析
  12. 生成订单唯一id
  13. python中的字符串编码
  14. Sqlserver将数据从一张表插入到另一张表
  15. PHP开发环境apache搭建
  16. IWMS后台上传文章,嵌入音频文件代码
  17. 一步一步写数据结构(二叉树的建立和遍历,c++)
  18. C#使用七牛云存储上传下载文件、自定义回调
  19. C语言 · 排列数 · 排列式
  20. node auto run / node 自动运行

热门文章

  1. System.arraycopy()的用法?
  2. mysql自连接?
  3. Python 迁移学习实用指南 | iBooker·ApacheCN
  4. Atcoder ARC-060
  5. redis中scan和keys的区别
  6. ArrayList和LinkList的区别
  7. Myeclipse设置关键词自动提示功能以及取消空格和"="的自动补全
  8. java多线程编程(二)
  9. RAID磁盘阵列与配置
  10. 描述nginx中worker_processes、worker_cpu_affinity、worker_rlimit_nofile、worker_connections配置项的含义