Tcpreplay让协议测试从此无忧

我是一枚在软件测试行业泡了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的参数很多,可根据不同的测试场景进行设置。

基本用到的几个必要参数

1.指定发送端口:--intf1、--intf2

2.设置发送次数:--loop(当--loop=0,即持续循环播放)

3.控制发送速度:--pps、--topspeed

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

Tcpreplay应用

1、功能测试

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

2bug重现

程序出现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。

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

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

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

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

时间: 2024-12-22 05:29:55

Tcpreplay让协议测试从此无忧的相关文章

ONVIF协议测试工具的简单使用(一)

最近开始学习Onvif协议了.在这里记录下学习过程中的点点收获. ********************************************************** 一.检测局域网内的设备是否支持Onvif协议 1.安装ONVIF Test Tool 工具 我用的是Test_Tool_v13_06版本的.如果PC上没有装.NET Framework 3.5的话,会提示你先安装.NET Framework 3.5. 2.ONVIF Test Tool的使用 打开该软件,选择本机的

CocoaAsyncSocket 网络通信使用之http协议测试(三)

CocoaAsyncSocket 网络通信使用之http协议测试(三) 通过前一篇CocoaAsyncSocket网络通信使用之数据编码和解码(二),我们已经搭建好了socket的框架. 框架主要分为以下5个模块: 1-网络连接模块(socket connection) 2-数据协议框架(socket packet content protocol) 3-发送数据前的编码模块(socket encoder protocol) 4-接收数据后的解码模块(socket decoder protoco

Andriod SDK和Loadrunner的HTTP协议测试环境搭建

Andriod SDK和Loadrunner的HTTP协议测试环境搭建 1.Andriod SDK安装 1.1 安装JDK(不累述) 1.2 配置环境变量 配置JDK的系统变量环境,我们需要设置三个系统变量,分别是JAVA_HOME,Path和CLASSPATH.下面是这三个变量的设置防范. JAVA_HOME 先设置这个系统变量名称,变量值为JDK在你电脑上的安装路径:C:\Program Files\Java\jdk1.8.0_20.创建好后则可以利用%JAVA_HOME%作为JDK安装目录

服务端协议测试系列教程

测试技术分享之服务端协议测试系列教程 童鞋看完后有啥想法,可以发给我改进 在线播放地址:http://www.iqiyi.com/u/2013029540/a 下载地址:链接: http://pan.baidu.com/s/1boDHpbp 密码: p76e

一个简单的通用协议测试软件

在一个公司看到的一个协议测试系统,用C#实现,然后在里面可以按照自己的想法完全自定义字段属性什么的. 之前老是调试服务器与客户端,每次都为了协议的事调试半天,两边都要配人,很影响效率,最近加入一家公司又听闻此事重演,有心想做这样的一个测试软件,这个软件只是用来调试协议,提供测试数据,并显示返回的测试数据. 考虑到PC上写程序好像确实C#容易些,不过协议解析之前用python搞过,有意向将之结合,C#做一些界面,python完成自定义协议实现,初步实现tcp,http两种,协议字段初步考虑用xml

webSocket ws协议测试

最近公司做了个直播的项目,需要用到Websocket进行通信,因而需要对socket最大连接数及稳定性进行测试.当初得到这一需求的时候,唯一想到的就是jmeter,从百度下载相应的socket依赖jar包,开始研究(毕竟第一次做这方面的测试),担心单台压力源不够用,又整了个分布式,不过最终发现Jmeter并不适合测试Socket的最大连接数,于是调整了思路,寻找其他方法,功夫不费有心人,最后发下了一款不错的socket测试小工具(点击下载)是一个.exe文件,使用该工具可以很容易的实现socke

026-请问你怎么测试网络协议

协议测试包括四种类型的测试 1.一致性测试:检测协议实现本身与协议规范的符合程度 2.互操作性测试:基于某一协议检测不同协议实现间互操作互通信的能力 3.性能测试:检测协议实现的性能指标,比如数据传输速度,连接时间,执行速度,吞吐量,并发度, 4.健壮性测试:检测协议是现在各种恶劣环境下运行的能力,比如注入干扰报文,通信故障,信道被切断 原文地址:https://www.cnblogs.com/qiuniao/p/10926011.html

MQTT压力测试工具之JMeter插件教程

摘要: MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)主要用于移动Push,移动IM,物联网M2M,物联网采集等,这些应用场景的特点是客户端的连接设备数比较多,那么如何在系统上线之前验证系统能否承受预先设计的压力呢? MQTT简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽.不可靠的网络的进行远程传感器和控制设备通讯等,正在日益成为物

第九章,测试系统

在系统测试中,我们的目的就是:确保系统能够做顾客想要做的事.为了理解怎样实现这个目标,我们首先必须理解系统的错误来自那里. 在测试系统中有以下几步: 1. 功能测试 2. 执行测试 3. 协议测试 4. 安装测试 .职业测试员组织和进行测试.分析员插手于原始需求定义和描述,系统设计者为测试小组增加了目的观点.因为测试和测试用例于需求和设计紧密联系,测试小组需要一个结构管理代表. 系统测试分为功能测试,性能测试.性能测试一个最关键的问题是保证系统的可靠性,可用性及可维护性.我们希望能将可靠性,可用