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