LoadRunner【第五篇】關聯

關聯的定義及使用場景

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

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

固然咱們在錄製腳本時應該對測試的項目進行適當的瞭解,知道哪些請求須要用到服務器響應的動態值,若是咱們不明確那些值須要作關聯的話,咱們也能夠將腳本錄製兩遍,經過對比腳本的方法來查找須要關聯的部分,但並非說兩次錄製的全部不一樣點都須要關聯,這個要具體狀況具體分析。 web

關聯和參數化的區別是:正則表達式

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

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

 

關聯函數

關聯函數主要使用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.回放腳本,進行檢查,若有問題,首先應該考慮的是關聯函數放的位置,接下來要考慮左右邊界是否正確。 

相關文章
相關標籤/搜索