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