一、应用背景
主要用于系统的稳定性测试。它可以复制线上服务器的请求,通过修改TCP/IP数据包信息,进而发送到测试服务器,为测试服务器创造一个真实的测试环境。
二、组成部分
- TCPCopy Server:部署在 测试服务器 ,用于接收复制的线上请求
- TCPCopy Client:部署在 线上服务器 ,用于捕获线上请求,通过修改TCP/IP数据包,发送到TCPCopy Server进行稳定性测试
三、下载及安装
- 下载地址: TCPCopy
- 文档地址: TCPCopy_Manual.pdf
- 解压后,进入TCPCopy根目录
- ./configure
- make
- make install
这里使用的是默认安装,可以到/usr/local/bin下面查看是否生成tcpcopy和intercept。
四、使用
- 测试服务器(TCPCopy Server)
sudo su
modprobe ip_queue
iptables -I OUTPUT -p tcp --sport <测试项目端口> -j QUEUE
/usr/local/bin/intercept -d
- 线上服务器(TCPCopy Client)
sudo su
/usr/local/bin/tcpcopy -x <线上项目端口>-<测试服务器IP>:<测试项目端口> -d
五、例子
测试服务器IP和端口:10.0.0.1 9080
线上服务器IP和端口:20.0.0.1 8080
- 测试服务器(TCPCopy Server)
sudo su
modprobe ip_queue
iptables -I OUTPUT -p tcp --sport 9080 -j QUEUE
/usr/local/bin/intercept -d
- 线上服务器(TCPCopy Client)
sudo su
/usr/local/bin/tcpcopy -x 8080-10.0.0.1:9080 -d
/usr/local/bin/tcpcopy -x 80-10.0.0.10:8083 -d
监听服务器的80端口的流量,导入到测试服务器 10.0.0.10 的 8083端口
如无tcpcopy服务,可自行安装
wget https://github.com/wangbin579/tcpcopy/archive/0.9.0.tar.gz -O tcpcopy-0.9.0.tar.gz --no-check-certificate
tar zxvf tcpcopy-0.9.0.tar.gz
cd tcpcopy-0.9.0
./autogen.sh
./configure --prefix=/usr/local/tcpcopy
make
sudo make install
可参考http://blog.csdn.net/h348592532/article/details/50547207