设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

QQ登录

只需一步,快速开始

#公告#抱歉,网站将关闭,不再开放。由于PC时代已远逝 。在这个后移动互联网时代,我们继续携手前行,保持对技术的热情。共同构建linuxtone知识星球欢迎加入,一起讨论技术、招聘人才、分享资源。请新老linuxtone人 扫码移步到 知识星球:linuxtone

学习是一种信仰!分享是一种快乐!能力= 心态 * 沟通 * 知识 (你的每一天需要正能量!)

 网站的发展需要你贡献一份力量!希望你能每天坚持看贴1小时,并回答网友的问题!祝你在浏览论坛的过程中取得进步!谢谢!linuxtone加油!大家加油! 友情提示: 你今天学习了吗?你今天进步了吗?少一点抱怨!多一点进步!Life is short ! Why not linuxtone ?  

网站的发展、感谢每位坛友的努力!

查看: 36234|回复: 0

[性能测试] Tcpreplay让协议测试从此无忧 [复制链接]

Rank: 6Rank: 6

签到
82
注册时间
2016-6-8
最后登录
2018-10-26
在线时间
31 小时
阅读权限
70
积分
8254
帖子
59
主题
54
精华
0
UID
47276
发表于 2016-6-13 11:54:23 |显示全部楼层
1.jpg


我是一枚在软件测试行业泡了7年的妹纸,想分享点自己的一些心得体会。在我刚接触协议测试那会,相当迷茫。过程中一系列的问题便不约而至,例如:

•        如何明确入参出参?
•        如何掌控流量?
•        如何重现bug?
•        如何模拟使用不常见协议的流量?
•        如何模拟大数据量,进行性能和稳定性测试?

这么多问题,通过手工显然无法实现,一定要利用好工具,实现自动化测试。无疑对我这样一个菜鸟来说,是一个全新的挑战。

谈到网络协议,我们自然而然会想到Wireshark、tcpdump等抓包工具,而tcpreplay即是为它们而生。有了tcpreplay,如获至宝,几乎每一次执行测试,都少不了它的身影。

今天,给大家分享下测试过程中tcpreplay的一些应用。

Tcpreplay,顾名思义,重放tcp的报文,是一种功能强大,操作简单的自动化测试工具。它可以将用Wireshark、tcpdump工具抓下来的包原样或经过任意修改后重放回去,还原网络的实际运行状态。

Tcpreplay安装
说到tcpreplay安装超级简单,直接yum安装即可,如果yum未添加epel源,执行
1.        # yum install epel-release
2.        然后再执行安装
3.        # yum install tcpreplay              

Tcpreplay使用
1.        通过执行
2.        # tcpreplay -h
3.        Tcpreplay的参数很多,可根据不同的测试场景进行设置。

2.jpg


基本用到的几个必要参数

1.        指定发送端口:--intf1、--intf2
2.        设置发送次数:--loop(当--loop=0,即持续循环播放)
3.        控制发送速度:--pps、--topspeed

如以1000pps的速度重放10次coss_mqorclhttp.pcap数据包,命令如下:

3.jpg


Tcpreplay应用

1、功能测试

我们只需搭建一次应用环境,根据测试用例分别抓包保存为.pcap文件,后续均通tcpreplay重放测试即可。即提高工作效率,又保证稳定可控的入参,能更准确验证解析结果。

2、bug重现

程序出现bug,开发人员的反应,怎么可能?无法复现!此时只要你够机灵,能够在出现bug的时候将数据包保存下来,tcpreplay随时帮你重现。

3、性能测试

在性能测试方面,只要控制好--pps参数即可,通过不断加大--pps参数值来对系统进行加压,在这个过程中,同时通过iftop记录端口流量,就可轻松提供协议数据解析性能。

然~~稳定性测试,只需将--loop参数设置为0,持续循环播放,完全实现自动化,我们只需观察系统运行日志即可。

4、改写数据包

关于数据包,往往我们保存下来的样例包,数据相对单一,为了更真实地模拟生产环境数据,需要将数据包进行改写,那么要引入tcprewrite。

tcprewrite就是改写pcap包里的报文头部, 包括2层, 3层, 4层, 5-7层。从3.0版本以后, 所有改写pcap报文头的操作都从tcpreplay中移到了tcprewrite里了。

以较常用的改写IP地址为例,以下命令表示将intest.pcap数据包IP为100.123.67.20改写成192.168.0.10,并输出保存为outtest.pcap。

4.jpg


接下来就是测试场景环节,如对于intest.pcap数据包,需要模拟100个不同ip地址。由于tcprewrite每次执行只改写一次便保存一个pcap文件,为了我们重放时方便,我们可以将改写好的每个文件通过mergecap命令合并到一个文件中,实现脚本如下:

5.jpg


在执行完成以上脚本,结果输出一个pcap文件,通过tcpreplay重放即可。Tcpreplay工具的应用,始终就一行命令,简单易用,让协议测试从此无忧!

只想做一场最认真 / 有温度的技术分享

作者自我评价:杨琦,虽在软件测试行业泡了7年,但依然还是菜鸟,希望能在测试运维中得到更好的学习和发展。

秉承devops的理念,从监控、到应用体验,到自动化持续交付,全栈运维解决方案服务商:http://uyun.cn
您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2019-12-9 11:04 , Processed in 0.022298 second(s), 16 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部