性能測試從零開始—LoadRunner入門(十)[1] 性能測試工具
8.2.2 對SMTP Vuser錄制生成的腳本進行分析
我們在Outlook上的一系列操作,包括登錄和發送郵件,被VU轉換成一系列函數,比如smtp_logon_ex和smtp_send_mail_ex等。下面我們對這些函數進行分析。
(1)在lr_start_transaction(“sendMail”)語句之前未有其他語句。而在sendMail之前,實際上在Outlook之前已經完成了登錄,并且在網絡上有了67個事件交互。顯然,SMTP Vuser對這些網絡交互事件并不感興趣,因為它們并沒有轉化成腳本。這只能說明一個事實:Outlook登錄操作的底層走的網絡協議并不是SMTP協議(實際上是IMAP協議)。
(2)smtp_logon_ex是SMTP Vuser提供的一個函數,實現的是SMTP的登錄認證。
(3)smtp_send_mail_ex是SMTP Vuser的一個最主要的功能,其作用是將一封郵件發送到指定的E-mail地址。
“From=test1@cesoo.com”是設置發件人地址。
“To=test1@cesoo.com”是設置收件人地址。
“Subject==?utf-8?B?6L+Z5piv5LiA5bCB5rWL6K+V6YKu5Lu25qCH6aKYdGVzdA==?=”是設置郵件的標題(subject)。
從上一節的SMTP協議規范我們知道,SMTP網關一直保持7位ASCII碼的“古老傳統”,因此任何多字節的數據在經過SMTP協議之前必須要經過編碼。在這里,“?utf-8?”說明Oultlook 2003用的是utf-8編碼方式,而“6L+Z5piv5LiA5bCB5rWL6K+ V6YKu5Lu25qCH6aKYdGVzdA”則是 “這是一封測試郵件的標題”的編碼后字節表現形式。
(4)“AttachRawFile=mailnote1_01.dat”和“AttachRawFile=mailnote1_ 02.dat”,則是郵件正文的傳送方式。檢查錄制后的腳本,發現左側導航欄中多了“mailnote1_01.dat”和“mailnote1_02.dat”兩個節點,如圖8-14所示。
點擊打開mailnote1_01.dat,我們看到如下數據:
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: base64
6L+Z5piv5LiA5bCB5rWL6K+V6YKu5Lu255qE5q2j5paHdGVzdA0K 軟件測試
圖8-14 SMTP虛擬用戶腳本中的數據區
這是對郵件正文的編碼,同樣的utf-8編碼,“6L+Z5piv5LiA5bCB5rWL6K+ V6YKu5Lu255qE5q2j5paHdGVzdA0K”則是“這是一封測試郵件的正文”的utf編碼后字節表現形式。