2017-06-13 111 views
0

我正在使用JSON提取器來解析響應,但有時響應會在給定索引中返回一個空值,那時候我想確保我們移動到另一個索引以獲取正確的值。如何確保JSON提取器總是從響應中獲得正確的值?

例如,我的JSON路徑表達式是

$.CM[0].id 

當應用程序返回的0指數爲空值,那個時候我得到這是在JSON提取提及的默認值,而不是我要的是每當我的腳本返回空值對於0索引,腳本應該搜索下一個索引中的值,即1。因此,當$ .CM [0] .id未能獲取該值時,應用程序應該搜索$ .CM [1] .id並獲取響應。

我應該怎麼做?我應該使用某種bean shell腳本,還是應該嘗試使用控制器?

回答

1

我建議切換到JSR223 PostProcessorGroovy語言。

  1. 添加JSR223 PostProcessor中作爲返回JSON響應
  2. 將下面的代碼爲「腳本」區域的請求的小孩:

    def ids = new groovy.json.JsonSlurper().parse(prev.getResponseData()).CM.ID 
    
    ids.eachWithIndex { id, i -> 
        log.info('Trying id: ' + i) 
        if (id.size() > 0) { 
         log.info('Found non-empty ID: ' + id) 
         vars.put('ID', id) 
         return true 
        } 
    } 
    
  3. 上面的代碼就會把一個非空ID值(如果有的話)輸入到ID JMeter變量中,您將能夠在需要時將提取的值作爲${ID}${__V(ID)}

參考文獻:

相關問題