性能测试 Linux 环境下模拟延时和丢包实现
在性能测试过程中,我们还需要模拟网络异常的情况下,是否会出现一些异常数据。最常见的就是写库操作,比如说我们下单的场景,如果出现网络异常的时候是否会出现数据对不上这种情况。
如我们JMeter发送成功的请求数量和最终数据库表中存入下单的数据对不上,通常在网络异常的情况下会出现这种情况,因为通常很多框架都会存在重试的功能,比如APP在向服务端发送网络请求,那么在这个请求的过程中网络不稳定,一直没有得到响应,那么APP会重试,但是出现这种情况下,我们就需要考虑是否会出现重复下单,生成两笔订单的情况。
通常我们服务端通常会有一定的机制处理这种情况,但是我们需要去测试服务端这种机制是否生效。
tc工具的介绍
通常我们是在应用服务器上使用tc工具模拟网络丢包。tc工具是工作在服务端的,是专门针对网卡来进行一些相关的策略的。比如当我们请求传到网卡的时候,其实这个时候请求还没有到程序里面,那我们可以在网卡出来的时候加长延时时间或者丢包。
Linux中模拟延时和丢包
在模拟丢包之前,我们现在看一下我们机器的网卡,可以看到我们的网卡是eth0
然后我现在在本机上ping我们的应用服务器,确认网络正常。
设置延时
1、此时我们设置延时,其中eth0 是我们的网卡名称,下面的命令实现了给 eth0 口发包时添加 30ms 的延时。
tc qdisc add dev eth0 root netem delay 30ms
设置延时之后,此时我们可以看到时间已经在40ms左右了
2、显示延时的设置
3、修改延时
tc qdisc change dev eth0 root netem delay 40ms
4、删除延时配置
tc qdisc del dev eth0 root netem delay 40ms
可以看到删除延时之后,时间又恢复在10ms左右了
图片
模拟丢包
1、设置丢包
tc qdisc add dev eth0 root netem loss 10%
再看可以发现已经出现丢包的情况了
如果你是通过SSH 登陆设备进行配置丢包的话,配置完这条命令就会感觉到机器访问时有点一卡一卡的。这说明,设备已经开始丢包了,可以通过具体抓包查看。
其他诸如修改、查看、删除的命令,都可以参考上面延时的设置。
最后: 可以在公众号:伤心的辣条 ! 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
现在我邀请你进入我们的软件测试学习交流群:【746506216
】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!
软件测试工程师自学教程:
这才是2022最精细的自动化测试自学教程,我把它刷了无数遍才上岸字节跳动,做到涨薪20K【值得自学软件测试的人刷】
软件测试工程师月薪2W以上薪资必学技能 — Python接口自动化框架封装.
美团面试真题_高级测试25K岗位面试 — 软件测试人都应该看看
相关文章
- nagios安装check_linux_stats.pl插件报错Can't locate Sys/Statistics/Linux.pm in @INC的处理?
- linux挂载/卸载优盘
- Linux安装 微信开发者工具(deepin linux ubt)
- STM32MP157 Linux系统移植开发篇1:linux系统移植前说明及源码编译
- 【进阶之路】性能测试 Linux 环境下模拟延时和丢包实现
- 性能测试 Linux 环境下模拟延时和丢包实现
- 实用的Linux SHELL面试问题及答案
- Linux有问必答 - 如何在linux上安装WPS
- 5 个值得了解的 Linux 服务器发行版
- linux学习-Linux系统启动过程
- linux kernel 卡在提示信息Waiting for root device /dev/mmcblk0p1...处
- 【linux】:模拟文件基本操作以及文件在磁盘中如何存储的学习
- linux环境下利用rsync+find实现同步指定时间段文件
- linux cpu 使用
- 【Linux】手把手教你如何搭建linux环境---云服务器
- 记录一次实验室linux系统的GPU服务器死机故障的排查——Linux系统的Power States
- Linux的Samba服务器
- linux系统编程:自己动手写一个cp命令
- Linux_查看linux并发连接数
- 浅析如何解决终端输入长命令不换行覆盖(Docker容器内输入长命令折行覆盖)问题:如何设置docker容器tty终端窗口大小-Linux stty命令设置串口终端行列数
- linux服务器安装nodeJS步骤及踩坑记录(解决node -v报错cannot execute binary file: Exec format error的问题 - 在Linux中安装适用于arm64位的nodejs)以及node环境项目部署
- oneinstack一键部署linux生产环境那点事(ubuntu)
- 【八天学好Linux】第二天 Linux中用命令行管理文件
- Linux学习笔记(3)linux服务管理与启停(开机自启与自定义服务)
- Linux学习笔记(2)linux系统信息与进程相关命令
- Linux学习笔记(1)linux的开关机及重启
- ARM Linux IIC tools - i2c-tools-4.3