51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师【周活动】 找茬--心里圈的故事 !【长期招募】博为峰网校招聘兼职讲师!横扫BAT,Python全栈测试开发技能大全
【106期】:如何树立正确使用Python做开发的习惯 【征稿】提交你的测试成绩单! 【专题】用尽一切办法只为让你学好用例 自学软件测试那点事
查看: 16771|回复: 39

TCP/IP协议包的发送接收测试,大家都来看看啊.

[复制链接]

该用户从未签到

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

[ 本帖最后由 z_kh 于 2008-8-4 09:26 编辑 ]
回复

使用道具 举报

该用户从未签到

发表于 2008-8-2 08:58:09 | 显示全部楼层
性能测试,先跑100个用户主业务流看看!过了,继续加用户,最后测次要功能,不知道你性能测试水平如何.......
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2008-8-2 15:56:08 | 显示全部楼层
LR中能够看到接收和发送包么?
如果用LR,对我们公司的这个软件不太行的通...或者说时间上来不急...
我原来有用LR录制了一份他的登陆.结果发现登陆就占用了2000多个BUF.
而且因为内嵌了一些WEB的东西.结果很多数据都是加密的.
我查了下.单是登陆的2000多个BUF中就有300多个BUF的是要验证用户名和密码的.而且都是加密的.
这种工作量我两天的时间感觉实在有点难度.
以前只用LR测试过WEB的.CS这块接触的不多.....
这次的测试主要是要验证登陆的时候TCP/IP包的接收和发送是完整和正确的.
老大们救我!......
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2008-8-2 18:16:31 | 显示全部楼层
哈哈.搞定了.使用了抓包工具Ethereal
很好的分析了包,协议,以及包内的SEQ,ACK,len等内容.虽然无法完全比对内容.但是可以比对所传输的data大小,我想应该足够了....
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2008-8-2 18:17:04 | 显示全部楼层
加一点哦..
还显示了端口.
实在是不错的工具....
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2008-8-2 18:41:54 | 显示全部楼层
晕了...
在抓包测试的时候服务端反馈的信息中有这么一部分..
TCP CHECKSUM  INCORRECT
这是怎么回事?
TCP的传输不是可信任的么?
怎么会报这样的错误呢?
如果错误后,TCP/IP是否会重新发送?如果重新发送又如何确认?
而且还有个问题.我客户端发送的ACK请求包的LEN=0.怎么服务端的ACK确认包的LEN=1460?
这又是什么原因造成的?
请高手们指教!!!!!
急!!!!!
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2008-8-2 18:55:10 | 显示全部楼层
继续提问:
除了上述的问题,TCP/IP的包讲究的是发送和确认.我在监视的时候却发现后面部分的客户端都只有ACK包而没有FIN -ACK的关闭请求包.也就是我的请求一直都未关闭?
而服务端同样的问题.只有ACK的确认包,却没有自身的FIN -ACK包?
这样的情况是怎么回事?
同时问题也产生了.首先服务端有一个ACK包.但是校验是错误的.这个时候是否会重新发包?以我对TCP/IP本身的理解来说,TCP/IP客户端如果接收到确认包就该关闭连接.而如果没有接收到则重新发送.那么对客户端来说,这个时候到底是接到了确认包还是没有接到确认包呢?客户端和服务端在这个时候到底是处于什么状态的呢?
是什么问题造成的?
同时让我奇怪的是我的客户端登陆后都是正常的.虽然说客户端的表现不能做为凭证.但是如果有这么多大面积的TCP/IP通信的错误,怎么客户端就没有一点表现呢?(出现错误信息占了2/3左右)
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2008-8-4 09:27:12 | 显示全部楼层
求救啊!!!!!!!..............
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2008-8-4 11:24:06 | 显示全部楼层
救命啊.....
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2008-8-4 12:00:54 | 显示全部楼层
重又看TCP/IP.有点明白....
在建立连接后,如果中间有数据输出,将不会中断连接.只有在数据传输结束后才会进行连接中断.
所以出现了多个ACK包对应一个FIN--ACK包...
目前剩下的问题是,为什么长度会不一致?
难道出错后,服务端的确认包中添加了头信息?
这也是为什么服务端的确认包出错后的长度都是一样大小的原因么?
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2008-8-5 11:41:41 | 显示全部楼层
报错的原因是和网卡有关系.如果不想看到错误
Windows下改变Checksum Offload
网卡配置->高级->Rx Checksum Offload或Tx Checksum Offload,将之调整成Disable即可,代价是网络性能降低.
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-8-5 17:11:18 | 显示全部楼层
弄了半天都是你在自问自答
何必呢
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-8-21 13:52:22 | 显示全部楼层

几经波折的你的脑袋~~~~~~~~

全是自己一个人在那里说
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-9-4 13:53:35 | 显示全部楼层
楼主我顶你,你的做法非常好,不但记录下给自己看,以后有人遇到同样的问题也可以学习一下你解决问题的办法。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-9-10 21:29:59 | 显示全部楼层
话说回来有什么工具可以以脚本的方式测试类似楼主这样的服务器吗?
比如登陆什么的功能。用抓包的方式很辛苦啊
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-10-1 00:38:45 | 显示全部楼层
我测试过类似的东西都是基于sip协议的,自己写个要发送的请求包,然后在包再把返回包转成xml读出来check下。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-10-9 09:25:28 | 显示全部楼层
支持楼主
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-10-17 15:30:26 | 显示全部楼层

楼主忽悠

楼主是不是来赚人气来了
那有这个样子的,有点像电视购物啊
或者干脆点就是自卖自夸
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-10-31 14:48:21 | 显示全部楼层
不容易啊,都自己解决了,一定查了N多资料吧
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-11-11 15:33:21 | 显示全部楼层
佩服+羡慕 ing
也想做这方面的测试呢~  目前在看这方面的资料呢
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /2 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2019-9-18 05:12 , Processed in 0.075063 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2019 Comsenz Inc.

快速回复 返回顶部 返回列表