所謂的關聯就是把腳本中某些寫死的數據轉變成動態的數據。舉一個常見的例子,前面提到有些比較智能的服務器在每個瀏覽器第一次跟它要數據時,都會在數據中夾帶一個唯一的標識碼,然后就會利用這個標識碼來辨識發出請求申請的是不是同一個瀏覽器。一般稱這個標識碼為Session ID。對于每個新的交易,服務器都會產生新的Session ID給瀏覽器。這也就是為什么執行腳本會失敗的原因。因為VuGen還是用舊的Session ID向服務器要數據,服務器會發現這個Session ID已經失效或者它根本不能識別這個Session ID,當然就不會傳送正確的網頁數據給VuGen了。圖1所示說明了這樣的情形。
當錄制腳本時,瀏覽器送出網頁A的請求,服務器將網頁A的內容傳送給瀏覽器,并且夾帶了一個ID=123的數據,當瀏覽器再送出網頁B的請求時,這時就要用到ID=123的數據,服務器才會認為這是合法的請求,并且把網頁B的內容送回給瀏覽器。
在執行腳本時會發生什么狀況呢?瀏覽器再送出網頁B的請求時,用的還是當初錄制的ID=123的數據,而不是用服務器新給的ID=456,整個腳本的執行就會失敗。
圖1 瀏覽器與網站服務器的正常和異常會話過程
針對這種非常智能服務器,必須想辦法找出這個Session ID到底是什么、位于何處,然后把它提取出來,放到某個參數中,并且替換腳本中用到Session ID的部分,這樣就可以成功騙過服務器,正確地完成整個會話了。
上面介紹了什么是關聯,并且給大家講解了一個實例,那么結合LoadRunner的應用,我們如何知道何時應該應用關聯呢?通常情況下,如果腳本需要關聯,在還沒做關聯之前是不會執行通過的,但在LoadRunner中并沒有任何特定的錯誤消息和關聯相關。
那么,我們為什么要使用關聯,使用關聯又可以給我們帶來哪些方便呢?
首先,它可以生成動態的數據,前面已經講過一個會話的例子,我們知道應用固定的數值是騙不過智能的服務器的,如果將數據變成動態數據這個問題就解決了。其次,我們可以將這些冗長的數據給參數化,通過應用關聯技術,可以有效減少代碼的大小,這樣不僅代碼量會減少,腳本層次看起來也會更加清晰、明了。
聲明:本文由網站用戶竹子發表,超夢電商平臺僅提供信息存儲服務,版權歸原作者所有。若發現本站文章存在版權問題,如發現文章、圖片等侵權行為,請聯系我們刪除。