51Testing软件测试论坛

标题: TCP/IP协议包的发送接收测试,大家都来看看啊. [打印本页]

作者: z_kh    时间: 2008-8-1 23:26
标题: TCP/IP协议包的发送接收测试,大家都来看看啊.
我这两天要测试一个及时通信软件,类似QQ,使用C++写的.因为用户数达到了2000+,而且功能太过复杂,以及早期的软件设计不够合理的原因,使用UDP协议造成了登陆缓慢.目前修改为登陆使用TCP协议登陆面板保证登陆速度,而后才使用UDP协议接收各种数据
目前公司要求我需要测试TCP/IP协议的发包和接包,保证通信的正确性.
不知道该如何入手...
急啊!!!!!
还有两天的时间了....
请大家指点一二啊?

[ 本帖最后由 z_kh 于 2008-8-4 09:26 编辑 ]
作者: dimang11    时间: 2008-8-2 08:58
性能测试,先跑100个用户主业务流看看!过了,继续加用户,最后测次要功能,不知道你性能测试水平如何.......
作者: z_kh    时间: 2008-8-2 15:56
LR中能够看到接收和发送包么?
如果用LR,对我们公司的这个软件不太行的通...或者说时间上来不急...
我原来有用LR录制了一份他的登陆.结果发现登陆就占用了2000多个BUF.
而且因为内嵌了一些WEB的东西.结果很多数据都是加密的.
我查了下.单是登陆的2000多个BUF中就有300多个BUF的是要验证用户名和密码的.而且都是加密的.
这种工作量我两天的时间感觉实在有点难度.
以前只用LR测试过WEB的.CS这块接触的不多.....
这次的测试主要是要验证登陆的时候TCP/IP包的接收和发送是完整和正确的.
老大们救我!......
作者: z_kh    时间: 2008-8-2 18:16
哈哈.搞定了.使用了抓包工具Ethereal
很好的分析了包,协议,以及包内的SEQ,ACK,len等内容.虽然无法完全比对内容.但是可以比对所传输的data大小,我想应该足够了....
作者: z_kh    时间: 2008-8-2 18:17
加一点哦..
还显示了端口.
实在是不错的工具....
作者: z_kh    时间: 2008-8-2 18:41
晕了...
在抓包测试的时候服务端反馈的信息中有这么一部分..
TCP CHECKSUM  INCORRECT
这是怎么回事?
TCP的传输不是可信任的么?
怎么会报这样的错误呢?
如果错误后,TCP/IP是否会重新发送?如果重新发送又如何确认?
而且还有个问题.我客户端发送的ACK请求包的LEN=0.怎么服务端的ACK确认包的LEN=1460?
这又是什么原因造成的?
请高手们指教!!!!!
急!!!!!
作者: z_kh    时间: 2008-8-2 18:55
继续提问:
除了上述的问题,TCP/IP的包讲究的是发送和确认.我在监视的时候却发现后面部分的客户端都只有ACK包而没有FIN -ACK的关闭请求包.也就是我的请求一直都未关闭?
而服务端同样的问题.只有ACK的确认包,却没有自身的FIN -ACK包?
这样的情况是怎么回事?
同时问题也产生了.首先服务端有一个ACK包.但是校验是错误的.这个时候是否会重新发包?以我对TCP/IP本身的理解来说,TCP/IP客户端如果接收到确认包就该关闭连接.而如果没有接收到则重新发送.那么对客户端来说,这个时候到底是接到了确认包还是没有接到确认包呢?客户端和服务端在这个时候到底是处于什么状态的呢?
是什么问题造成的?
同时让我奇怪的是我的客户端登陆后都是正常的.虽然说客户端的表现不能做为凭证.但是如果有这么多大面积的TCP/IP通信的错误,怎么客户端就没有一点表现呢?(出现错误信息占了2/3左右)
作者: z_kh    时间: 2008-8-4 09:27
求救啊!!!!!!!..............
作者: z_kh    时间: 2008-8-4 11:24
救命啊.....
作者: z_kh    时间: 2008-8-4 12:00
重又看TCP/IP.有点明白....
在建立连接后,如果中间有数据输出,将不会中断连接.只有在数据传输结束后才会进行连接中断.
所以出现了多个ACK包对应一个FIN--ACK包...
目前剩下的问题是,为什么长度会不一致?
难道出错后,服务端的确认包中添加了头信息?
这也是为什么服务端的确认包出错后的长度都是一样大小的原因么?
作者: z_kh    时间: 2008-8-5 11:41
报错的原因是和网卡有关系.如果不想看到错误
Windows下改变Checksum Offload
网卡配置->高级->Rx Checksum Offload或Tx Checksum Offload,将之调整成Disable即可,代价是网络性能降低.
作者: namelcx    时间: 2008-8-5 17:11
弄了半天都是你在自问自答
何必呢
作者: kara520    时间: 2008-8-21 13:52
标题: 几经波折的你的脑袋~~~~~~~~
全是自己一个人在那里说
作者: jlminghui    时间: 2008-9-4 13:53
楼主我顶你,你的做法非常好,不但记录下给自己看,以后有人遇到同样的问题也可以学习一下你解决问题的办法。
作者: fwc    时间: 2008-9-10 21:29
话说回来有什么工具可以以脚本的方式测试类似楼主这样的服务器吗?
比如登陆什么的功能。用抓包的方式很辛苦啊
作者: kalada    时间: 2008-10-1 00:38
我测试过类似的东西都是基于sip协议的,自己写个要发送的请求包,然后在包再把返回包转成xml读出来check下。
作者: superliuli1    时间: 2008-10-9 09:25
支持楼主
作者: loveyu_xu    时间: 2008-10-17 15:30
标题: 楼主忽悠
楼主是不是来赚人气来了
那有这个样子的,有点像电视购物啊
或者干脆点就是自卖自夸
作者: baderjackie    时间: 2008-10-31 14:48
不容易啊,都自己解决了,一定查了N多资料吧
作者: ljing0310    时间: 2008-11-11 15:33
佩服+羡慕 ing
也想做这方面的测试呢~  目前在看这方面的资料呢
作者: zengyixun    时间: 2008-12-2 16:47
何必抓来抓去这么辛苦?不是你们自己公司的东东么?叫开发人员提供协议结构说明或者接口文件呀!是做工作的,又不是考水平折磨人的!
我就不信你们公司的新到的开发人员接手人家的模块,要写网络通信过程的程序时,都要自己去抓包分析自己公司的协议结构!如果这样,你们公司可就有意思了!

[ 本帖最后由 zengyixun 于 2008-12-2 16:48 编辑 ]
作者: z_kh    时间: 2009-1-16 13:24
呵呵,
没想到后面这么多人跑来看.
其实问题本身我开始以为自己搞不来的.但是查了资料后发现能搞定就上来回下贴..免的浪费大家时间,同时也可以让大家看看我是怎么处理的.
对于楼上的兄弟,
我是新人,没啥经验,只知道自己瞎折腾,受教了.其实后来我导师也告诉我不用这么麻烦的.呵呵。

[ 本帖最后由 z_kh 于 2009-1-16 13:27 编辑 ]
作者: Giff    时间: 2009-1-22 11:52
其实写出来是绝对有用的~ 大家都可以看看 没准以后就会碰到的~~

比如
报错的原因是和网卡有关系.如果不想看到错误
Windows下改变Checksum Offload
网卡配置->高级->Rx Checksum Offload或Tx Checksum Offload,将之调整成Disable即可,代价是网络性能降低.
------------------------------------------------------------------------------------------------
这里我就学到了

我刚刚好也是在做一套C++编写的C/S架构软件的测试 对我来说看了是很有帮助的
我也是新手,懂的不多,或许高手觉得太简单,但对于新人,知道或者遇见的问题越多,才会有成长
作者: mylaurel    时间: 2009-3-18 22:49
谢谢了,俺也开始协议包测试了
作者: hp6141265    时间: 2009-3-31 10:25
谢谢了,虽然我现在还没有做到这种测试,但可以为以后做参考
作者: wenshichan    时间: 2011-4-14 17:35
LZ前几次自问自答,对自己帮助一定很大。就是要学会自己摸索问题,学习LZ精神。
作者: lvtianhai    时间: 2011-5-3 12:20
顶一个,很欣赏楼主的做法!你是一个网络时代的大好人!
作者: jiazurongyu    时间: 2011-5-12 16:16
用工具验证
作者: binghua    时间: 2011-5-30 18:08
其实可以用工具OminiPeek工具的,捕获网卡,还有协议,TCP/IP,还有应用层的协议。很详细的
作者: 一剂清梳    时间: 2011-6-18 20:59

作者: jiazurongyu    时间: 2011-6-23 01:18
是啊 跑1定时间的抓包工具就能看啊
Ack的数量就能确保 接收到了1个包啊
作者: jiazurongyu    时间: 2011-6-23 01:19
再难的分析就不会了 。越做越觉得测试太多东西要学
作者: wscqb    时间: 2012-2-7 09:56
可以网上下个tcp测试工具的,那个可以支持自动发送,并记录发送和接受的字节数
作者: cirshly    时间: 2012-3-5 20:20
好文章
作者: 甘老太    时间: 2012-12-10 15:54
顶楼主!!
作者: bazhen1982    时间: 2013-6-28 23:49
我也要做抓包,学习啦
作者: meiling9659    时间: 2013-9-25 17:07

作者: 394742832    时间: 2013-11-20 12:37
可怜的LZ,没人打救,就自救吧...
作者: eleven_2030    时间: 2013-12-19 10:04
顶楼主!!!
作者: Miss_love    时间: 2014-5-19 11:57
不太了解这方便




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2