




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 腳本優(yōu)化腳本優(yōu)化-關(guān)聯(lián)關(guān)聯(lián)主要內(nèi)容 一、關(guān)聯(lián)原理一、關(guān)聯(lián)原理 二、自動關(guān)聯(lián)二、自動關(guān)聯(lián) 三、手動關(guān)聯(lián)三、手動關(guān)聯(lián) 四、使用四、使用WinDiff手動關(guān)聯(lián)手動關(guān)聯(lián) 五、一邊錄制一邊關(guān)聯(lián)五、一邊錄制一邊關(guān)聯(lián) 六、關(guān)聯(lián)函數(shù)六、關(guān)聯(lián)函數(shù)Web_reg_save_param詳解詳解2022-6-2522022-6-253一、關(guān)聯(lián)原理 為什么要使用關(guān)聯(lián)?為什么要使用關(guān)聯(lián)? 當(dāng)錄制腳本時(shí),VuGen會攔截client端(瀏覽器)與server端(網(wǎng)站服務(wù)器)之間的對話,并且通通記錄下來,產(chǎn)生腳本。 當(dāng)執(zhí)行腳本時(shí),可以把VuGen想象成是一個(gè)演員,它偽裝成瀏覽器,然后根據(jù)腳本,把當(dāng)初真的瀏覽器所說過的話,再
2、對網(wǎng)站向服器重新說一遍,企圖騙過服務(wù)器,讓服務(wù)器把網(wǎng)站內(nèi)容傳送給VuGen 記錄在腳本中要跟服務(wù)器所說的話,完全與當(dāng)初錄制時(shí)所說的一樣。這樣的作法在遇到有些服務(wù)器時(shí)還是會失效的。這時(shí)就需要關(guān)聯(lián)的做法騙過服務(wù)器一、關(guān)聯(lián)原理 什么是關(guān)聯(lián)?什么是關(guān)聯(lián)? 所謂的關(guān)聯(lián)(correlation)就是把腳本中某些寫死的(hard-coded)數(shù)據(jù),轉(zhuǎn)變成是擷取自服務(wù)器所送的、動態(tài)的、每次都不一樣的數(shù)據(jù)。 例如:我們?nèi)プ鲲w機(jī),登機(jī)之前要檢票(機(jī)票信息相對固定),通過可以登機(jī)。過了幾天拿著同一機(jī)票再去登機(jī),自然不能登機(jī)(機(jī)票信息已過期)。那怎樣才能順利登機(jī)?可以偽造機(jī)票信息這里我們通過收集別人返回的信息(機(jī)票)
3、偽造機(jī)票,從而滿足登機(jī)的驗(yàn)證策略。在腳本中也有類似的情況 2022-6-254一、關(guān)聯(lián)原理 舉例:登陸系統(tǒng)舉例:登陸系統(tǒng)-錄制錄制 常見系統(tǒng)中的登陸功能,在登陸后服務(wù)器會返回SessionID,登陸后的操作都需要提交該ID確認(rèn)身份。使用VuGen錄制時(shí),將會記錄服務(wù)器返回的SessionID并原封不動的在下個(gè)請求中發(fā)給服務(wù)器 2022-6-255一、關(guān)聯(lián)原理 舉例:登陸系統(tǒng)舉例:登陸系統(tǒng)-回放回放 待到回放時(shí),服務(wù)器會在接收到用戶名和密碼后返回一個(gè)新的SessionID,而腳本依然發(fā)送舊的SessionID給服務(wù)器,最終因SessionID錯誤,導(dǎo)致腳本回放失敗。 2022-6-256二、自動
4、關(guān)聯(lián) 自動關(guān)聯(lián)原理:自動關(guān)聯(lián)原理: 自動關(guān)聯(lián)是VuGen提供的自動掃描關(guān)聯(lián)處理策略,它的原理是對同一個(gè)腳本運(yùn)行和錄制時(shí)的服務(wù)器的返回進(jìn)行比較,來自動查找變化部分,并且提示是否生成關(guān)聯(lián)。2022-6-257二、自動關(guān)聯(lián) 自動關(guān)聯(lián)舉例: 舉例:用LoadRunner自帶的Web Tours網(wǎng)站,錄制一個(gè)登陸的過程然后再回放。編譯時(shí)沒有錯,運(yùn)行時(shí)會報(bào)錯,通過Test Result看到錯誤信息2022-6-258二、自動關(guān)聯(lián) 問題就出在腳本中 Web_submit_data()函數(shù)web_submit_data(login.pl, 。ITEMDATA, Name=userSession, Value=
5、105473.508302957ftcfcQDpfiDDDDDDDcffVpHzVf, ENDITEM, Name=username, Value=wfj, ENDITEM, Name=password, Value=111111, ENDITEM, Name=JSFormSubmit, Value=off, ENDITEM, Name=login.x, Value=64, ENDITEM, Name=login.y, Value=10, ENDITEM, LAST);2022-6-259二、自動關(guān)聯(lián) 單擊Vuser菜單中Scan Script for Correlations選項(xiàng)(使用自動關(guān)
6、聯(lián)前,腳本需運(yùn)行一次)運(yùn)行后會看到以下內(nèi)容,VuGen已識別出腳本中動態(tài)內(nèi)容2022-6-2510二、自動關(guān)聯(lián) 單擊Correlate按鈕后,便生成了一個(gè)關(guān)聯(lián)。關(guān)聯(lián)前后的內(nèi)容以及所屬的Action也被列了出來。2022-6-2511二、自動關(guān)聯(lián) 此時(shí)切換到Script模式看看腳本發(fā)生了什么變化web_submit_data(login.pl, 。ITEMDATA, Name=userSession, Value=WCSParam_Diff1, ENDITEM, Name=username, Value=wfj, ENDITEM, Name=password, Value=111111, END
7、ITEM, Name=JSFormSubmit, Value=off, ENDITEM, Name=login.x, Value=64, ENDITEM, Name=login.y, Value=10, ENDITEM, LAST);2022-6-2512 三、三、 手工關(guān)聯(lián)的手工關(guān)聯(lián)的步驟步驟l設(shè)置設(shè)置“Runtime Setting”中的日志選項(xiàng)中的日志選項(xiàng)“Data return by server”,回放腳本,分析腳本運(yùn)行失敗的原因是否是因?yàn)殛P(guān)回放腳本,分析腳本運(yùn)行失敗的原因是否是因?yàn)殛P(guān)聯(lián)造成的。聯(lián)造成的。l在腳本中分析確定需要關(guān)聯(lián)的動態(tài)內(nèi)容。在腳本中分析確定需要關(guān)聯(lián)的動態(tài)內(nèi)容。l 確
8、定要關(guān)聯(lián)的動態(tài)內(nèi)容的確定要關(guān)聯(lián)的動態(tài)內(nèi)容的“左邊界左邊界”、 “右邊界右邊界”和發(fā)生和發(fā)生次數(shù)次數(shù)l 在腳本適當(dāng)?shù)奈恢貌迦朐谀_本適當(dāng)?shù)奈恢貌迦搿皐eb_reg_save_param”關(guān)聯(lián)函關(guān)聯(lián)函數(shù)數(shù)l在腳本中動態(tài)內(nèi)容出現(xiàn)的地方,使用參數(shù)替換在腳本中動態(tài)內(nèi)容出現(xiàn)的地方,使用參數(shù)替換“寫死寫死”的動的動態(tài)內(nèi)容。態(tài)內(nèi)容。l重新運(yùn)行腳本,確保關(guān)聯(lián)后的腳本能夠運(yùn)行成功。重新運(yùn)行腳本,確保關(guān)聯(lián)后的腳本能夠運(yùn)行成功。 三、三、 手工關(guān)聯(lián)手工關(guān)聯(lián)該選項(xiàng)可以把從該選項(xiàng)可以把從web服務(wù)器返回的服務(wù)器返回的數(shù)據(jù)顯示在執(zhí)行日數(shù)據(jù)顯示在執(zhí)行日志里面,你可以在志里面,你可以在里面分析確定動態(tài)里面分析確定動態(tài)內(nèi)容的左右邊
9、界內(nèi)容的左右邊界第一步第一步:設(shè)置運(yùn)行時(shí)刻設(shè)置運(yùn)行時(shí)刻三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)問題問題: 為什么該步驟會出錯?為什么該步驟會出錯? 1. 確定哪一步出錯了確定哪一步出錯了2. 在執(zhí)行日志里面去查找分析在執(zhí)行日志里面去查找分析.回放的時(shí)候表明某一步發(fā)生錯誤回放的時(shí)候表明某一步發(fā)生錯誤三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)執(zhí)行日志會顯示找不到請求。執(zhí)行日志會顯示找不到請求。 瀏覽器中被紅色選中的行顯示刪除操作的的確認(rèn)信息沒有得到反饋。瀏覽器中被紅色選中的行顯示刪除操作的的確認(rèn)信息沒有得到反饋。執(zhí)行日志清楚地顯示出出錯原因執(zhí)行日志清楚地顯示出出錯原因三、手工關(guān)聯(lián)三、手工關(guān)聯(lián) 這些值表示鼠標(biāo)在屏幕中的位置這些值表示
10、鼠標(biāo)在屏幕中的位置 這些值在腳本中會被使用,但不需要關(guān)聯(lián)這些值在腳本中會被使用,但不需要關(guān)聯(lián) 延遲時(shí)間也在腳本中會被使用,但不需要關(guān)聯(lián)延遲時(shí)間也在腳本中會被使用,但不需要關(guān)聯(lián)Name=buyFlights.x, Value=52, ENDITEM, Name=buyFlights.x, Value=23, ENDITEM,Name=buyFlights.y, Value=15, ENDITEM, Name=buyFlights.y, Value=17, ENDITEM,lr_think_time( 2 );lr_think_time( 1 );lr_think_time( 7 );lr_thi
11、nk_time( 11 );Name=flight_210, Value=on, ENDITEM,Name=flight_206, Value=on, ENDITEM,Name=removeSelected.x, Value=101, ENDITEM, Name=removeSelected.x, Value=80, ENDITEM,Name=removeSelected.y, Value=13, ENDITEM,Name=removeSelected.y, Value=10, ENDITEM,lr_think_time( 1 );12345航班號是動態(tài)的,需要關(guān)聯(lián)航班號是動態(tài)的,需要關(guān)聯(lián)三、
12、手工關(guān)聯(lián)三、手工關(guān)聯(lián)第一個(gè)特征:該動態(tài)內(nèi)容一定是首先是從服務(wù)器端產(chǎn)生并返回到客戶端的。第一個(gè)特征:該動態(tài)內(nèi)容一定是首先是從服務(wù)器端產(chǎn)生并返回到客戶端的。第二個(gè)特征:該客戶端在得到該動態(tài)內(nèi)容后一定把它重新發(fā)送到服務(wù)器端。第二個(gè)特征:該客戶端在得到該動態(tài)內(nèi)容后一定把它重新發(fā)送到服務(wù)器端。動態(tài)內(nèi)容動態(tài)內(nèi)容需要關(guān)聯(lián)的動態(tài)內(nèi)容的兩個(gè)特征:需要關(guān)聯(lián)的動態(tài)內(nèi)容的兩個(gè)特征:三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)LB: type=checkbox name=RB: 左邊界左邊界Left Boundary右邊界右邊界Right Boundary6第三步:第三步:確定需要關(guān)聯(lián)的動態(tài)內(nèi)容的左右邊界 三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)(par
13、am_name, *, LAST);用戶定義的參數(shù)名稱表明后面沒有參數(shù)可選項(xiàng),表明動態(tài)內(nèi)容出現(xiàn)的次數(shù)動態(tài)內(nèi)容的左右邊界LB=, RB=, ORD=, *可以參閱LoadRunner的幫助文件,里面有詳盡的描述web_reg_save_param 具有如下參數(shù)具有如下參數(shù): 三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)web_reg_save_param (param_name,LB=,RB=,ORD=,LAST);del_itinerarytype = “checkbox” name=“7第四步:增加第四步:增加web_reg_save_param函數(shù)函數(shù) 三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)第五步:用參數(shù)替換腳本中的動態(tài)內(nèi)
14、容第五步:用參數(shù)替換腳本中的動態(tài)內(nèi)容三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)第六步:回放腳本,驗(yàn)證關(guān)聯(lián)正確第六步:回放腳本,驗(yàn)證關(guān)聯(lián)正確四、使用WinDiff手動關(guān)聯(lián) 手動關(guān)聯(lián)的主要步驟: 第一步:錄制測試腳本,錄制二遍 第二步:使用WinDiff工具找出兩次腳本的不同,判斷是否需要進(jìn)行關(guān)聯(lián) 第三步:確定插入關(guān)聯(lián)的位置 第四步:在View Script中使用web_reg_save_param函數(shù)手動建立關(guān)聯(lián) 第五步:將腳本中有用到關(guān)聯(lián)的數(shù)據(jù),用參數(shù)代替 第六步:驗(yàn)證關(guān)聯(lián)的正確性2022-6-2524四、使用WinDiff手動關(guān)聯(lián) 手動關(guān)聯(lián)詳細(xì)介紹: 第一步:這一步就不用多說了,相同的操作,錄制兩份,分別保存
15、 第二步:使用WinDiff工具找出兩次腳本的不同,判斷是否需要進(jìn)行關(guān)聯(lián) 1、在第二份腳本中,點(diǎn)選VuGen的【Tools】【 ComparewithVuser】,并選擇第一份腳本 2、接著WinDiff會開啟,同時(shí)顯示二份腳本,并顯示有差異的地方。 3、查看二份腳本中差異的部份,每一個(gè)差異都可能是需要做關(guān)聯(lián)的地方。選取差異的腳本,然后復(fù)制。2022-6-2525四、使用WinDiff手動關(guān)聯(lián) 手動關(guān)聯(lián)詳細(xì)介紹: 4、接著要在Recording Log或是Generation Log中找這個(gè)值。按下Ctrl+F,開啟【Find】窗口,貼上剛剛復(fù)制的腳本,找出在Recording Log第一次出
16、現(xiàn)的位置。 5、現(xiàn)在已經(jīng)找到錄制二次都不一樣,而且是由服務(wù)器所產(chǎn)生的動態(tài)數(shù)據(jù)了,而此數(shù)據(jù)極有可能需要做關(guān)聯(lián) 第三步:確定插入關(guān)聯(lián)的位置。重新執(zhí)行一遍腳本,而且這次會開啟所有的Log。 1、在VuGen中點(diǎn)選【Vuser】【Run-Time Settings】。 2、點(diǎn)選【General】【Log】。 2022-6-2526四、使用WinDiff手動關(guān)聯(lián) 手動關(guān)聯(lián)詳細(xì)介紹: 3、勾選【Enable logging】、 【Always sends messages】、【Extended log】,以及【Extended log】下的所有選項(xiàng)。 4、按下【OK】就可以執(zhí)行腳本了。 5、執(zhí)行完腳本之后
17、,在Replay Log 中搜尋剛剛復(fù)制的字符串。找到字符串后,在字符串前面會有vuser_init.c(18): ,這個(gè)18就是到時(shí)候要插入web_reg_save_param函數(shù)的位置,也就是要插入到腳本的第18行。也可以在 Replay Log右鍵選擇jump to source line跳到腳本中的位置。 2022-6-2527四、使用WinDiff手動關(guān)聯(lián) 手動關(guān)聯(lián)詳細(xì)介紹: 第四步:在View Script中使用web_reg_save_param函數(shù)手動建立關(guān)聯(lián) 1、在找到的代碼行的上方點(diǎn)擊鼠標(biāo)右鍵,選擇【insert】【New step】 2、在【Add Step】 窗口的【F
18、ind Function】中輸入Web_reg_save_param 函數(shù)并選中后點(diǎn)擊【OK】 3、Parameter Name處輸入?yún)?shù)名稱,建議有意義的名字。 4、在【Left Boundary】中輸入左邊界字符串 5、在【Right Boundary】中輸入右邊界字符串 6、點(diǎn)擊【OK】按鈕2022-6-2528四、使用WinDiff手動關(guān)聯(lián) 手動關(guān)聯(lián)詳細(xì)介紹: 第五步:將腳本中有用到關(guān)聯(lián)的數(shù)據(jù),用參數(shù)代替 1、當(dāng)使用web_reg_save_param建立參數(shù)后,接下來就是用“之前定義的參數(shù)名”參數(shù)去取代腳本中寫死的(hard-coded)資料。 第六步:驗(yàn)證關(guān)聯(lián)的正確性 1、執(zhí)行腳本
19、,是否能成功運(yùn)行,假如還是有問題,就要檢查看看是否還需要再做另一個(gè)關(guān)聯(lián)。 2022-6-2529 五、一邊錄制一邊關(guān)聯(lián) 一邊錄制一邊關(guān)聯(lián): 接著來看最后一種關(guān)聯(lián)方式,上面的關(guān)聯(lián)都需要進(jìn)行一定的操作,那么為什么錄制某些系統(tǒng),會得到一些自動的關(guān)聯(lián)函數(shù)呢?這就是系統(tǒng)默認(rèn)提供的自動關(guān)聯(lián)設(shè)置,打開錄制選項(xiàng)?!綯ools】【recording options】【Correlation】2022-6-2530五、一邊錄制一邊關(guān)聯(lián) 一邊錄制一邊關(guān)聯(lián): 2022-6-2531 五、一邊錄制一邊關(guān)聯(lián) 一邊錄制一邊關(guān)聯(lián): 點(diǎn)擊 New Application,創(chuàng)建一個(gè)新的應(yīng)用 在之前的應(yīng)用上點(diǎn)擊New Rule 新
20、建一個(gè)規(guī)則 為該規(guī)則填寫左右邊界后點(diǎn)擊保存 現(xiàn)在新建一個(gè)腳本,重新錄制一次Web Tours登錄的操作,錄制結(jié)束查看一下腳本,可以發(fā)現(xiàn)系統(tǒng)已經(jīng)自動按照規(guī)則生成了關(guān)聯(lián)函數(shù),運(yùn)行腳本直接通過。2022-6-2532 六、Web_reg_save_param詳解 關(guān)聯(lián)函數(shù)關(guān)聯(lián)函數(shù)Web_reg_save_param詳解詳解 打開Add Step添加步驟選擇Web_reg_save_para 打開關(guān)聯(lián)設(shè)置窗口,如下所示:打開關(guān)聯(lián)設(shè)置窗口,如下所示:2022-6-2533 六、Web_reg_save_param詳解 關(guān)聯(lián)函數(shù)關(guān)聯(lián)函數(shù)Web_reg_save_param詳解詳解 Parameter Na
21、me :此處設(shè)置存放參數(shù)的名稱,關(guān)聯(lián)出來的內(nèi)容將會存放在該參數(shù)中,這里受到Instance選項(xiàng)的影響。例如: Parameter Name 為Temp,當(dāng)對應(yīng)的Instance選項(xiàng)是 任意一個(gè)數(shù)字的時(shí)候,只會關(guān)聯(lián)一個(gè)匹配的記錄,關(guān)聯(lián)值存放在Temp中。當(dāng)Instance是ALL的時(shí)候,關(guān)聯(lián)成功后的值將會依次存放在“Temp_數(shù)字”這樣的參數(shù)數(shù)組中,并且會添加一個(gè)temp_ count的參數(shù)存放關(guān)聯(lián)出來的記錄條數(shù)。 Left Boundary:此處設(shè)置左邊界,這里用來填寫關(guān)聯(lián)對于數(shù)據(jù)處理的左匹配內(nèi)容規(guī)則。此處是一個(gè)字符串。注意:轉(zhuǎn)義字符為2022-6-2534 六、Web_reg_save_param詳解 關(guān)聯(lián)函數(shù)關(guān)聯(lián)函數(shù)Web_reg_save_param詳解詳解 Match case :默認(rèn)情況下邊界是Match case的,即檢查大小寫的??梢匀∠旅娴倪x項(xiàng)來忽略大小寫檢查。 Binary data:如果需要關(guān)聯(lián)的內(nèi)容是非ASC 字符的,需要使用該選項(xiàng)。 Use # for any digit:有些時(shí)候需要關(guān)聯(lián)的邊界中有些變動的數(shù)字,并且由于這個(gè)數(shù)字導(dǎo)致關(guān)聯(lián)非常難以設(shè)置邊界,可以使用該選項(xiàng) Use as a wildcard for xxx alphanumerical characters :這里使用可以代替任何常用的字符。僅代表一個(gè)字符
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)藥代加工合同范例
- 出售新華城商鋪合同標(biāo)準(zhǔn)文本
- 臨時(shí)用工合同標(biāo)準(zhǔn)文本 文檔
- 2002專業(yè)設(shè)計(jì)合同標(biāo)準(zhǔn)文本
- 2025年國家電網(wǎng)有限公司直流技術(shù)中心招聘7人(第一批)筆試參考題庫附帶答案詳解
- 2025國家電投集團(tuán)中國電力招聘24人筆試參考題庫附帶答案詳解
- 2025四川科瑞軟件有限責(zé)任公司北京分公司招聘銷售代表1人筆試參考題庫附帶答案詳解
- 2024陜西渭河煤化工集團(tuán)有限責(zé)任公司專職消防員招聘10人筆試參考題庫附帶答案詳解
- 2024莆田市城廂糧食購銷有限公司第五批擬聘用筆試參考題庫附帶答案詳解
- 2024廣西貴港市城市投資發(fā)展集團(tuán)有限公司招聘2人筆試參考題庫附帶答案詳解
- 監(jiān)測系統(tǒng)分項(xiàng)能耗數(shù)據(jù)傳輸技術(shù)導(dǎo)則
- 中國教育簡史全書ppt完整版課件最全電子教案正本書教學(xué)教程
- 中學(xué)生心理健康診斷測驗(yàn)-MHT量表
- 年輕干部教育管理監(jiān)督調(diào)研情況報(bào)告
- DGT-801數(shù)字式發(fā)電機(jī)保護(hù)柜調(diào)試解析課件
- 施工安全風(fēng)險(xiǎn)評估報(bào)告完整版現(xiàn)澆箱梁
- 三級安全管理標(biāo)準(zhǔn)化評定標(biāo)準(zhǔn)
- 血?dú)夥治鰣?bào)告解讀PPT課件(PPT 33頁)
- 簡譜視唱15942
- 民宿設(shè)計(jì)要點(diǎn)--ppt課件
- 我們是共產(chǎn)主義接班人歌詞--拼音版本
評論
0/150
提交評論