项目修炼之路(2)测试-TCPCopy

来源:互联网 发布:mac的numbers使用教程 编辑:程序博客网 时间:2024/05/21 18:36

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


资源(单击下载):

        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.gzcd tcpcopy-0.8.0.tar.gz./configuremakemake install

结果如下:

           


1,启动TCPCopy server 

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

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

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

            
./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

测试结果为

线上环境:

       

测试环境:

       


总结:

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

1 0
原创粉丝点击