日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Jmeter脚本增强之参数化(多方式实现)(6)

發布時間:2023/12/10 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jmeter脚本增强之参数化(多方式实现)(6) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參數化的場景:

①在插入記錄時,數據庫對某些字段唯一限制,這時需要參數化(不能傳固定參數)

②在壓測過程中,需要使用不同的用戶登錄,模擬真實的使用場景(避免數據庫查詢緩存)

這種方式通常被稱為數據驅動測試(Data Driven Test),參數的取值范圍被稱為數據池(Data Pool)。

支持如下多種參數化方式

  ①User Defined Variables:用戶定義的變量(設置不需要隨迭代發生改變的參數,例如:被測應用的host和port值)

  ②User Variables:用戶參數

  ③隨機變量(待補充)

  ④正則表達式提取器(待補充)

  ⑤函數助手:_CSVRead

  ⑥讀取參數文件:CSV數據控件 (強烈推薦)

  ⑦讀取數據庫(待補充)

======================

?

======================

之前傳的固定值:

將用戶名密碼寫入txt文檔,保存為.dat格式,編碼類型選擇UTF-8;(注意:用戶名密碼一一對應,之間用半角英文逗號隔開

?

然后將保存的.dat文件放入計算機的某個盤里,這里我放入路徑為:F:\jmeter\csvtest0509.dat

=====================================================================

  ①用戶定義變量??User Defined Variables

?點擊線程組添加配置元件→?User Defined Variables(用戶定義的變量):

?

設置虛擬用戶數:3個

運行后查看傳入的參數username,始終用的134……這個手機號,ok。

PS:User Defined Variables中定義的參數值在test plan執行過程中不能發生取值的改變,因此一般僅將test plan中不需要隨迭代發生改變的參數(只取一次的參數),例如:被測應用的host和port值。

==================================

  ②用戶參數(前置處理器的一項)

?點擊線程組添加前置處理器→ 用戶參數:

?

?設置了3個虛擬用戶:

第一次迭代:

POST data:
account=13488940619&password=111111&remeberMe=false

第二次迭代:

POST data:
account=18801114596&password=&remeberMe=false? ?(注意這里取的用戶2中的pwd哦,所以為空,不能取用戶1的pwd)

第三次迭代:

?======================

  ⑤用函數小助手,進行參數化:

點擊jmeter的界面,功能欄選項→ 函數助手對話框→ _CSVRead

點擊‘生成’按鈕,即生成對應的參數,然后在接口中使用:

替換參數化后的參數,然后修改線程數,執行腳本,通過監聽器里結果樹的請求內容,可以看到請求的參數都是參數化后的數據

====小結===============

當設置的虛擬用戶數(n+5)>data文件的行數n時:

前n個請求依次取data的每行參數,后5個請求時,再次從data文件第一行開始讀取5行參數。

?====================================================================

  ⑥讀取參數文件 CSV Data Set Config

點擊線程組添加配置元件→ CSV Data Set Config:

?

填寫參數:

參數說明:

Filename:F:\jmeter\csvtest.dat文件名,保存參數化數據的文件目錄,可選擇相對或者絕對路徑(建議填寫相對路徑,避免腳本遷移時需要修改路徑);

File encoding:UTF-8,F:\jmeter\csvtest.dat文件的編碼格式,在保存時保存編碼格式為UTF-8即可;

Variable Names(comma-delimited):對對應參數文件每列的變量名,類似excel文件的文件頭,起到標示作用,同時也是后續引用的標識符,建議采用有意義的英文標示;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (如:有幾列參數,在這里面就寫幾個參數名稱,每個名稱中間用分隔符分割,這里的 user,pwd,可以被利用變量名來引用:user,user,{pwd};

Delimitet:參數文件分隔符,用來在“Variable Names”中分隔參數,與參數文件中的分隔符保持一致即可;

Allow quote data:是否允許引用數據,默認false,選項選為“true”的時候對全角字符的處理出現亂碼 ;

Recycle on EOF?:是否循環讀取參數文件內容;因為CSV Data Set Config一次讀入一行,分割后存入若干變量中交給一個線程,如果線程數超過文本的記錄行數,那么可以選擇從頭再次讀入;

△ Ture:為true時,當已讀取完參數文件內的測試用例數據,還需繼續獲取用例數據時,此時會循環讀取參數文件數據(即:讀取文件到結尾時,再重頭讀取文件);

False:為false時,若已至文件末尾,則不再繼續讀取測試數據;通常在“線程組線程數* 線程組循環次數>參數文件行數”時,選用false(即:讀取文件到結尾時,停止讀取文件);

Stop thread on EOF?:當Recycle on EOF為False時(讀取文件到結尾),停止進程,當Recycle on EOF為True時,此項無意義;

若為ture,則在讀取到參數文件行末尾時,終止參數文件讀取線程;

若為false,此時線程繼續讀取,但會請求錯誤,因此時讀取的數據為EOF;

Sharing mode:共享模式,即參數文件的作用域,有以下幾種方式:

All threads:當前測試計劃中的所有線程中的所有的線程都有效,默認;

Current thread group:當前線程組中的線程有效;

Current thread:當前線程有效;

==============

完成之后,將剛才生成的參數寫入參數對應的值里面:

運行它,效果同上面⑤函數助手設置參數的一樣。

小結:

每次調用函數,都會從文件中讀取下一行。當到達文件末尾時,函數又會從文件開始處重新讀取,直到最大循環次數。

如果在一個測試腳本中對該函數有多次引用,那么每一次引用都會獨立打開文件,即使文件名是相同的

==================================

以上就是jmeter參數化的幾種方式,其中:

1、函數助手_CSVRead的參數化功能相比CSV Data Set Config較弱;

2、CSV Data Set Config適用于參數取值范圍較大的時候使用,該方法具有更大的靈活性;

3、User Defined Variables一般用于test plan中不需要隨請求迭代的參數設置;

4、User Variables適用于參數取值范圍很小的時候使用;

PS:相比于loadrunner來說,jmeter參數化有以下不同:

1.jmeter參數文件第一行沒有列名稱

2.參數文件的編碼,盡量保存為UTF-8(編碼問題在使用CSV Data Set Config參數化時要求的比較嚴格)

3.Jmeter的參數化沒有LoadRunner做的出色,它是依賴于線程設置的(只有CSV Data Set Config參數化方法才有?)

參照:https://www.cnblogs.com/imyalost/p/6229355.html

轉載于:https://www.cnblogs.com/ww-xiaowei/p/10838694.html

總結

以上是生活随笔為你收集整理的Jmeter脚本增强之参数化(多方式实现)(6)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。