不要追求绝对的公平,红尘之中没有公平而言,人活一世,难得糊涂。                                           it is no use doing what you like, you have got to like what you do.

性能测试之协议分析

上一篇 / 下一篇  2007-04-18 09:53:11 / 个人分类:Mercury LoadRunner

用lr的winsock协议录制的脚本遇回放过程中遇到如下错误51Testing软件测试网Aa7SGM%d

Action.c(20): Error : callConnect - Cant assign requested address. Error code : 10049.51Testing软件测试网JE4RK;U y8t a0J
Action.c(20): Error : Timeout expired while trying to connect. Error code : 9017.51Testing软件测试网7Y6kQs/I7}7i _

!y+{T4I-[3O E0这里的10049是udp协议错误,是脚本没有和服务器同步,这说明什么问题呢。下边我用一个协议进行分析,来看看到底是什么问题,
?[d,eH} O*Pz+bE0smtp协议分析:51Testing软件测试网 E0hw-V4P6N1]P

51Testing软件测试网hTpq[ ImR aG'U

1.SMTP工作方式有两种情况:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器.51Testing软件测试网7UG"g{+yXk
2.SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束。响应包括一个表示返回状态的三位数字代码.51Testing软件测试网Z q;ouW/D,L
3.SMTP在TCP协议25号端口监听连接请求51Testing软件测试网)`b[O2^u
4.连接和发送过程:

D9yc D%C'qe0x0

T4K"Df|0a.建立TCP连接
h;T{e9U _0`0b.客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令51Testing软件测试网%RW8j!LFm2pXV
服务器端正希望以OK作为响应,表明准备接收51Testing软件测试网MVX%{2rKx
c.客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行51Testing软件测试网9}v+I;oV iPo
服务器端则表示是否愿意为收件人接受邮件51Testing软件测试网y*Y4w6n0x:D D ^5vlF
d.协商结束,发送邮件,用命令DATA发送
IX{#s8Z2j Cl pd0e. 以.表示结束输入内容一起发送出去51Testing软件测试网 \/b&]C2q9{1HZ
f.结束此次发送,用QUIT命令退出。
*cv4L(g.{6v6cAf051Testing软件测试网`k$]!d-w)ywv

/c+_+|i L y@05.另外两个命令:
.QCcm"W,Dl)VR0VRFY---用于验证给定的用户邮箱是否存在,以及接收关于该用户的详细信息。
sQys9k c0EXPN---用于扩充邮件列表。
s2w/U E(zG F)S0

#N sm'tQ,]@ Lh0

q rb!|FHi6G/|06.邮件路由过程:51Testing软件测试网u ?~&h;w+D!j
SMTP服务器基于‘域名服务DNS中计划收件人的域名来路由电子邮件。SMTP服务器基于DNS中的MX记录来路由电子邮件,MX记录注册了域名和相关的SMTP中继主机,属于该域的电子邮件都应向该主机发送。51Testing软件测试网G pB]9V`
51Testing软件测试网 Rx;U)L)q#R8GQy.V

51Testing软件测试网[ `!CaZj'`@ o

若SMTP服务器mail.withub.org收到一封信要发到
F^1Es'u+c051Testing软件测试网e_7oPKHG%J

51Testing软件测试网'D1j2M/ge+a L!z1lT

a.Sendmail请求DNS给出主机withub.org的CNAME记录,如有,假若CNAME到mail.withub.org,则再次请求mail.withub.org的CNAME记录,直到没有为止.
(xt6Kyh:Hui0b.假定被CNAME到mail.withub.org,然后sendmail请求@withub.org域的DNS给出mail.withub.org的MX记录,51Testing软件测试网I-T6m&G2}:Dd
shmail MX 5 mail.withub.org
.c+L"H+\s'S[%^D010 shmail2.withub.org
G:q1P@:ZU }4x'dG|6Z6pv0c. Sendmail最后请求DNS给出shmail.withub.org的A记录,即IP地址,若返回值为1.2.3.451Testing软件测试网"D"_\"q_
d. Sendmail与1.2.3.4连接,传送这封给pcl的信到1.2.3.4这台服务器的SMTP后台程序

&|Iq} z;^ku!]051Testing软件测试网$b`8s rWW-a&G

这里是协议的一个解析过程,我们要看看,利用lr录制脚本后然后回放,录制的过程中mail.withub.org返回客户端服务器上有多少给用户 的邮件,lr把这个数字保存下来,最为下次回放的时候对比。当你第二次回放的时候,lr模拟客户端发送请求,这时候服务器上没有了新邮件,返回可能是0, lr把这个返回值和当时录制的脚本保存的返回值进行对比(那个时候可能服务器上有3个新的邮件,服务器返回的值是3),明显这个值是动态变化的。你的脚本 如果没有经过修改,肯定是回返不成功的。51Testing软件测试网r,K$jX~-`;[I

51Testing软件测试网\;oo}{sj

那么上边提到的错误信息,同样的道理,我们要分析一下到底是什么问题,从协议上分析,从系统环境上分析。51Testing软件测试网B M8KwkjG/^8e

51Testing软件测试网-Ql/X|9`9\

解决方法,动态关联

m_ [1v?3T0

?3Lx.lkD0^01.用同样的用户操作同样的步骤两次,然后用lr工具wdiff进行脚本对比,找出不同的地方!51Testing软件测试网Hv1V-GWp

!E+x)`1pnk02.用lr自动关联

F^Ug,e u;k051Testing软件测试网 wh&U@5Kg9m)U

3.手工关联,找到要替换的动态数据进行替换

9rN:Et-\q7Ka)G[g0

TAG:

子木清风 引用 删除 Spark.lee   /   2007-04-26 11:53:23
hoho  支持你下
 

评分:0

我来说两句

Open Toolbar