1.简介

在实际工作中,网络带宽一定不会是持续稳定的保持某一个值,而是有高有低。因此为了测试场景和实际能够无限的接近,所以我们需要模拟一下来达到效果。还有就是在实际的测试工作中,会因为业务需要,有时限网速,更加符合实际,所以我们也需要模拟弱网进行测试。

2.查看官网文档

参考官网文档:cps属性为了模拟低网速,如下图所示:

3.准备工作

为了测试出真实的响应时间情况,用jmeter模拟弱网进行工作,我们需要修改一下jmeter的配置。就是修改jmeter.properties文件。在安装jmeter目录找到apache-jmeter-5.0/bin/jmeter.properties文件,找到参数,分别为限制http以及https

这些分别用于HTTP和HTTPS协议,该属性默认为零,这意味着没有限制。首字母缩写cps代表“每秒字符数”。当您将属性设置为零以上时,带宽将根据您的设置进行调节。

#httpclient.socket.http.cps=0
#httpclient.socket.https.cps=0

如图所示:

4.cps的计算逻辑

查看jmeter的JMeter Wiki  在其中可以找到cps的计算逻辑,你也可以直接访问:https://cwiki.apache.org/confluence/display/JMETER/Controlling+Bandwidth+in+JMeter+to+simulate+different+networks 来查看jmeter模拟不同带宽

从上图红色圈住的部分我们很容易知道cps的计算逻辑:cps = (target bandwidth in kbps * 1024) / 8,所以cps=B/s的速率。

5.网络带宽的换算

1、网络速率
100Mbps=100Mbit/s即兆比特每秒
100MB/s=100MBytes/s即兆字节每秒
1B=8bit

100Mbps=12.5MB/s,理论上平常的百兆带宽下载速率可以达到12.5MB/s 100MB/s=1001024KB/s=1001024*1024B/s
2、数据存储对于数据硬盘之类的存储换算比较不同,数据存储是以10进制表示,1MB=1000KB

6.实战模拟弱网

1、jmeter分别配置不同的cps测试响应时间的变化,

Jmeter简单建立一个访问度娘的测试脚本,如下图所示:

2、为了避免数据量小不具有代表性,影响测试结果,宏哥这里将线程组设置成了100,默认情况下该接口,测试结果(平均时间0.153s),如下图所示:

3、响应时间很小,设置cps=40KB/s=40*1024B/s=40960,查看网络延迟情况

4、修改配置后,运行jmeter(平均时间0.307s)。可以看到平均网络延迟了0.154s,如下图所示:

通过这样的设置方法,Jmeter就可以做到弱网测试。

7.小结

宏哥简单的例举几个弱网测试工具:Fiddler、Clumsy。Clumsy是基于C语言开发的一款开源网络模拟工具。它能在Windows平台下人工造成不稳定的网络状态,应用它可以方便调试应用程序在极端网络状态下的表现。

Jmeter(五十) - 从入门到精通高级篇 - jmeter 之模拟弱网进行测试(详解教程)的更多相关文章

  1. Jmeter(五十一) - 从入门到精通高级篇 - jmeter之运动战(详解教程)

    1.简介 运动战是一种军事作战方式,依托较大的作战空间来换取时间移动兵力包围敌方,以优势兵力速战速决,运动战的运用归为这样一段话"避敌主力,诱敌深入,集中优势兵力逐个击破".今天宏 ...

  2. Jmeter(三十七) - 从入门到精通进阶篇 - 输出HTML格式的性能测试报告(详解教程)

    1.简介 相对于Loadrunner,Jmeter其实也是可以有测试报告产出的,虽然一般都不用(没有Loadrunner的报告那么强大是一方面),但是有小伙伴们私下问,那宏哥还是顺手写一下吧,今天我们 ...

  3. Jmeter(五十三) - 从入门到精通高级篇 - 懒人教你在Linux系统中安装Jmeter(详解教程)

    1.简介 我们绝大多数使用的都是Windows操作系统,因此在Windows系统上安装JMeter已经成了家常便饭,而且安装也相对简单,但是服务器为了安全.灵活小巧,特别是前几年的勒索病毒,现在绝大多 ...

  4. Jmeter(四十) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 - 中篇(详解教程)

    1.简介 为什么宏哥要对Jmeter的配置文件进行一下讲解了,因为有的童鞋或者小伙伴在测试中遇到一些需要修改配置文件的问题不是很清楚也不是很懂,就算修改了也是模模糊糊的.更有甚者觉得那是禁地神圣不可轻 ...

  5. Jmeter(四十三) - 从入门到精通高级篇 - Jmeter之IP伪装和欺骗(详解教程)

    1.简介 我们从小接受的教育就是不要撒谎,要做一个诚实的孩子,但是在现实生活中有时候说一个善意的谎言也不是可以的.这里由于服务器各种安全机制的限制和校验,因此我们不得不欺骗一下服务器,今天宏哥就给大家 ...

  6. Jmeter(三十六) - 从入门到精通进阶篇 - 设置负载阶梯式压测场景(详解教程)

    1.简介 在性能测试中,有时需要模拟一种实际生产中经常出现的情况,即:从某个值开始不断增加压力,直至达到某个值,然后持续运行一段时间,然后继续加压达到某个值持续运行,如此循环直到达到预期的峰值,运行一 ...

  7. Jmeter(四十四) - 从入门到精通高级篇 - Jmeter远程启动(本地运行+远程运行)(详解教程)

    1.简介 这篇文章其实很简单,就是为下一篇文章做一个铺垫,所以宏哥给小伙伴或童鞋们提前热身一下. 2.什么是远程运行? 远程执行,就是脚本放在本地,执行却在另一台电脑上执行,当然,可以是远程多台电脑一 ...

  8. Jmeter(四十八) - 从入门到精通高级篇 - Jmeter监控服务器性能(详解教程)

    1.简介 JMeter是一款压力.接口等等的测试工具,Jmeter也可以像loadrunner一样监控服务器CPU.内存等性能参数,用来监控服务器资源使用情况,不过需要安装一些插件.JMeter正常自 ...

  9. Jmeter(四十七) - 从入门到精通高级篇 - 分布式压测部署之负载机的设置(详解教程)

    1.简介 千呼万唤始出来,这一篇感觉写了好久,总想写的清楚明白简洁,但是还是洋洋洒洒写了好多,希望大家喜欢吧!本来打算将这一篇文章是放在性能测试中讲解和分享的,但是有的童鞋或者小伙伴们私下问的太多了, ...

随机推荐

  1. vue项目打包本地后通过nginx解决跨域

    前言 有时候我们打包好vue项目让后端人员部署项目时可能会有小插曲,为了不麻烦后端人员和避免尴尬,最好的办法就是在本地自己先测一下,而在本地运行打包后的项目会遇到接口跨域的问题.我平时经常用的方法就是 ...

  2. 991. Broken Calculator

    On a broken calculator that has a number showing on its display, we can perform two operations: Doub ...

  3. codeforces 229C

    题意:          http://codeforces.com/problemset/problem/229/C         给你一个全图,分成两部分,问你这两个途中一共有多少个三角形. 思 ...

  4. Day001 电脑常用快捷键

    电脑常用快捷键 Ctrl+C 复制 Ctrl+V 粘贴 Ctrl+A 全选 Ctrl+X 剪切 Ctrl+Z 撤销 Ctrl+S 保存 Alt+F4 关闭窗口(英雄联盟选英雄界面可以查看对面阵容(狗头 ...

  5. Compare the contents of two arrays

    ✍️Define a methed to compare the contents of two arrays and return the result . 定义一个方法,用于比较两个数组的内容是否 ...

  6. 取消本地SVN文件夹与服务器的关联

    方法一. 1.新建文本文档,添加内容如下: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Fold ...

  7. Python 之父爆料:明年至少令 Python 提速 1 倍!

    大概在半年前,我偶然看到一篇文章,有人提出了给 Python 提速 5 倍的计划,并在寻找经费赞助.当时并没有在意,此后也没有看到这方面的消息. 但是,就在 5 月 13 日"2021 年 ...

  8. BD-rate的计算

    相信不少接触视频编码的朋友在看相关的文献的时候,总会看到论文中测试时给出一个重要的参数BD-rate,可能一直心存疑问,这个BD-rate到底是个什么东西呢?可以参考这一份提案http://downl ...

  9. oo——第三单元总结

    前言 第三单元是我们学习oo以来第一次接触JML.这一单元的三次作业和以前一样,采用了难度递进的方式,而且前一次作业的设计思路在下一次作业都多多少少有些体现(或者说是在其基础上做出的改进).而且本单元 ...

  10. [前端、HTTP协议、HTML标签]

    [前端.HTTP协议.HTML标签] 什么是前端 """ 任何与用户直接打交道的操作界面都可以称之为前端 比如:电脑界面 手机界面 平板界面 什么是后端 后端类似于幕后操 ...