1. 程式人生 > >【LoadRunner】手把手學會LoadRunner引數化

【LoadRunner】手把手學會LoadRunner引數化

1.錄製一個簡單的登入指令碼:

下圖是擷取的使用Loadrunner自帶的飛機訂票網站錄製登入部分的程式碼:
這裡寫圖片描述

2.然後對使用者名稱和密碼進行引數化設定

此處的sessionID可以進行關聯,詳情檢視上篇博文。
如果我們的多個使用者使用的是同一個密碼,只是使用者名稱不相同,那麼我們可以只對使用者名稱進行引數化,這也可以節約小夥伴們的一些時間。

在本文我們還是都引數化來演示吧:
這裡寫圖片描述

然後就會出現一個小小的框框叫你填寫變數名啦:

這裡寫圖片描述

確定之後再看就變成紫色的變數標識了,密碼的引數化和使用者名稱一樣:

這裡寫圖片描述

3.對變數進行傳參

右擊變數名,選擇這個按鈕,也可以使用CTRL+L快捷鍵:

這裡寫圖片描述

之後我們就進入了引數列表,左側為變數列表右側為詳細設定:

這裡寫圖片描述

如果我們選擇的是使用記事本編輯的話,介面如下:

這裡寫圖片描述
這裡寫圖片描述

當然也可以在介面上直接編輯,新增行、列或者刪除行、列,這適用於資料比較少的場景,多的話還是使用資料庫匯入吧。

這裡寫圖片描述

如果我們把所有引數都儲存在了一個文件中,就像下面這樣:

這裡寫圖片描述

那麼我們可以根據列來選擇內容。

這裡寫圖片描述

4.兩個重要選項卡講解

這裡寫圖片描述

  1. Select next row: 選擇下一行方法
Sequential 預設 順序的,按照引數化的資料順序,從上往下一個一個的來取。
Random 隨機取,引數化中的資料,每次隨機的從中抽取資料。
Unique 唯一,唯一的向下取值,只能被用一次。

Same line as xxx ,和xxx列取同一行的值,(行相同)步調一致
  1. Update value on: 更新方式
 Each iteration 預設 每次迭代時取值 (常用)
Each occurrence 每次遇到該引數時取值
Once 取值僅一次,指令碼執行過程中只取值一次值的是:一次選擇,終身不變

這兩個算下來一共有9中組合方法,每個方法的含義如下:

這裡寫圖片描述

如果,你看不懂我上面的這個表格的話,我們還有一個很厲害的東西!

這裡寫圖片描述

這個東西就是你把上面的都設定好啦,但是不知道具體到底使用者執行順序效果是怎麼樣的,你就可以點選這個按鈕進行模擬,就像這樣:

這裡寫圖片描述

這就可以讓你直觀的看到每一次迭代時到底是使用的哪一個使用者名稱密碼啦。

將這些都設定完成之後我們的引數化就結束了。

但是,我們在這個過程中還是會有一些小疑惑

  • 比如說引數化完成之後回訪我要怎麼執行多次啦?
    這個問題算是比較簡單的問題,直接在running setting中設定迭代次數就可以了。

    這裡寫圖片描述
    這裡寫圖片描述

  • 再比如說我迭代了4次之後,我在回放日誌中並不能看到我到底迭代的是哪個使用者啊?
    這時候我們可以在指令碼之後加上這樣一句話:

lr_output_message("使用者名稱:%s",lr_eval_string("{name}"));

這裡寫圖片描述

這句話的意思就是將{name}變數中的值以字串打印出來。
這樣的話每次回放的時候,在回放日誌中就可以看到你到底迭代的是哪個使用者了。

這裡寫圖片描述

  • 在執行過程中我還遇到了幾個問題,當然現在已經順利解決啦,就在這裡記錄一下解決方法。

一些錯誤的解決方案

  • Error -27987: Requested image not found [MsgId: MERR-27987]
    這個是指找不到請求的影象,我猜是在錄製的時候某個功能是請求的圖片而非路徑,然後後面迭代的時候就找不到了????(黑人問號?為什麼會找不到?)
    解決方法:Recording Options–>Recording–>HTTP/HTML Level–>HTML-based script --> HTML Advanced–>Script type選中第二項:A script containing explicit URLs only。儲存就OK了

  • Error -35061: The “CorrelationParameter_1” argument (number 1) is unrecognized or misplaced
    這個是指關聯時儲存的值超出了長度,在web_reg_save_param_ex方法後面加上一句NotFound=warning,變成下面的這個樣子就可以了:

web_reg_save_param_ex(
		"ParamName=CorrelationParameter_1",
		"LB=124481.1",
		"RB=>\n<table border",
		"NotFound=warning",
		LAST);