1. 程式人生 > >JMeter學習(四)引數化

JMeter學習(四)引數化

JMeter也有像LR中的引數化,本篇就來介紹下JMeter的引數化如何去實現。

 

引數化:錄製指令碼中有登入操作,需要輸入使用者名稱和密碼,假如系統不允許相同的使用者名稱和密碼同時登入,或者想更好的模擬多個使用者來登入系統。

這個時候就需要對使用者名稱和密碼進行引數化,使每個虛擬使用者都使用不同的使用者名稱和密碼進行訪問。

 

一、準備指令碼,測試資料

1、錄製一個指令碼(可以用badboy工具錄製),在jmeter中開啟,找到有使用者名稱和密碼的頁面。如下:

2、我們需要“引數化”的資料,用記事本寫了五個使用者名稱和密碼,儲存為.dat格式的檔案,編碼問題在使用CSV Data Set Config引數化時要求的比較嚴格,記事本另存為修改編碼UTF-8.  

注意使用者名稱和密碼是一一對應的,中間使用者逗號(,)隔開。

我將這個檔案放在了我的( C:\JmeterWorkSpace\t.dat  )路徑下。

 

二、引數化

  這裡介紹兩種引數化的方式:函式助手,CSV Data Set Config。

 

1、藉助函式助手的方式

a、點選選單欄“選項”---->函式助手對話方塊,看下圖:  CSV檔案列號是從0開始的,第一列0、第二列1、第三列2、依次類推。。

 

 

b、複製生成的引數化函式,開啟登陸請求頁面,在右則的引數化中找到我們要引數化的欄位,這裡對使用者名稱和密碼做引數化,第一列是使用者名稱,列號為0;第二列是密碼,列號為1;修改函式中對應的引數化欄位列號就可以啦。

好了,現在我們的引數化設定完成,在指令碼的時候,會呼叫我們C:\JmeterWorkSpace盤下面的t.dat檔案,第一列是使用者,第二列是密碼。

 

2、藉助jmeter中的配置元件(CSV Data Set Config)

 a、選中執行緒組,點選右鍵,新增-配置元件-CSV Data Set Config

說明:

Filename --- 引數項檔案
File Encoding --- 檔案的編碼,設定為UTF-8
Vaiable Names --- 檔案中各列所表示的引數項;各引數項之間利用逗號分隔;引數項的名稱應該與HTTP Request中的引數項一致。
Delimiter --- 如檔案中使用的是逗號分隔,則填寫逗號;如使用的是TAB,則填寫\t;(如果此文字檔案為CSV格式的,預設用英文逗號分隔)

Recycle on EOF? --- True=當讀取檔案到結尾時,再重頭讀取檔案
                    False=當讀取檔案到結尾時,停止讀取檔案
Stop thread on EOF? --- 當Recycle on EOF為False時,當讀取檔案到結尾時,停止程序,當Recycle on EOF為True時,此項無意義

 

備註說明:這裡我用通俗的語言大概講一下Recycle on EOF與Stop thread on EOF結果的關聯

Recycle on EOF :到了檔案尾處,是否迴圈讀取引數,選項:true和false

Stop thread on EOF:到了檔案尾處,是否停止執行緒,選項:true和false

當Recycle on EOF 選擇true時,Stop thread on EOF選擇true和false無任何意義,通俗的講,在前面控制了不停的迴圈讀取,後面再來讓stop或run沒有任何意義

當Recycle on EOF 選擇flase時,Stop thread on EOF選擇true,執行緒4個,引數3個,那麼只會請求3次

當Recycle on EOF 選擇flase時,Stop thread on EOF選擇flase,執行緒4個,引數3個,那麼會請求4次,但第4次沒有引數可取,不讓迴圈,所以第4次請求錯誤

 

事例下載:demo

 

b、使用剛才定義好的變數

至此,兩種引數化的方法就介紹完了。

需要說明一下:函式助手方法要比CSV控制元件方法引數化功能要弱,推薦使用CSV控制元件方法。

 

 

再看看與loadrunner引數化不一樣的:

1、 jmeter引數檔案的第一行沒有列名稱

2、 這裡要注意的是引數檔案的編碼,可以使用記事本另存為就可以修改該編碼(編碼問題在使用CSV Data Set Config引數化時要求的比較嚴格)

3、 Jmeter的引數化設定沒有LoadRunner做的出色,它是依賴於執行緒設定的(只有CSV Data Set Config引數化方法才有)

分類: JMeter