测试在线[置顶] tcpcopy新架构具体复杂应用实例
2013-05-30 21:04
676 查看
每日一贴,今天的内容症结字为测试在线
测试系统:
我们有测试服务器a,b。
其中a下面运行如下几个系统:
1)nginx业务系统(端口为18080)
2)adserver业务(进程为asyn_server,端口为11811)
3)mysql(3306端口)
这里nginx会访问asyn_server进程,mysql是独立的应用。
目标:
我们须要把在线系统的nginx应用和asyn_server应用导入到测试呆板a中,同时还要复制在线呆板C中的mysql请求到测试呆板a中去。
因此测试呆板a下面的应用有外网应用(nginx)和内网应用(asyn_server和mysql应用),该如何设置路由呢?(这里路由设置是症结)
route del default gw 原先的网关ip地址
route add default gw 呆板b的外网ip地址
这样设置后,如果外网响应最终没有匹配路由的话,就会走默认网关,也即流向到测试呆板b中去。
这样nginx的响应路由就设置好了。
我们设置路由如下:
route add -host 在线呆板A的内网ip地址 gw 测试呆板b的内网ip地址
这样复制的asyn_server的请求到了测试呆板a后,其响应就会流向到测试呆板b中去,但测试呆板a中的nginx访问asyn_server的请求,会返回给nginx。
route add -host 呆板D的ip外网地址 gw 原先的网关ip地址
这样设置好了以后,mysql请求复制在我这儿才能次序停止
mysql请求本身访问采用了内网方式,而mysql的请求客户端ip地址为在线呆板C,那么设置路由如下:
route add -host 在线呆板C的内网ip地址 gw 测试呆板b的内网ip地址
运行:
测试呆板a的路由设置好以后,启动nginx应用,asyn_server和mysql应用,就等请求复制过来了。
我们在测试呆板b中启动多个intercept实例,分离捕获nginx的响应,asyn_server的响应和mysql的响应
每日一道理
试试看——不是像企鹅那样静静的站在海边,翘首企盼机会的来临,而是如苍鹰一般不停的翻飞盘旋,执著的寻求。 试试看——不是面对峰回路转、杂草丛生的前途枉自嗟叹,而是披荆斩棘,举步探索。 试试看——不是拘泥于命运的禁锢,听凭命运的摆布,而是奋力敲击其神秘的门扉,使之洞开一个新的天地。微笑着,去唱生活的歌谣。
捕获mysql响应( ./configure --enable-advanced --enable-pcap --enable-combined --enable-mysql)
sudo ./intercept -F 'tcp and src port 3306' -p 36525 -i eth0 -d
捕获nginx响应 (./configure --enable-advanced --enable-pcap --enable-combined)
sudo ./intercept -F 'tcp and src port 18080' -p 36526 -i eth1 -d
捕获asyn_server响应(./configure --enable-advanced --enable-pcap --enable-combined)
sudo ./intercept -F 'tcp and src port 11811' -i eth0 -d
当然intercept也可以只运行一个实例(-F参数设置过滤好响应包的捕获条件),没有必要一个应用一个intercept实例
我们在在线呆板A复制nginx请求(./configure --enable-advanced --enable-pcap --enable-combined):
sudo ./tcpcopy -x 80-测试呆板a的外网ip地址:18080 -p 36526 -s 测试呆板b的内网ip地址 -i eth0 -d
由于在线nginx前面有lvs,这里请求走的内网网卡
我们在线呆板B复制asyn_server的请求(./configure --enable-advanced --enable-pcap --enable-combined):
sudo ./tcpcopy -x 11311-测试呆板a的内网ip地址:11811 -s 测试呆板b的内网ip地址 -i eth0 -d
从eth0捕获内网请求
我们在在线呆板C中复制mysql请求(./configure --enable-advanced --enable-pcap --enable-combined --enable-mysql):
sudo ./tcpcopy -x 3306-测试呆板a的内网ip地址:3306 -u root@密码 -s 测试呆板b的内网ip地址 -p 36525 -i lo -d
从lo捕获mysql请求
效果演示
复制以后,我们截图如下:
在线呆板A,复制nginx请求,运行tcpcopy
在线呆板B,复制asyn_server请求
在线呆板C,复制mysql请求
测试呆板b下面的intercept
测试呆板a下面的各种业务:
文章结束给大家分享下程序员的一些笑话语录:
3G普不普及现在已经不是看终端了,而是看应用,有好的,便宜实用的应用,花1000多买个能用的智能手机应该不是什么难事。反过来说,你200元拿一个智能手机,没有好的应用,看个电影要几十元,也是没人用3G。
---------------------------------
原创文章 By
测试和在线
---------------------------------
在线系统介绍:
假设我们有在线呆板A,在线呆板B,在线呆板C三台服务器,其中在线呆板A,下面运行nginx(80端口)的业务系统,供最终用户访问,同时nginx还会内网访问在线呆板B下面的adserver(端口11311)业务,在线呆板C运行着伪在线业务msyql(利用sysbench模拟的)测试系统:
我们有测试服务器a,b。其中a下面运行如下几个系统:
1)nginx业务系统(端口为18080)
2)adserver业务(进程为asyn_server,端口为11811)
3)mysql(3306端口)
这里nginx会访问asyn_server进程,mysql是独立的应用。
目标:
我们须要把在线系统的nginx应用和asyn_server应用导入到测试呆板a中,同时还要复制在线呆板C中的mysql请求到测试呆板a中去。如何在测试呆板a中设置路由:
对于测试呆板b,则是运行intercept的地方,用来捕获测试呆板a中的mysql的响应,nginx的响应和asyn_server的部份响应(因为测试呆板a中的nginx也会访问asyn_server,这部份响应不应该路由到测试呆板b)。因此测试呆板a下面的应用有外网应用(nginx)和内网应用(asyn_server和mysql应用),该如何设置路由呢?(这里路由设置是症结)
1)设置nginx的响应路由:
测试呆板a中的nginx走外网网卡,我们设置如下:route del default gw 原先的网关ip地址
route add default gw 呆板b的外网ip地址
这样设置后,如果外网响应最终没有匹配路由的话,就会走默认网关,也即流向到测试呆板b中去。
这样nginx的响应路由就设置好了。
2)设置asyn_server的响应路由:
由于在线的asyn_server是被nginx访问的,我们假设只有在线呆板A下面的nginx来访问,而且是采用内网地址(非localhost)来访问asyn_server的。我们设置路由如下:
route add -host 在线呆板A的内网ip地址 gw 测试呆板b的内网ip地址
这样复制的asyn_server的请求到了测试呆板a后,其响应就会流向到测试呆板b中去,但测试呆板a中的nginx访问asyn_server的请求,会返回给nginx。
3)设置mysql的响应路由:
由于我们测试呆板a下面的mysql,会DNS查询外网,所以必须找出访问的ip地址,我们假设要访问的外网ip地址为呆板D的ip外网地址,须要开明这个ip地址的权限:route add -host 呆板D的ip外网地址 gw 原先的网关ip地址
这样设置好了以后,mysql请求复制在我这儿才能次序停止
mysql请求本身访问采用了内网方式,而mysql的请求客户端ip地址为在线呆板C,那么设置路由如下:
route add -host 在线呆板C的内网ip地址 gw 测试呆板b的内网ip地址
运行:
测试呆板a的路由设置好以后,启动nginx应用,asyn_server和mysql应用,就等请求复制过来了。我们在测试呆板b中启动多个intercept实例,分离捕获nginx的响应,asyn_server的响应和mysql的响应
每日一道理
试试看——不是像企鹅那样静静的站在海边,翘首企盼机会的来临,而是如苍鹰一般不停的翻飞盘旋,执著的寻求。 试试看——不是面对峰回路转、杂草丛生的前途枉自嗟叹,而是披荆斩棘,举步探索。 试试看——不是拘泥于命运的禁锢,听凭命运的摆布,而是奋力敲击其神秘的门扉,使之洞开一个新的天地。微笑着,去唱生活的歌谣。
捕获mysql响应( ./configure --enable-advanced --enable-pcap --enable-combined --enable-mysql)
sudo ./intercept -F 'tcp and src port 3306' -p 36525 -i eth0 -d
捕获nginx响应 (./configure --enable-advanced --enable-pcap --enable-combined)
sudo ./intercept -F 'tcp and src port 18080' -p 36526 -i eth1 -d
捕获asyn_server响应(./configure --enable-advanced --enable-pcap --enable-combined)
sudo ./intercept -F 'tcp and src port 11811' -i eth0 -d
当然intercept也可以只运行一个实例(-F参数设置过滤好响应包的捕获条件),没有必要一个应用一个intercept实例
我们在在线呆板A复制nginx请求(./configure --enable-advanced --enable-pcap --enable-combined):
sudo ./tcpcopy -x 80-测试呆板a的外网ip地址:18080 -p 36526 -s 测试呆板b的内网ip地址 -i eth0 -d
由于在线nginx前面有lvs,这里请求走的内网网卡
我们在线呆板B复制asyn_server的请求(./configure --enable-advanced --enable-pcap --enable-combined):
sudo ./tcpcopy -x 11311-测试呆板a的内网ip地址:11811 -s 测试呆板b的内网ip地址 -i eth0 -d
从eth0捕获内网请求
我们在在线呆板C中复制mysql请求(./configure --enable-advanced --enable-pcap --enable-combined --enable-mysql):
sudo ./tcpcopy -x 3306-测试呆板a的内网ip地址:3306 -u root@密码 -s 测试呆板b的内网ip地址 -p 36525 -i lo -d
从lo捕获mysql请求
效果演示
复制以后,我们截图如下:在线呆板A,复制nginx请求,运行tcpcopy
在线呆板B,复制asyn_server请求
在线呆板C,复制mysql请求
测试呆板b下面的intercept
测试呆板a下面的各种业务:
文章结束给大家分享下程序员的一些笑话语录:
3G普不普及现在已经不是看终端了,而是看应用,有好的,便宜实用的应用,花1000多买个能用的智能手机应该不是什么难事。反过来说,你200元拿一个智能手机,没有好的应用,看个电影要几十元,也是没人用3G。
---------------------------------
原创文章 By
测试和在线
---------------------------------
相关文章推荐
- tcpcopy新架构具体复杂应用实例(针对tcpcopy0.9系列版本)
- 在线测试tcpcopy新架构使用方法
- 利用tcpcopy引流做模拟在线测试
- 使用分层的 Selenium 框架进行复杂 Web 应用的自动测试
- ispunct字符串测试函数应用实例
- PF_NETLINK应用实例NETLINK_KOBJECT_UEVENT具体实现--udev实现原理
- 利用tcpcopy引流做模拟在线测试
- PF_NETLINK应用实例NETLINK_KOBJECT_UEVENT具体实现--udev实现原理
- Linux下Gtest测试框架应用实例
- [置顶] Flume架构以及应用介绍
- isspace字符串测试函数应用实例
- PF_NETLINK应用实例NETLINK_KOBJECT_UEVENT具体实现--udev实现原理
- TCPCopy 把在线流量导入到测试系统中
- PF_NETLINK应用实例NETLINK_KOBJECT_UEVENT具体实现--udev实现原理
- 性能测试之常见系统应用分层架构
- 测试工具应用之我见/压力测试实例
- [置顶] React Native 移动技术在企业架构的应用
- [置顶] DMA多知识学习应用实例
- 利用tcpcopy引流做模拟在线测试
- 【推荐】Nginx基础知识之————多模块(非覆盖安装、RTMP在线人数实例安装测试)