以Json形式的數(shù)據(jù)格式實(shí)現(xiàn)JMeter參數(shù)化
參數(shù)化就是動(dòng)態(tài)的獲取并設(shè)置數(shù)據(jù),當(dāng)執(zhí)行批量操作時(shí),如批量插入或批量刪除,之前每執(zhí)行完一次就需要修改一次,效率太低,參數(shù)化可以代替人工獲取并設(shè)置數(shù)據(jù),安全且高效!
我們本篇文章演示在請(qǐng)求中,以Json形式的數(shù)據(jù)格式,實(shí)現(xiàn)JMeter參數(shù)化。
我們以小項(xiàng)目學(xué)院管理系統(tǒng)為例,下載地址:點(diǎn)擊下載,里面有詳細(xì)的啟動(dòng)配置說(shuō)明和API接口文檔。
接口文檔如下:
學(xué)院-新增
1) 請(qǐng)求方法:POST
2) 請(qǐng)求地址:http://127.0.0.1:8000/api/departments/
3) 請(qǐng)求JOSN報(bào)文:(需要Content-Type=application/json)
4) 調(diào)用傳入的json串如下(可新增多條,之間用,隔開(kāi)):
{
"data": [
{
"dep_id":"T01",
"dep_name":"Test學(xué)院",
"master_name":"Test-Master",
"slogan":"Here is Slogan"
}
]
}
5) 新增成功返回報(bào)文:
{
"already_exist": {
"results": [],
"count": 0
},
"create_success": {
"results": [
{
"dep_id": "T02",
"dep_name": "Java學(xué)院",
"master_name": "Java-Master",
"slogan": "java"
}
],
"count": 1
}
}
6) 新增失敗id已存在-返回報(bào)文:
{
"already_exist": {
"results": [
{
"dep_id": "T01",
"dep_name": "Test學(xué)院",
"master_name": "Test-Master",
"slogan": "Here is Slogan"
}
],
"count": 1
},
"create_success": {
"results": [],
"count": 0
}
}
7) 新增失敗json格式錯(cuò)誤:
{
"status_code": 400,
"detail": "請(qǐng)求體參數(shù)格式錯(cuò)誤。"
}
1、使用“CSV數(shù)據(jù)文件設(shè)置”組件實(shí)現(xiàn)參數(shù)化
例如:現(xiàn)在有一個(gè)需求,實(shí)現(xiàn)批量添加學(xué)院信息。
(1)測(cè)試計(jì)劃中的元件
添加元件操作步驟:
- 創(chuàng)建測(cè)試計(jì)劃。
- 創(chuàng)建線程組:
選中“測(cè)試計(jì)劃”右鍵 —> 添加 —> 線程(用戶) —> 線程組。 - 在線程組中,添加配置元件"HTTP信息頭管理器"組件:
選中“線程組”右鍵 —> 添加 —> 配置元件 —> HTTP信息頭管理器。 - 在線程組中,添加配置元件
CSV Data Set Config組件:選中“線程組”右鍵 —> 添加 —> 配置元件 —> CSV數(shù)據(jù)文件設(shè)置。 - 在線程組中,添加取樣器“HTTP請(qǐng)求”組件:
選中“線程組”右鍵 —> 添加 —> 取樣器 —> HTTP請(qǐng)求。 - 在線程組中,添加監(jiān)聽(tīng)器“察看結(jié)果樹(shù)”組件:查看結(jié)果,
選中“線程組”右鍵 —> 添加 —> 監(jiān)聽(tīng)器 —> 察看結(jié)果樹(shù)。
最終測(cè)試計(jì)劃中包含的元件如下:

點(diǎn)擊運(yùn)行按鈕,會(huì)提示你先保存該腳本,腳本保存完成后會(huì)直接自動(dòng)運(yùn)行該腳本。
(2)數(shù)據(jù)文件內(nèi)容
先用Excel表格編輯所需的請(qǐng)求參數(shù),內(nèi)容如下:

我們需要把該文件保存為.csv格式。
然后使用Notepad++打開(kāi)該文件,點(diǎn)擊“編碼” —> 轉(zhuǎn)為UTF-8編碼,防止中文亂碼。
最終所得到的.csv格式文件的內(nèi)容如下:

(3)線程組元件內(nèi)容
如果需要使用CSV文件中所有的數(shù)據(jù),需要設(shè)置線程組元件的線程數(shù)或循環(huán)次數(shù)。
因?yàn)樵贑SV數(shù)據(jù)文件設(shè)置組件中,有Recycle on EOF和Stop thread on EOF選項(xiàng)的關(guān)系,所以設(shè)置線程數(shù)和循環(huán)次數(shù)都可以實(shí)現(xiàn),使用數(shù)據(jù)文件中的每一組數(shù)據(jù)進(jìn)行測(cè)試。

(4)HTTP信息頭管理器組件內(nèi)容
因?yàn)槲覀円褂肞ost請(qǐng)求發(fā)送Json數(shù)據(jù),所以需要在請(qǐng)求頭中設(shè)置Content-Type=application/json。
如果我們不在請(qǐng)求頭中進(jìn)行設(shè)置,默認(rèn)請(qǐng)求頭的Content-Type值為text/plain,(這在前面的Post請(qǐng)求文章中有詳細(xì)的說(shuō)明),并且在接口文檔中也有明確的要求說(shuō)明。
如下圖所示:

(5)CSV數(shù)據(jù)文件設(shè)置組件內(nèi)容
如下圖所示:

我一般常用操作,簡(jiǎn)單說(shuō)明:
- 文件名:就直接瀏覽選擇文件即可,也就是使用數(shù)據(jù)文件的絕對(duì)路徑。
- 文件編碼選擇
UTF-8。 - 變量名稱:就是把數(shù)據(jù)文件的每個(gè)變量名都填寫(xiě)上,中間用逗號(hào)分割。
- 忽略首行:選擇True,如果CSV文件中首行寫(xiě)的是變量名稱,選擇忽略首行。
- 分隔符:如果CSV文件中的數(shù)據(jù),使用的是逗號(hào)隔開(kāi),就是默認(rèn)值。
- 如果是制表符,就用
\t表示。 - 是否允許帶引號(hào)?:如果變量值中有引號(hào)就選擇True,沒(méi)有則默認(rèn)False即可。
- 其他一般默認(rèn)選擇。
- 如果需求看上面說(shuō)明中寫(xiě)的很詳細(xì),按工作中實(shí)際情況選擇。
(6)HTTP請(qǐng)求組件內(nèi)容
在JMeter中使用參數(shù)化變量的格式:${變量名}。
編輯添加學(xué)院接口內(nèi)容,如下圖所示:

我們可以看到${變量名}中的引用變量名,是以CSV數(shù)據(jù)文件設(shè)置組件中變量名稱中定義變量名為準(zhǔn)。如果不在變量名稱欄中定義任何內(nèi)容,就以數(shù)據(jù)文件中的標(biāo)題列名為引用變量名。
(7)腳本運(yùn)行結(jié)果
該測(cè)試腳本運(yùn)行結(jié)果如下圖所示:

可以看到四個(gè)學(xué)院都成功添加到數(shù)據(jù)庫(kù)中了。
我們?cè)偃?shù)據(jù)庫(kù)中查看一下,如下圖所示:

這樣就說(shuō)明我們的JMeter測(cè)試腳本實(shí)現(xiàn)成功了。
2、使用“用戶參數(shù)”組件實(shí)現(xiàn)參數(shù)化
接下來(lái)我們使用“用戶參數(shù)”組件,來(lái)實(shí)現(xiàn)上面的接口。
(1)添加元件操作步驟
創(chuàng)建測(cè)試計(jì)劃。
- 創(chuàng)建線程組:
選中“測(cè)試計(jì)劃”右鍵 —> 添加 —> 線程(用戶) —> 線程組。 - 在線程組中,添加配置元件"HTTP信息頭管理器"組件:
選中“線程組”右鍵 —> 添加 —> 配置元件 —> HTTP信息頭管理器。 - 在線程組中,添加取樣器“HTTP請(qǐng)求”組件:
選中“線程組”右鍵 —> 添加 —> 取樣器 —> HTTP請(qǐng)求。 - 在取樣器中,添加前置處理器“用戶參數(shù)”組件:
選中“取樣器”右鍵 —> 添加 —> 前置處理器 —>用戶參數(shù)。 - 在線程組中,添加監(jiān)聽(tīng)器“察看結(jié)果樹(shù)”組件:查看結(jié)果,
選中“線程組”右鍵 —> 添加 —> 監(jiān)聽(tīng)器 —> 察看結(jié)果樹(shù)。
最終測(cè)試計(jì)劃中的元件,如下圖所示:

(2)元件中的內(nèi)容介紹
其實(shí)就是把上面示例中,CSV數(shù)據(jù)文件設(shè)置組件刪除掉,然后在取樣器請(qǐng)求的下一級(jí),添加一個(gè)用戶參數(shù)組件。
其他元件的內(nèi)容都沒(méi)有任何的改動(dòng)。
所以這里指展示用戶參數(shù)組件中的內(nèi)容,其他組件看上面配置就好。
用戶參數(shù)組件內(nèi)容如下:

測(cè)試結(jié)果也是完全通過(guò),數(shù)據(jù)能夠直接存儲(chǔ)到數(shù)據(jù)庫(kù)中。
數(shù)據(jù)庫(kù)中,如下圖所示:

說(shuō)明我們上面的JMeter腳本執(zhí)行成功了。
以上就是Json形式的數(shù)據(jù)格式實(shí)現(xiàn)JMeter參數(shù)化的詳細(xì)內(nèi)容,更多關(guān)于JMeter參數(shù)化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java如何讀取resources目錄和同級(jí)目錄文件
介紹了Java中讀取resources目錄和同級(jí)目錄文件的方法,并討論了在IDE和發(fā)布環(huán)境中可能遇到的問(wèn)題,通過(guò)測(cè)試發(fā)現(xiàn),執(zhí)行目錄可能會(huì)影響文件讀取,建議在使用`user.dir`時(shí)注意jar包的運(yùn)行目錄問(wèn)題2024-12-12
一文教會(huì)你如何從0到1搭建一個(gè)SpringBoot項(xiàng)目
今天剛好學(xué)習(xí)到SpringBoot,就順便記錄一下吧,下面這篇文章主要給大家介紹了關(guān)于如何從0到1搭建一個(gè)SpringBoot項(xiàng)目的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
SpringBoot通過(guò)計(jì)劃任務(wù)發(fā)送郵件提醒的代碼詳解
在實(shí)際線上項(xiàng)目中,有不斷接受到推送方發(fā)來(lái)的數(shù)據(jù)場(chǎng)景,而且是不間斷的發(fā)送,如果忽然間斷了,應(yīng)該是出問(wèn)題了,需要及時(shí)檢查原因,這種情況比較適合用計(jì)劃任務(wù)做檢查判斷,出問(wèn)題發(fā)郵件提醒,本文給大家介紹了SpringBoot通過(guò)計(jì)劃任務(wù)發(fā)送郵件提醒,需要的朋友可以參考下2024-11-11
java學(xué)習(xí)指南之字符串與正則表達(dá)式
在日常Java后端開(kāi)發(fā)過(guò)程中,免不了對(duì)數(shù)據(jù)字段的解析,自然就少不了對(duì)字符串的操作,這其中就包含了正則表達(dá)式這一塊的內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于java學(xué)習(xí)指南之字符串與正則表達(dá)式的相關(guān)資料,需要的朋友可以參考下2023-05-05
Java實(shí)現(xiàn)Map集合遍歷的四種常見(jiàn)方式與用法分析
這篇文章主要介紹了Java實(shí)現(xiàn)Map集合遍歷的四種常見(jiàn)方式與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了java針對(duì)Map集合鍵值對(duì)遍歷的常見(jiàn)使用技巧與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-01-01
解決@RequestBody使用不能class類型匹配的問(wèn)題
這篇文章主要介紹了解決@RequestBody使用不能class類型匹配的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
Java從零開(kāi)始創(chuàng)建功能豐富的PDF文檔
隨著數(shù)字化辦公的普及,PDF格式因其跨平臺(tái)兼容性和安全性而被廣泛應(yīng)用于各種場(chǎng)景中,本文將詳細(xì)介紹如何使用Java來(lái)實(shí)現(xiàn)PDF文檔的一鍵生成,有需要的可以了解下2025-01-01
SpringBoot MyBatis簡(jiǎn)單快速入門(mén)例子
MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射。這篇文章主要介紹了SpringBoot MyBatis快速入門(mén)-簡(jiǎn)單例子,需要的朋友可以參考下2021-07-07
spring mvc+localResizeIMG實(shí)現(xiàn)HTML5端圖片壓縮上傳
這篇文章主要為大家詳細(xì)介紹了使用spring mvc+localResizeIMG實(shí)現(xiàn)HTML5端圖片壓縮上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
SpringMVC實(shí)現(xiàn)文件的上傳和下載實(shí)例代碼
本篇文章主要介紹了SpringMVC實(shí)現(xiàn)文件的上傳和下載實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05

