[置顶] 项目修炼之路(2)测试-TCPCopy

上篇博客中,我们介绍了服务化的相关特点,这篇博客主要给大家介绍在预上线之前做的tcpcopy测试。主要是图中红色背景部分:

[置顶] 项目修炼之路(2)测试-TCPCopy_第1张图片

资源(单击下载):

        tcpcopy-0.8.0.tar.gz

TCPCopy分为client和server,其中client运行在在线服务器上面,用来捕获在线请求数据包;server(监听端口为36524)运行在测试机器上面,client在测试服务器的响应包丢弃之前截获测试服务器的响应包,并通过client和server之间的tcp连接,传递响应包的tcp和ip头部信息给TCPCopy client,以完成TCP交互,不然TCP包就不能算到达对端。

下载相应的服务包,拷贝到测试环境,准备一个测试用tomcat
依次执行下列命令

tar -zxvf tcpcopy-0.8.0.tar.gz
cd tcpcopy-0.8.0.tar.gz
./configure
make
make install

结果如下:

           [置顶] 项目修炼之路(2)测试-TCPCopy_第2张图片


1,启动TCPCopy server 

配置无应答
1)启动内核模块ip_queue
#modprobe ip_queue
2)设置要截获的端口,并且设置对output截获
#iptables -I OUTPUT -p tcp --sport 18093 -j QUEUE      //注意这里的port就是测试服务器监听的端口-此步骤必须设置,否则不通
3)启动intercept

          [置顶] 项目修炼之路(2)测试-TCPCopy_第3张图片
#intercept
注意:配置好iptbales之后不要去运行service iptables start,不然新加的配置又会被清空了,如果iptables没有启动,可以在加规则之前启动;如果1),2)已经设置并起效的话,只要运行intercept就好了;测试完成之后要调用iptables -F 把过滤规则去掉

2,启动TCP Client进行包的转发

            [置顶] 项目修炼之路(2)测试-TCPCopy_第4张图片
./tcpcopy -x 线上服务器监听端口号-测试服务器ip地址:测试服务器监听端口

另外可以加 -n 参数,进行多重复制,此参数的值就是代表复制过去的流量是在线的n 倍

例子:

./tcpcopy -x 18093-192.168.2.16:18093

试验用jsp:

<%
	System.out.println("xvshu");
%>

将jsp放到tomcat -> webapp -> ROOT 下

访问地址为:http://192.168.2.200:18093/1.jsp

测试结果为

线上环境:

       [置顶] 项目修炼之路(2)测试-TCPCopy_第5张图片

测试环境:

       [置顶] 项目修炼之路(2)测试-TCPCopy_第6张图片


总结:

       程序的设计,是为了方便人,提升效率,有了tcpcopy后,我们可以尽最大可能模拟线上的操作,为我们上线提供了保障!

你可能感兴趣的:([置顶] 项目修炼之路(2)测试-TCPCopy)