版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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-822022-6-83一、關(guān)聯(lián)原理 為什么要使用關(guān)聯(lián)?為什么要使用關(guān)聯(lián)? 當錄制腳本時,VuGen會攔截client端(瀏覽器)與server端(網(wǎng)站服務(wù)器)之間的對話,并且通通記錄下來,產(chǎn)生腳本。 當執(zhí)行腳本時,可以把VuGen想象成是一個演員,它偽裝成瀏覽器,然后根據(jù)腳本,把當初真的瀏覽器所說過的話,再對網(wǎng)
2、站向服器重新說一遍,企圖騙過服務(wù)器,讓服務(wù)器把網(wǎng)站內(nèi)容傳送給VuGen 記錄在腳本中要跟服務(wù)器所說的話,完全與當初錄制時所說的一樣。這樣的作法在遇到有些服務(wù)器時還是會失效的。這時就需要關(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機,登機之前要檢票(機票信息相對固定),通過可以登機。過了幾天拿著同一機票再去登機,自然不能登機(機票信息已過期)。那怎樣才能順利登機?可以偽造機票信息這里我們通過收集別人返回的信息(機票)偽造
3、機票,從而滿足登機的驗證策略。在腳本中也有類似的情況 2022-6-84一、關(guān)聯(lián)原理 舉例:登陸系統(tǒng)舉例:登陸系統(tǒng)-錄制錄制 常見系統(tǒng)中的登陸功能,在登陸后服務(wù)器會返回SessionID,登陸后的操作都需要提交該ID確認身份。使用VuGen錄制時,將會記錄服務(wù)器返回的SessionID并原封不動的在下個請求中發(fā)給服務(wù)器 2022-6-85一、關(guān)聯(lián)原理 舉例:登陸系統(tǒng)舉例:登陸系統(tǒng)-回放回放 待到回放時,服務(wù)器會在接收到用戶名和密碼后返回一個新的SessionID,而腳本依然發(fā)送舊的SessionID給服務(wù)器,最終因SessionID錯誤,導致腳本回放失敗。 2022-6-86二、自動關(guān)聯(lián) 自動
4、關(guān)聯(lián)原理:自動關(guān)聯(lián)原理: 自動關(guān)聯(lián)是VuGen提供的自動掃描關(guān)聯(lián)處理策略,它的原理是對同一個腳本運行和錄制時的服務(wù)器的返回進行比較,來自動查找變化部分,并且提示是否生成關(guān)聯(lián)。2022-6-87二、自動關(guān)聯(lián) 自動關(guān)聯(lián)舉例: 舉例:用LoadRunner自帶的Web Tours網(wǎng)站,錄制一個登陸的過程然后再回放。編譯時沒有錯,運行時會報錯,通過Test Result看到錯誤信息2022-6-88二、自動關(guān)聯(lián) 問題就出在腳本中 Web_submit_data()函數(shù)web_submit_data(login.pl, 。ITEMDATA, Name=userSession, Value=105473.
5、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-89二、自動關(guān)聯(lián) 單擊Vuser菜單中Scan Script for Correlations選項(使用自動關(guān)聯(lián)前,腳本需運行
6、一次)運行后會看到以下內(nèi)容,VuGen已識別出腳本中動態(tài)內(nèi)容2022-6-810二、自動關(guān)聯(lián) 單擊Correlate按鈕后,便生成了一個關(guān)聯(lián)。關(guān)聯(lián)前后的內(nèi)容以及所屬的Action也被列了出來。2022-6-811二、自動關(guān)聯(lián) 此時切換到Script模式看看腳本發(fā)生了什么變化web_submit_data(login.pl, 。ITEMDATA, Name=userSession, Value=WCSParam_Diff1, ENDITEM, Name=username, Value=wfj, ENDITEM, Name=password, Value=111111, ENDITEM, Name
7、=JSFormSubmit, Value=off, ENDITEM, Name=login.x, Value=64, ENDITEM, Name=login.y, Value=10, ENDITEM, LAST);2022-6-812 三、三、 手工關(guān)聯(lián)的手工關(guān)聯(lián)的步驟步驟l設(shè)置設(shè)置“Runtime Setting”中的日志選項中的日志選項“Data return by server”,回放腳本,分析腳本運行失敗的原因是否是因為關(guān)回放腳本,分析腳本運行失敗的原因是否是因為關(guān)聯(lián)造成的。聯(lián)造成的。l在腳本中分析確定需要關(guān)聯(lián)的動態(tài)內(nèi)容。在腳本中分析確定需要關(guān)聯(lián)的動態(tài)內(nèi)容。l 確定要關(guān)聯(lián)的動態(tài)內(nèi)容的確
8、定要關(guān)聯(lián)的動態(tài)內(nèi)容的“左邊界左邊界”、 “右邊界右邊界”和發(fā)生和發(fā)生次數(shù)次數(shù)l 在腳本適當?shù)奈恢貌迦朐谀_本適當?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重新運行腳本,確保關(guān)聯(lián)后的腳本能夠運行成功。重新運行腳本,確保關(guān)聯(lián)后的腳本能夠運行成功。 三、三、 手工關(guān)聯(lián)手工關(guān)聯(lián)該選項可以把從該選項可以把從web服務(wù)器返回的服務(wù)器返回的數(shù)據(jù)顯示在執(zhí)行日數(shù)據(jù)顯示在執(zhí)行日志里面,你可以在志里面,你可以在里面分析確定動態(tài)里面分析確定動態(tài)內(nèi)容的左右邊界內(nèi)容的左右邊界第一步
9、第一步:設(shè)置運行時刻設(shè)置運行時刻三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)問題問題: 為什么該步驟會出錯?為什么該步驟會出錯? 1. 確定哪一步出錯了確定哪一步出錯了2. 在執(zhí)行日志里面去查找分析在執(zhí)行日志里面去查找分析.回放的時候表明某一步發(fā)生錯誤回放的時候表明某一步發(fā)生錯誤三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)執(zhí)行日志會顯示找不到請求。執(zhí)行日志會顯示找不到請求。 瀏覽器中被紅色選中的行顯示刪除操作的的確認信息沒有得到反饋。瀏覽器中被紅色選中的行顯示刪除操作的的確認信息沒有得到反饋。執(zhí)行日志清楚地顯示出出錯原因執(zhí)行日志清楚地顯示出出錯原因三、手工關(guān)聯(lián)三、手工關(guān)聯(lián) 這些值表示鼠標在屏幕中的位置這些值表示鼠標在屏幕中的位置 這
10、些值在腳本中會被使用,但不需要關(guān)聯(lián)這些值在腳本中會被使用,但不需要關(guān)聯(lián) 延遲時間也在腳本中會被使用,但不需要關(guān)聯(lián)延遲時間也在腳本中會被使用,但不需要關(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_think_time( 11
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)三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)第
12、一個特征:該動態(tài)內(nèi)容一定是首先是從服務(wù)器端產(chǎn)生并返回到客戶端的。第一個特征:該動態(tài)內(nèi)容一定是首先是從服務(wù)器端產(chǎn)生并返回到客戶端的。第二個特征:該客戶端在得到該動態(tài)內(nèi)容后一定把它重新發(fā)送到服務(wù)器端。第二個特征:該客戶端在得到該動態(tài)內(nèi)容后一定把它重新發(fā)送到服務(wù)器端。動態(tài)內(nèi)容動態(tài)內(nèi)容需要關(guān)聯(lián)的動態(tài)內(nèi)容的兩個特征:需要關(guān)聯(lián)的動態(tài)內(nèi)容的兩個特征:三、手工關(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)(param_name, *,
13、 LAST);用戶定義的參數(shù)名稱表明后面沒有參數(shù)可選項,表明動態(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)容第五步:用參數(shù)替換腳
14、本中的動態(tài)內(nèi)容三、手工關(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)的主要步驟: 第一步:錄制測試腳本,錄制二遍 第二步:使用WinDiff工具找出兩次腳本的不同,判斷是否需要進行關(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ù)代替 第六步:驗證關(guān)聯(lián)的正確性2022-6-824四、使用WinDiff手動關(guān)聯(lián) 手動關(guān)聯(lián)詳細介紹: 第一步:這一步就不用多說了,相同的操作,錄制兩份,分別保存 第二步:使用WinDi
15、ff工具找出兩次腳本的不同,判斷是否需要進行關(guān)聯(lián) 1、在第二份腳本中,點選VuGen的【Tools】【 ComparewithVuser】,并選擇第一份腳本 2、接著WinDiff會開啟,同時顯示二份腳本,并顯示有差異的地方。 3、查看二份腳本中差異的部份,每一個差異都可能是需要做關(guān)聯(lián)的地方。選取差異的腳本,然后復(fù)制。2022-6-825四、使用WinDiff手動關(guān)聯(lián) 手動關(guān)聯(lián)詳細介紹: 4、接著要在Recording Log或是Generation Log中找這個值。按下Ctrl+F,開啟【Find】窗口,貼上剛剛復(fù)制的腳本,找出在Recording Log第一次出現(xiàn)的位置。 5、現(xiàn)在已經(jīng)找
16、到錄制二次都不一樣,而且是由服務(wù)器所產(chǎn)生的動態(tài)數(shù)據(jù)了,而此數(shù)據(jù)極有可能需要做關(guān)聯(lián) 第三步:確定插入關(guān)聯(lián)的位置。重新執(zhí)行一遍腳本,而且這次會開啟所有的Log。 1、在VuGen中點選【Vuser】【Run-Time Settings】。 2、點選【General】【Log】。 2022-6-826四、使用WinDiff手動關(guān)聯(lián) 手動關(guān)聯(lián)詳細介紹: 3、勾選【Enable logging】、 【Always sends messages】、【Extended log】,以及【Extended log】下的所有選項。 4、按下【OK】就可以執(zhí)行腳本了。 5、執(zhí)行完腳本之后,在Replay Log 中
17、搜尋剛剛復(fù)制的字符串。找到字符串后,在字符串前面會有vuser_init.c(18): ,這個18就是到時候要插入web_reg_save_param函數(shù)的位置,也就是要插入到腳本的第18行。也可以在 Replay Log右鍵選擇jump to source line跳到腳本中的位置。 2022-6-827四、使用WinDiff手動關(guān)聯(lián) 手動關(guān)聯(lián)詳細介紹: 第四步:在View Script中使用web_reg_save_param函數(shù)手動建立關(guān)聯(lián) 1、在找到的代碼行的上方點擊鼠標右鍵,選擇【insert】【New step】 2、在【Add Step】 窗口的【Find Function】中輸
18、入Web_reg_save_param 函數(shù)并選中后點擊【OK】 3、Parameter Name處輸入?yún)?shù)名稱,建議有意義的名字。 4、在【Left Boundary】中輸入左邊界字符串 5、在【Right Boundary】中輸入右邊界字符串 6、點擊【OK】按鈕2022-6-828四、使用WinDiff手動關(guān)聯(lián) 手動關(guān)聯(lián)詳細介紹: 第五步:將腳本中有用到關(guān)聯(lián)的數(shù)據(jù),用參數(shù)代替 1、當使用web_reg_save_param建立參數(shù)后,接下來就是用“之前定義的參數(shù)名”參數(shù)去取代腳本中寫死的(hard-coded)資料。 第六步:驗證關(guān)聯(lián)的正確性 1、執(zhí)行腳本,是否能成功運行,假如還是有問題
19、,就要檢查看看是否還需要再做另一個關(guān)聯(lián)。 2022-6-829 五、一邊錄制一邊關(guān)聯(lián) 一邊錄制一邊關(guān)聯(lián): 接著來看最后一種關(guān)聯(lián)方式,上面的關(guān)聯(lián)都需要進行一定的操作,那么為什么錄制某些系統(tǒng),會得到一些自動的關(guān)聯(lián)函數(shù)呢?這就是系統(tǒng)默認提供的自動關(guān)聯(lián)設(shè)置,打開錄制選項?!綯ools】【recording options】【Correlation】2022-6-830五、一邊錄制一邊關(guān)聯(lián) 一邊錄制一邊關(guān)聯(lián): 2022-6-831 五、一邊錄制一邊關(guān)聯(lián) 一邊錄制一邊關(guān)聯(lián): 點擊 New Application,創(chuàng)建一個新的應(yīng)用 在之前的應(yīng)用上點擊New Rule 新建一個規(guī)則 為該規(guī)則填寫左右邊界后點擊
20、保存 現(xiàn)在新建一個腳本,重新錄制一次Web Tours登錄的操作,錄制結(jié)束查看一下腳本,可以發(fā)現(xiàn)系統(tǒng)已經(jīng)自動按照規(guī)則生成了關(guān)聯(lián)函數(shù),運行腳本直接通過。2022-6-832 六、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-833 六、Web_reg_save_param詳解 關(guān)聯(lián)函數(shù)關(guān)聯(lián)函數(shù)Web_reg_save_param詳解詳解 Parameter Name :此處設(shè)置存放參數(shù)的名稱,關(guān)聯(lián)出來的
21、內(nèi)容將會存放在該參數(shù)中,這里受到Instance選項的影響。例如: Parameter Name 為Temp,當對應(yīng)的Instance選項是 任意一個數(shù)字的時候,只會關(guān)聯(lián)一個匹配的記錄,關(guān)聯(lián)值存放在Temp中。當Instance是ALL的時候,關(guān)聯(lián)成功后的值將會依次存放在“Temp_數(shù)字”這樣的參數(shù)數(shù)組中,并且會添加一個temp_ count的參數(shù)存放關(guān)聯(lián)出來的記錄條數(shù)。 Left Boundary:此處設(shè)置左邊界,這里用來填寫關(guān)聯(lián)對于數(shù)據(jù)處理的左匹配內(nèi)容規(guī)則。此處是一個字符串。注意:轉(zhuǎn)義字符為2022-6-834 六、Web_reg_save_param詳解 關(guān)聯(lián)函數(shù)關(guān)聯(lián)函數(shù)Web_reg_save_param詳解詳解 Match case :默認情況下邊界是Match case的,即檢查大小寫的??梢匀∠旅娴倪x項來忽略大小寫檢查。 Binary data:如果需要關(guān)聯(lián)的內(nèi)容是非ASC 字符的,需要使用該選項。 Use # for any digit:有些時候需要關(guān)聯(lián)的邊界中有些變動的數(shù)字,并且由于這個數(shù)字導致關(guān)聯(lián)非常難以設(shè)置邊界,可以使用該選項 Use as a wildcard for xxx alphanumerical characters :這里使用可以代替任何常用的字符。僅代表一個字符
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東松山職業(yè)技術(shù)學院《人力資源戰(zhàn)略與規(guī)劃》2023-2024學年第一學期期末試卷
- 廣東生態(tài)工程職業(yè)學院《材料表界面》2023-2024學年第一學期期末試卷
- 春興古詩拼音版
- 2024年電子商務(wù)平臺技術(shù)服務(wù)合同
- 2024版有關(guān)辦公場地租賃合同標準樣本
- 塔吊租賃合同
- 2024某房地產(chǎn)公司與某建筑設(shè)計院就建筑設(shè)計合同
- 分期付款服務(wù)合同
- 2024版食材配送合同協(xié)議書書
- 2024版簡單服裝購銷合同
- GB/T 37375-2019交通運輸物聯(lián)網(wǎng)標識規(guī)則
- 三大構(gòu)成之立體構(gòu)成-課件
- 河南高職單招政策解讀與報名課件
- 體外培育牛黃技術(shù)幻燈3課件
- 護士N2晉級N3職稱評定述職報告PPT課件(帶內(nèi)容)
- 動物、礦物藥分析課件
- 2019-2020學年江蘇省徐州市九年級(上)期末數(shù)學試卷(常用)(精品)
- 精選天津高三生物知識點
- 心有靈犀猜詞游戲常備詞匯總結(jié)
- DB22∕T 5006-2018 裝配式路面基層工程技術(shù)標準
- 《士兵突擊》PPT課件(PPT 43頁)
評論
0/150
提交評論