http://www.51testing.com/html/43/59943-15181.html
2007
最近在論壇上的一些朋友問腳本方面的問題,比如用lr的winsock協(xié)議錄制的腳本遇回放過程中遇到如下錯誤
Action.c(20): Error : callConnect - Can't assign requested address. Errorcode :10049.
Action.c(20): Error : Timeout expired while trying to connect. Errorcode :9017.
這里的10049是udp協(xié)議錯誤,是腳本沒有和服務器同步,這說明什么問題呢。下邊我用一個協(xié)議進行分析,來看看到底是什么問題,
smtp協(xié)議分析:
1.SMTP工作方式有兩種情況:一是電子郵件從客戶機傳輸?shù)椒掌?;二是從某一個服務器傳輸?shù)搅硪粋€服務器.
2.SMTP是個請求/響應協(xié)議,命令和響應都是基于ASCII文本,并以CR和LF符結(jié)束。響應包括一個表示返回狀態(tài)的三位數(shù)字代碼.
3.SMTP在TCP協(xié)議25號端口監(jiān)聽連接請求
4.連接和發(fā)送過程:
a.建立TCP連接
b.客戶端發(fā)送HELO命令以標識發(fā)件人自己的身份,然后客戶端發(fā)送MAIL命令服務器端正希望以OK作為響應,表明準備接收
c.客戶端發(fā)送RCPT命令,以標識該電子郵件的計劃接收人,可以有多個RCPT行服務器端則表示是否愿意為收件人接受郵件
d.協(xié)商結(jié)束,發(fā)送郵件,用命令DATA發(fā)送
e.以.表示結(jié)束輸入內(nèi)容一起發(fā)送出去
f.結(jié)束此次發(fā)送,用QUIT命令退出。
5.另外兩個命令:
VRFY---用于驗證給定的用戶郵箱是否存在,以及接收關(guān)于該用戶的詳細信息。
EXPN---用于擴充郵件列表。
6.郵件路由過程:
SMTP服務器基于‘域名服務DNS中計劃收件人的域名來路由電子郵件。SMTP服務器基于DNS中的MX記錄來路由電子郵件,MX記錄注冊了域名和相關(guān)的SMTP中繼主機,屬于該域的電子郵件都應向該主機發(fā)送。
若SMTP服務器mail.withub.org收到一封信要發(fā)到pcl@withub.org
a.Sendmail請求DNS給出主機withub.org的CNAME記錄,如有,假若CNAME到mail.withub.org,則再次請求mail.withub.org的CNAME記錄,直到?jīng)]有為止.
b.假定被CNAME到mail.withub.org,然后sendmail請求@withub.org域的DNS給出mail.withub.org的MX記錄,
shmail MX 5 mail.withub.org
10 shmail2.withub.org
c. Sendmail最后請求DNS給出shmail.withub.org的A記錄,即IP地址,若返回值為1.2.3.4
d. Sendmail與1.2.3.4連接,傳送這封給pcl@withub.org的信到1.2.3.4這臺服務器的SMTP后臺程序
這里是協(xié)議的一個解析過程,我們要看看,利用lr錄制腳本后然后回放,錄制的過程中mail.withub.org返回客戶端服務器上有多少給用戶的郵件,lr把這個數(shù)字保存下來,最為下次回放的時候?qū)Ρ?。當你第二次回放的時候,lr模擬客戶端發(fā)送請求,這時候服務器上沒有了新郵件,返回可能是0,lr把這個返回值和當時錄制的腳本保存的返回值進行對比(那個時候可能服務器上有3個新的郵件,服務器返回的值是3),明顯這個值是動態(tài)變化的。你的腳本如果沒有經(jīng)過修改,肯定是回返不成功的。
那么上邊提到的錯誤信息,同樣的道理,我們要分析一下到底是什么問題,從協(xié)議上分析,從系統(tǒng)環(huán)境上分析。
解決方法,動態(tài)關(guān)聯(lián)
1.用同樣的用戶操作同樣的步驟兩次,然后用lr工具wdiff進行腳本對比,找出不同的地方!
2.用lr自動關(guān)聯(lián)
3.手工關(guān)聯(lián),找到要替換的動態(tài)數(shù)據(jù)進行替換
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。