在JMS插件從jmeter-plugins.org捐贈給核心JMeter之后,JSON插件在Apache JMeter™ 版本4中被棄用。現在,我已更新此插件以支持新功能和新功能。在這個新版本中,兩個插件組件,JSON Path Extractor和JSON Path Assertion都有一個新的輸入格式--YAML。因此,用戶可以在運行JMeter負載測試時選擇JSON和YAML輸入格式。這為性能測試人員提供了更多選項和靈活性 - 以前在JSON中完成的所有工作現在也可以在YAML中完成。
讓我們通過生成一個簡單的測試計划來了解JSON / YAML插件的工作原理。此測試計划將從YAML中的兩個數組(列表)中獲取隨機值,並在POST請求中將它們用作主體參數。將從另一個請求接收這兩個數組。
讓我們開始吧。
1.使用JMeter插件管理器將JSON / YAML插件添加到JMeter 。
2.將螺紋組添加到測試計划中。
3.添加HTTP請求並配置URL參數。(在我的例子中,我將使用Dummy Sampler,因為我想以YAML格式顯示響應)。
對於此示例,我的服務器將在YAML中返回以下響應。來自此的數據將用於模擬在BlazeDemo網站上提交表單的響應。
門票: 出發: 城市: - 布宜諾斯艾利斯 - 羅馬 - 倫敦 - 柏林 目的地: 城市: - 波士頓 - 米蘭 - 巴黎 - 莫斯科
tickets:
departure:
cities:
- Buenos Aires
- Rome
- London
- Berlin
destination:
cities:
- Boston
- Milan
- Paris
- Moskow
4.添加JSON / YAML路徑斷言
我添加了兩個斷言,它將檢查我的路徑是否存在於響應中。每個斷言都有自己的路徑:
- $ .tickets.departure.cities
- $ .tickets.destination.cities
5.在斷言中選擇YAML輸入格式。
6.添加JSON / YAML路徑提取器
我添加了兩個提取器,它們將兩個數組提取到變量中。每個提取器都有自己的路徑:
- $ .tickets.departure.cities [*]將提取變量'from'
- $ .tickets.destination.cities [*]將提取變量'to'
7.在提取器中選擇YAML輸入格式。
8.讓我們看一下提取器的結果。我們可以使用Debug Sampler和View Results Tree監聽器。
如您所見,' from '和' to '變量顯示YAML文件中的完整數組。我們還得到了包含每個數組大小的變量from_matchNr和to_matchNr。最后,我們看到了一組變量from_ *和to_ *包含從陣列中的每個元素。
現在,讓我們看看如何從這些YAML數組中獲取隨機值(在結果中)並將其作為參數用於POST請求中。
9.創建HTTP請求,填寫正文參數(服務器,協議等),並根據您需要的功能設置參數值。在這種情況下:
- 使用隨機函數$ {__ Random(1,$ {from_matchNr})}
- 使用__V函數來評估嵌套變量引用。
- $ {__ V(從_ $ {__隨機(1,$ {from_matchNr})})}
- 對'to'變量更改相同的內容:$ {__ V(to _ $ {__ Random(1,$ {to_matchNr})})}
10.現在我可以運行我的測試腳本並查看請求正文。你可以看到它有隨機值:
而已!您現在可以像使用JSON一樣在JMeter中使用YAML輸入。然后,在創建JMeter腳本之后,您可以在BlazeMeter中從多個地理位置運行它,與CI工具集成並獲取高級報告。立即開始測試:將您的URL放在下面的框中,您的測試將在幾分鍾內開始。






