概述

今天看到一篇文章讲解VU、RPS、RT,中间有一个公式如下图

点击查看原文链接

并发数 = RPS * 响应时间 

于是我在本地做了几次实验,试图验证一下公式的准确性

实验网站 www.baidu.com

第一次实验

100线程,一次迭代,启动时间1s,线程组和聚合报告如图所示

从结果可以看出,100并发/s,一次迭代,平均响应时间是68ms

如果根据上面公式来看的话

RPS = 并发数/响应时间 = 100/0.068 ,大约是1470/S

但是我们在线程组中可以看出,预置的RPS是 100/S

差距有点大哦~~~想想为什么呢?

第二次实验

100线程,持续迭代,1s内启动线程,持续运行10s。线程组和聚合报告如图所示。

从聚合报告可以看出来,平均TPS= 1303。那么我们可不可以就认定这个TPS=RPS呢?

简单计算一下就知道了。

图中可以看出我们的单次响应时间是72ms,那么1秒内大约能迭代14次。100个线程下,一秒内大约能发送1400个请求。

因此我们的RPS大约是1400/S

这样就能看出来,一秒内发送1400次请求,但是1s内只有1300个请求能响应完毕

我们再反向验证一下并发数

并发数 = RPS*响应时间,1400* 0.072 等于100.8,和线程组里面设置的并发数几乎相同。

如果我们用Throughput=RPS去反向验证

并发数 = RPS*响应时间,1303* 0.072 等于93,和线程组里面设置的并发数就有一些差距了。

这两次实验得出的结论:在持续迭代下,由于样本充足,所以公式成立。但是RPS!= TPS

第三次实验

这次我们直接加上RPS定时器,通过精准的RPS来验证公式

我们让200RPS保持1分钟,查看聚合报告

首先我们就能看出,在200RPS下,平均TPS只有172!

其次,平均并发数 = 200*0.047 = 9.4   意味着我只需要9个线程,就可以在一秒内释放200RPS的压力

可以算出每个线程每秒的请求数是 200/9.4 =21,也就是一个线程一秒内最大迭代21次

反推每个请求的响应时间 大约 是 1000/21 大约是 47ms 

前后验证的结果都相符!

第四次实验

这一次我们直接在线程组中设置刚刚20RPS下得出的平均并发数值 9,反向推断出RPS的准确性

计算一下RPS = 9 /0.043 约等于209

因为线程组只能设置整数,所以会和实验三有一些误差,不影响测试的准确性

 结尾语:从几次实验结果来看,在样本充足的情况下,公式是没有问题的。重点是做测试要时刻保持一颗质疑的心,不盲信任何权威 !

转载于:https://www.cnblogs.com/Zfc-Cjk/p/11212221.html

性能测试-实例讲解VU、RPS、RT公式换算相关推荐

  1. 性能测试连载 (8)-jmeter 实战分析并发、RPS、RT 公式换算

    前提 在阿里云PTS上有一篇文章讲解VU.RPS.RT换算,中间有一个公式介绍如下图 并发数 = RPS * 响应时间 于是我在本地做了几次实验,试图验证一下公式的准确性,实验网站 www.baidu ...

  2. 学了那么多公式,却依旧用不好Excel(实例讲解)

    |本节内容为Excel输出日报(周报.月报)的自动化实例讲解,篇幅较长,文末可获取本节课讲解的数据案例. 涉及知识点: 1.Sum函数求累计 2.插入组合框控件 3.Vlookup函数 4.Match ...

  3. 粒子群算法Particle Swarm Optimization超详细解析+代码实例讲解

    01 算法起源 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由Eberhart 博士和kennedy 博士提出,源于对鸟群捕食的行为研究 ...

  4. 【智能算法】粒子群算法(Particle Swarm Optimization)超详细解析+入门代码实例讲解...

    喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号[程序猿声] 01 算法起源 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由E ...

  5. NSGA II实例讲解

    NSGA II实例讲解 此文章是[1]的文字版,相关视频原链接见参考资料. 假设有一个圆规问题,目标函数为最小的底面积和最小的侧面积. 底面积=πr^2, 侧面积=πrsh 总的目标函数=底面积+侧面 ...

  6. 东莞UG塑胶模具设计培训、模具排位图实例讲解

    东莞UG塑胶模具设计培训.模具排位图实例讲解 UG塑胶模具结构设计标准 一.分模面 为使产品从模具中取出模具必须分成公母模侧两部分此分界面称之为分模面它有分模和排气的作用,但因模具精度和成型之差异易产 ...

  7. java实现页面高效刷新_selenium高效应对Web页面元素刷新的实例讲解

    当我们在页面上进行selenium.type()或者selenium.click()操作的时候,往往需要需要等待一个元素的出现,对于一般的网页,当我们进入一个新页面的时候,往往会使用selenium. ...

  8. php 返回一个json对象,PHP给前端返回一个JSON对象的实例讲解

    解决问题:用php做后台时,如何给前端发起的AJAX请求返回一个JSON格式的"对象": 说明:我本身是一个前端,工作久了之后发现要是不掌握一门后端开发语言的话,总感觉有点无力.最 ...

  9. python简易版实例_Python3之简单搭建自带服务器的实例讲解

    WEB开发,我们先从搭建一个简单的服务器开始,Python自带服务模块,且python3相比于python2有很大不同, 在Python2.6版本里,/usr/bin/lib/python2.6/ 目 ...

最新文章

  1. Analysis of Web.xml in Hello1 project
  2. 14、mybatis多表关联查询 association定义关联对象封装规则及懒加载
  3. 如何迁移完整SQL数据库到另外一台服务器
  4. 转载——逻辑回归的袅娜曲线,你是否会过目难忘?
  5. JMETER java.net.SocketException: Connection reset 报错解决方案
  6. 【常识】—— 生物学
  7. mongodb update ()命令
  8. 基于struts2、spring的应用闲置一段时间后报空指针错(转)
  9. xcode 怎么调用midi开发录音_直播_个人工作室入门_1K-2k价位录音编曲声卡推荐
  10. mysql 定义外键并增删改查_MYSQL增删改查添加外键
  11. configure: error: Jabber library not found
  12. 拼多多api接口数据说明
  13. 解决vagrant up启动失败,停留在Booting VM...过程的方法
  14. 专访 iOS 技术专家孙源:开发者的成长始于“死磕”
  15. 华东地区博友链接集合(陆续增加中)
  16. Kubernetes(k8s)常用资源的使用、Pod的常用操作
  17. 绿联扩展坞拆解_拆解报告:UGREEN绿联3A1C五合一多功能拓展坞
  18. 面试复习题--jvm的细枝末节
  19. abp框架学习笔记(三)--Angular和前端
  20. 一个简单的在线md5验证工具的实现

热门文章

  1. multisim 高低电平点亮灯证明
  2. 来点热闹的生活吧!!!O(∩_∩)O哈哈~
  3. 计算机控制总端,楼宇计算机控制系统(DCS)
  4. Unity使用RenderTexture实现实时阴影绘制
  5. 微透镜阵列的主要应用_阵列的应用
  6. 习题整理(简单01背包 可用查并集2022/4/24)
  7. 卡尔曼滤波之观测值的似然估计
  8. 基于VHDL的全自动洗衣机控制器设计
  9. PHP保持静态页面,PHP 实现页面静态化的几种方法
  10. linux下mkdir和windows下mkdir的对比