所有文章均来自网络(除测试总结部分),如果涉及到版权问题请与我联系,我会及时删除~~~~

性能测试之协议分析(转贴)

上一篇 / 下一篇  2007-01-18 09:01:42 / 个人分类:性能测试

 

最近在论坛上的一些朋友问脚本方面的问题,比如用lr的winsock协议录制的脚本遇回放过程中遇到如下错误51Testing软件测试网f5F)C5YPc

Action.c(20): Error : callConnect - Can't assign requested address. Error code : 10049.51Testing软件测试网WK0jNdf5_ Q

Action.c(20): Error : Timeout expired while trying to connect. Error code : 9017.

;Q#w2|0z-]2@1l A0

这里的10049是udp协议错误,是脚本没有和服务器同步,这说明什么问题呢。下边我用一个协议进行分析,来看看到底是什么问题,51Testing软件测试网Wdl#c Za~

smtp协议分析:

YAF_X n5|0

1.SMTP工作方式有两种情况:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器.51Testing软件测试网VB9Dd~%|za _

2.SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束。响应包括一个表示返回状态的三位数字代码.

R`6H9Pf4F6m0

3.SMTP在TCP协议25号端口监听连接请求

Q ?*m_W/Q8?P0

4.连接和发送过程:51Testing软件测试网/TB|fV`

a.建立TCP连接51Testing软件测试网%~~\)z|H&gd

b.客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令

8bb/T7r v7R0

服务器端正希望以OK作为响应,表明准备接收

%P|5K/x jKgX0

c.客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行51Testing软件测试网8dd Op&b,E%];zK

服务器端则表示是否愿意为收件人接受邮件51Testing软件测试网1x {,c-ZD#}

d.协商结束,发送邮件,用命令DATA发送51Testing软件测试网Vh `9i:u

e. 以.表示结束输入内容一起发送出去

zN!c!SJLu8FW0

f.结束此次发送,用QUIT命令退出。51Testing软件测试网_*_&V!m&Q"F;@H

5.另外两个命令:

I}-S*{@/~&rv0

VRFY---用于验证给定的用户邮箱是否存在,以及接收关于该用户的详细信息。

I1m0d+?%UN0

EXPN---用于扩充邮件列表。

(QW a+IJ'W&o0

6.邮件路由过程:

YK|4Hp qZ0

SMTP服务器基于‘域名服务DNS中计划收件人的域名来路由电子邮件。SMTP服务器基于DNS中的MX记录来路由电子邮件,MX记录注册了域名和相关的SMTP中继主机,属于该域的电子邮件都应向该主机发送。51Testing软件测试网0A}:z-E+PjJ(o

若SMTP服务器mail.withub.org收到一封信要发到pcl@withub.org51Testing软件测试网aHv2h[u!C

a.Sendmail请求DNS给出主机withub.org的CNAME记录,如有,假若CNAME到mail.withub.org,则再次请求mail.withub.org的CNAME记录,直到没有为止.51Testing软件测试网/Z\)DvyO @

b.假定被CNAME到mail.withub.org,然后sendmail请求@withub.org域的DNS给出mail.withub.org的MX记录,51Testing软件测试网OR;h9}u4l6Qq;wFM

shmail MX 5 mail.withub.org

4^t/d7m&R([9?0

10 shmail2.withub.org51Testing软件测试网&N2A|jm G'Fq

c. Sendmail最后请求DNS给出shmail.withub.org的A记录,即IP地址,若返回值为1.2.3.451Testing软件测试网4mx#BFpOI3r

d. Sendmail与1.2.3.4连接,传送这封给pcl@withub.org的信到1.2.3.4这台服务器的SMTP后台程序

3i;G-{o#[ |0

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

那么上边提到的错误信息,同样的道理,我们要分析一下到底是什么问题,从协议上分析,从系统环境上分析。51Testing软件测试网5CH7\;e r2e'P{E2y*|

解决方法,动态关联51Testing软件测试网#GvD]eS|-j

1.用同样的用户操作同样的步骤两次,然后用lr工具wdiff进行脚本对比,找出不同的地方!51Testing软件测试网#jIow,E9K&GXC

2.用lr自动关联51Testing软件测试网2`t%Jwc[)y!?"pr

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

g,n6U"a.~4ywTIo8f!V0

 51Testing软件测试网Rro D;f;n}

源文档 <http://www.51testing.com/html/8/1094.html>

g r TuC`d/]0

TAG: 性能测试

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2021-01-14  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 29905
  • 日志数: 61
  • 建立时间: 2007-01-15
  • 更新时间: 2007-07-23

RSS订阅

Open Toolbar