Jmeter 全程實戰(五)引數化

2022-07-10 12:36:16 字數 4043 閱讀 3150

為什麼需要引數化?

例如錄製指令碼中有登入操作,需要輸入使用者名稱和密碼,假如系統不允許相同的使用者名稱和密碼同時登入,或者想更好的模擬多個使用者來登入系統。這個時候就需要對使用者名稱和密碼進行引數化,使每個虛擬使用者都使用不同的使用者名稱和密碼進行訪問。

注:引用變數使用 $

2.1 前置處理器->使用者引數

新增:執行緒組->新增->前置處理器->使用者引數

2.2 前置處理器->正規表示式使用者引數

2.3 配置與案件->使用者定義的變數

新增:執行緒組->新增->配置元件->使用者定義的變數,新增變數名以及對應值;

2.4 正規表示式提取

2.5 函式助手

新建user.csv檔案,寫入id、使用者名稱和密碼

點選選單欄「工具」-->函式助手對話方塊,看下圖: csv檔案列號是從0開始的,第一列0、第二列1、第三列2、依次類推。若要使用相對路徑,可直接將檔案放在 bin 目錄下

複製生成的引數化函式,修改函式中對應的引數化欄位列號即可

2.6 配置元件->csv 資料檔案設定(csv data set config)-- 推薦使用

使用方法

(1)新建csv檔案,和函式助手一致

(2)執行緒組->新增->配置元件->csv data set config

(3)在請求中使用 $ 獲取變數

csv 數檔案設定說明:

recycle on eof? :到了檔案尾處,是否迴圈讀取引數,true=當讀取檔案到結尾時,再重頭讀取檔案;false=當讀取檔案到結尾時,停止讀取檔案

stop thread on eof? :到了檔案尾處,是否停止執行緒,當recycle on eof為false時,當讀取檔案到結尾時,停止程序,當recycle on eof為true時,此項無意義

當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次請求錯誤

2.7 從資料庫獲取

從資料庫中獲取當引數的值沒有規律且量比較大時,可以選用這種方法。例,從mysql 中獲取資料

新增「配置元件」->「jdbc connection configuration」,設定下列引數:

新增「sampler」->「jdbc request」,在sql query中輸入查詢語句,concat()函式

可以在jdbc請求中新增「後置處理器」->「正規表示式提取器」,以提取引數:

使用時,user_g1即為使用者名稱,user_g2即為對應使用者名稱的密碼;更多正規表示式提取方法參見jmeter正規表示式提取器

2.8 隨機函式random

為什麼需要引數化?

例如錄製指令碼中有登入操作,需要輸入使用者名稱和密碼,假如系統不允許相同的使用者名稱和密碼同時登入,或者想更好的模擬多個使用者來登入系統。這個時候就需要對使用者名稱和密碼進行引數化,使每個虛擬使用者都使用不同的使用者名稱和密碼進行訪問。

注:引用變數使用 $

2.1 前置處理器->使用者引數

新增:執行緒組->新增->前置處理器->使用者引數

2.2 前置處理器->正規表示式使用者引數

2.3 配置與案件->使用者定義的變數

新增:執行緒組->新增->配置元件->使用者定義的變數,新增變數名以及對應值;

2.4 正規表示式提取

2.5 函式助手

新建user.csv檔案,寫入id、使用者名稱和密碼

點選選單欄「工具」-->函式助手對話方塊,看下圖: csv檔案列號是從0開始的,第一列0、第二列1、第三列2、依次類推。若要使用相對路徑,可直接將檔案放在 bin 目錄下

複製生成的引數化函式,修改函式中對應的引數化欄位列號即可

2.6 配置元件->csv 資料檔案設定(csv data set config)-- 推薦使用

使用方法

(1)新建csv檔案,和函式助手一致

(2)執行緒組->新增->配置元件->csv data set config

(3)在請求中使用 $ 獲取變數

csv 數檔案設定說明:

recycle on eof? :到了檔案尾處,是否迴圈讀取引數,true=當讀取檔案到結尾時,再重頭讀取檔案;false=當讀取檔案到結尾時,停止讀取檔案

stop thread on eof? :到了檔案尾處,是否停止執行緒,當recycle on eof為false時,當讀取檔案到結尾時,停止程序,當recycle on eof為true時,此項無意義

當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次請求錯誤

2.7 從資料庫獲取

從資料庫中獲取當引數的值沒有規律且量比較大時,可以選用這種方法。例,從mysql 中獲取資料

新增「配置元件」->「jdbc connection configuration」,設定下列引數:

新增「sampler」->「jdbc request」,在sql query中輸入查詢語句,concat()函式

可以在jdbc請求中新增「後置處理器」->「正規表示式提取器」,以提取引數:

使用時,user_g1即為使用者名稱,user_g2即為對應使用者名稱的密碼;更多正規表示式提取方法參見jmeter正規表示式提取器

2.8 隨機函式random

Jmeter之引數化(五)

jmeter用函式 random 批量新增的用法 首先點選 選項 函式助手對話方塊 這個是隨機取值的意思 在這邊輸入取值的範圍 然後點生成 即可 例如 從 數字 10 50之間隨機取值 生成字串,複製到 jdbc request中 例如 從 數字 10 50之間隨機取值 生成字串,複製到 jdbc ...

十二 JMeter實戰 CSV隨機引數化

在效能測試中,我們要實現這樣乙個場景,模擬不同的人購買不同的商品。我們前面講的csv引數化,是安裝 的順序進行讀取資料,如果是隨機讀取 的資料,我們模擬的行為就會更真實一些。需要用到的外掛程式 random csv data set config 步驟 在jmeter中開啟外掛程式管理器 選擇可用外...

jmeter 引數化的五種方法

設定引數值的方法有如下幾種 1.用jmeter中的函式獲取引數值 用jmeter中的函式獲取引數值,random,threadnum,csvread,stringfromfile,具體呼叫方法如下 參看jmeter函式的使用,通過選單 選項 函式助手對話方塊 即可在 函式助手 彈出框上找到jmete...