2012-06-25 60 views
2

我正在嘗試爲創建汽車索賠修理預訂的在線保險應用程序創建JMeter腳本。對此應用程序的響應之一將返回一個JSON對象,該對象具有可用於預訂修復作業的時間段和不可用的時間段。下面是一個JSON的例子。在JMeter中從JSON響應中提取數據

{ 
    "7": { 
     "45": 1, 
     "30": 1 
    }, 
    "8": { 
     "45": 1, 
     "30": 0, 
     "15": 1, 
     "00": 0 
    }, 
    "9": { 
     "45": 1, 
     "30": 1, 
     "15": 1, 
     "00": 1 
    }, 
    "10": { 
     "45": 0, 
     "30": 1, 
     "15": 1, 
     "00": 1 
    } 
} 

這顯示了上午7點,上午8點,上午9點和上午10點。時隙7點45分,7點30分,7點等。對分鐘插槽1表示該插槽是空閒的。所以第一個空閒時隙是7:45。

如何使用正則表達式提取第一個空閒插槽?

我想出了這個正則表達式來獲得小時槽... "(\d{1})":{"\d{2}":1,但不能解決如何準確提取分鐘槽。

我想知道是否會更容易做到這一點使用BSF後處理器和一些JavaScript。不幸的是我的腳本編寫能力很差。

任何人都可以提供任何幫助,如何使用正則表達式或可能使用BSF後處理器提取此信息?

+0

你到底要提取什麼呢? 「第一個空閒插槽」是什麼?你能給出樣本輸出嗎? – ant

回答

0

嗯,如果你想找到剛纔前兩個數字出現,你可以使用這樣的事情:

(\w+)(?:[\D]*)(\w*) 

我貼在regexplanet表達,所以你可以測試各種輸入JSONs。

1

更強大以及更復雜的方式是使用BeanShell腳本(〜java)+任何json處理庫(例如json-rpc-1.0)實現JSON響應處理。

查找到下面的鏈接瞭解詳細信息/樣品/代碼:

+0

我想提取第一個空閒插槽,所以7:45。示例輸出在我的原始帖子中,但是在這裏它又是... {「7」:{「45」:1,「30」:1},「8」:{「45」:1,「30」: 1, 「15」:1, 「00」:1}, 「9」:{ 「45」:1, 「30」:1, 「15」:0, 「00」:1}, 「10」:{ 「45」:1, 「30」:1, 「15」:1, 「00」:1}}。 – chucknor