LoadRunner【第五篇】關聯


關聯的定義及使用場景

關聯:將服務器提供動態變化的值存放在變量中,當需要使用該變量時,自動從服務器響應的信息中獲取該值,並在后面使用的過程中進行替換。(也可能是前端頁面動態生成的值)

當客戶端的某個請求參數是隨着服務器端的響應而動態變化的時候,我們就需要用到關聯。

當然我們在錄制腳本時應該對測試的項目進行適當的了解,知道哪些請求需要用到服務器響應的動態值,如果我們不明確那些值需要做關聯的話,我們也可以將腳本錄制兩遍,通過對比腳本的方法來查找需要關聯的部分,但並不是說兩次錄制的所有不同點都需要關聯,這個要具體情況具體分析。 

關聯和參數化的區別是:

  參數化:客戶端控制,定義參數值

  關聯:客戶端不能控制,將服務器動態返回的值(也可能是前端頁面動態生成的值)作為下一次請求的入參

 

關聯函數

關聯函數主要使用web_reg_save_param和web_reg_save_param_ex,二者的區別就是后者在左右邊界中可以使用正則表達式,但我主要還是使用前者偏多。

web_reg_save_param("參數名","LB=左邊界","RB=右邊界",LAST);  // 注冊函數,在參數值出現的前面使用,注冊成功時返回值為0,注冊失敗時返回值為1。左右邊界需根據TreeView里相關步驟的SeverResponse代碼來確定。用這個函數能獲取第一個符合條件的數值。

web_reg_save_param("參數名”,"LB=左邊界”,"RB=右邊界","Ord=All",LAST);  // 當參數有多個值時,加上"Ord=All”后可獲取所有的數值。注冊成功后,{參數名_count}表示取得的數值個數,{參數名_1}為第一個數值,{參數名_2}為第二個數值。

查看官網幫助文檔

 

注冊函數要放在獲取關聯值的請求前面

 

關聯方式一:回放關聯(自動關聯)

還是以loadrunner自帶的訂票網站來實操,

先進入首頁做一下配置,啟用session功能

點擊【administrator】

按如下方式勾選,然后點擊【Update】

先錄制腳本,結果是

然后回放腳本(再次運行腳本),登錄失敗,說明用錄制的入參去登錄沒有成功

回放日志

 

點擊下面

顯示出差異的地方,就是可能需要關聯的地方,點擊“Correlate”就自動關聯生成關聯函數,但是這種方式不一定准確,所以不推薦

 

我們可以查看頁面源碼

 

找到變化的值的左右邊界

 

Action()
{
	web_reg_save_param("loginSession","LB=userSession value=","RB=>",LAST);
	web_url("WebTours", 
		"URL=http://127.0.0.1:1080/WebTours", 
		"Resource=0", 
		"RecContentType=text/html", 
		"Referer=", 
		"Snapshot=t1.inf", 
		"Mode=HTML", 
		LAST);

	lr_think_time(1);

	web_submit_data("login.pl", 
		"Action=http://127.0.0.1:1080/WebTours/login.pl", 
		"Method=POST", 
		"RecContentType=text/html", 
		"Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", 
		"Snapshot=t2.inf", 
		"Mode=HTML", 
		ITEMDATA, 
		//"Name=userSession", "Value=108380.1963548ffHtiAzpDfDDttipiDiV", ENDITEM, 
		"Name=userSession", "Value={loginSession}", ENDITEM, 
		"Name=username", "Value=jojo", ENDITEM, 
		"Name=password", "Value=bean", ENDITEM, 
		"Name=JSFormSubmit", "Value=on", ENDITEM, 
		"Name=login.x", "Value=42", ENDITEM, 
		"Name=login.y", "Value=5", ENDITEM, 
		LAST);

	return 0;
}

 

 

 

回放成功,說明關聯成功

 

關聯方式二:手動關聯

1.錄制兩份相同的腳本,必須保證操作一致且action的划分一致。

2.保存腳本,需要注意三個方面:1.保存路徑不要太深;2.保存的名稱中不能有空格;3.保存的名稱中不能有中文。

3.關閉一個腳本,選擇tools下的“compare with script”

4.在彈出的界面中選擇“options”—view—show inline diffeences目的是讓wdiff工具顯示腳本中真正有差異的地方,以紅色標注真正不同點

5.找出真正不同的點,選擇后,使用edit下的copy功能,並將拷貝的內容存到某文件中。

6.分析不同點,並在業務系統中找到該不同點,確定左右邊界,對於B/S結構系統,可以選擇對應的頁面,右鍵查看資源文件。

7.使用alt+insert快捷鍵,選擇web_reg_save_param函數,在出現的界面上輸入變量名,左右邊界,確定即可,需要注意的是關聯函數的位置。

web_reg_save_param("loginSession",
		"LB=userSession value=",
		"RB=>",
		LAST);

8.回放腳本,進行檢查,如有問題,首先應該考慮的是關聯函數放的位置,接下來要考慮左右邊界是否正確。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM