2016-11-09 58 views
1

我有一個json,下面的部分。我想編寫提供程序的數量並將其寫入結果文件。例如,這裏有10個提供者。所以我的要求是在文件中寫入數字10。我該怎麼做?計數並在正則表達式中提取提取值的數量

"providers": 
    [ 
     { 
      "MM_logofile":"agd.svg", 
      "MM_isOfficialWithoutLogo":false, 
      "code":"AGD", 
      "name":"Agoda.com", 
      "logo":"AGD.png", 
      "isOfficial":false 
     }, 
     { 
      "MM_logofile":"bks.svg", 
      "MM_isOfficialWithoutLogo":false, 
      "code":"BKS", 
      "name":"Booking.com", 
      "logo":"BKS.png", 
      "isOfficial":false 
     }, 
     { 
      "MM_logofile":"pln.svg", 
      "MM_isOfficialWithoutLogo":false, 
      "code":"PLN", 
      "name":"Priceline.com", 
      "logo":"PLN.png", 
      "isOfficial":false 
     }, 
     { 
      "MM_logofile":"ian.svg", 
      "MM_isOfficialWithoutLogo":false, 
      "code":"IAN", 
      "name":"Hotels.com", 
      "logo":"IAN-Other.png", 
      "isOfficial":false 
     }, 
     { 
      "MM_logofile":"gar.svg", 
      "MM_isOfficialWithoutLogo":false, 
      "code":"GAR", 
      "name":"getaroom.com", 
      "logo":"GAR.png", 
      "isOfficial":false 
     }, 
     { 
      "MM_logofile":"htv.svg", 
      "MM_isOfficialWithoutLogo":false, 
      "code":"HTV", 
      "name":"HotelTravel.com", 
      "logo":"HTV.png", 
      "isOfficial":false 
     }, 
     { 
      "MM_logofile":"exp.svg", 
      "MM_isOfficialWithoutLogo":false, 
      "code":"EXP", 
      "name":"Expedia.dk", 
      "logo":"EXP-DK.png", 
      "isOfficial":false 
     }, 
     { 
      "MM_logofile":null, 
      "MM_isOfficialWithoutLogo":true, 
      "code":"BOO", 
      "name":"Book with hotel", 
      "logo":"", 
      "isOfficial":true 
     }, 
     { 
      "MM_logofile":"hcl.svg", 
      "MM_isOfficialWithoutLogo":false, 
      "code":"HCL", 
      "name":"HotelsClick.com", 
      "logo":"HCL.png", 
      "isOfficial":false 
     }, 
     { 
      "MM_logofile":"vnn.svg", 
      "MM_isOfficialWithoutLogo":false, 
      "code":"VNN", 
      "name":"Venere.com", 
      "logo":"VNN.png", 
      "isOfficial":false 
     } 
    ], 

回答

1

使用JSONPATH Extractor插件(使用的JMeter - 插件管理器添加插件),並將其添加爲一個孩子在你得到JSON響應取樣。

使用表達式如下:

$.providers[*] 

和參考名稱爲providers如圖所示的下方圖像

enter image description here

在一旦捕獲的值代入參考變量,以後就可以使用參考名稱如下,以獲得匹配結果(即供應商數量)的計數如下:

${providers_matchNr} 

enter image description here

到提供商的計數保存到文件:

添加BeanShell的後處理器,並添加以下代碼:

count = vars.get("providers_matchNr"); 

log.info(count); // if you want to log something to jmeter.log file 

// Pass true if you want to append to existing file 
// If you want to overwrite, then don't pass the second argument 
f = new FileOutputStream("C:\\Users\\USER_HP_2013_03\\Desktop\\New folder\\result.csv", true); 
p = new PrintStream(f); 
this.interpreter.setOut(p); 
print(count); 
f.close(); 

參考圖像:

enter image description here

參考:

  1. Write extracted data to a file using jmeter
+0

感謝您的答覆納文。是否可以在一個文件中寫入提供程序的數量? – Jane

+0

你可以。添加BeanShell後處理器,創建一個文件並寫入它。 (beanShell腳本就像用Java編寫的腳本語言)一旦創建文件,就使用文件寫入選項之一。您可以使用前面在benshell sampler中提到的var.get(「providers_matchNr」)來檢索值。 –

+0

更新了答案。試用。請記住根據您的機器更改文件的路徑 –