专栏首页北京宏哥Jmeter(五十) - 从入门到精通高级篇 - jmeter 之模拟弱网进行测试(详解教程)

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

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平台下人工造成不稳定的网络状态,应用它可以方便调试应用程序在极端网络状态下的表现。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

    北京-宏哥
  • Jmeter(四十五) - 从入门到精通高级篇 - Jmeter之网页爬虫-上篇(详解教程)

      上大学的时候,第一次听同学说网页爬虫,当时比较幼稚和懵懂,觉得就是几只电子虫子爬在网页上在抓取东西。后来又听说写代码可以实现网页爬虫,宏哥感觉高大上,后来工...

    北京-宏哥
  • Jmeter(二十五) - 从入门到精通 - JMeter函数 - 下篇(详解教程)

    在性能测试中为了真实模拟用户请求,往往我们需要让提交的表单内容每次都发生变化,这个过程叫做参数化。JMeter配置元件与前置处理器都能帮助我们进行参数化,但是都...

    北京-宏哥
  • Jmeter(五十二) - 从入门到精通高级篇 - jmeter之跨线程组传递参数(详解教程)

    之前分享的所有文章都是只有一个线程组,而且参数的传递也只在一个线程组中,那么如果需要在两个线程组中传递参数,我们怎么做呢?宏哥今天就给小伙伴或者童鞋们讲解一下,...

    北京-宏哥
  • Jmeter(四十六) - 从入门到精通高级篇 - Jmeter之网页图片爬虫-下篇(详解教程)

    上一篇介绍了爬取文章,这一篇宏哥就简单的介绍一下,如何爬取图片然后保存到本地电脑中。网上很多漂亮的壁纸或者是美女、妹子,想自己收藏一些,挨个保存太费时间,那你可...

    北京-宏哥
  • Jmeter(三十五) - 从入门到精通进阶篇 - 关联(详解教程)

      上一篇中介绍了如果想要同时发送多条请求,那么怎样才能让每条数据某些请求参数改变呢。这就用到了jMeter参数化。在实际测试场景中,我们往往还有这样的需求,登...

    北京-宏哥
  • Jmeter(三十八) - 从入门到精通进阶篇 - 命令行运行JMeter详解(详解教程)

      前边一篇文章介绍了如何生成测试报告,细心地小伙伴或者同学们可以看到宏哥启动Jmeter生成测试报告不是在gui页面操作的,而是在gui页面设置好保存以后,用...

    北京-宏哥
  • Jmeter(四十三) - 从入门到精通高级篇 - Jmeter之IP伪装和欺骗(详解教程)

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

    北京-宏哥
  • Jmeter(四十八) - 从入门到精通高级篇 - Jmeter监控服务器性能(详解教程)

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

    北京-宏哥

扫码关注云+社区

领取腾讯云代金券