2017-08-17 2773 views
0

我有一個循環過程,將從Web服務(工作)中提取一些值並循環以提取每個值(工作)的所有信息。jmeter prev.getResponseDataAsString得到錯誤返回

我需要捕獲整個返回到一個變量,所以我可以修改它,並在以後發回。

截圖:

enter image description here

當「基線爲...」讓踢,我得到正確的響應

但「獲取響應」 BeanShell的預處理器撿舊響應

截圖:

enter image description here

考慮到我的「Get response」對象,我會假設: vars.put(「ResponceData」,prev.getResponseDataAsString());

...將獲取「$ {ID}的基線$ {callSite}」的響應。請幫忙!

回答

0

您正在使用錯誤的測試元素。 Beanshell預處理器正在執行之前的請求,因此它的行爲正常,並返回以前的請求,而不是當前的請求。您需要將其更改爲Beanshell PostProcessor,並且您的代碼將按照您的預期開始工作。


建議避免腳本如果可能的話,如果你需要響應數據保存到JMeter的變量,你可以使用即Regular Expression Extractor做到這一點。據How to Extract Data From Files With JMeter文章相關的配置將是這樣的:

  • 參考名稱:ResponceData
  • 正則表達式:(?S)(^ *)
  • 模板:$1$

    JMeter Regular Expression

如果您遇到無法工作的JMeter限制無需使用腳本編輯,確保您使用的是性能最好的腳本語言,因爲JMeter 3.1是recommended to use JSR223 Test Elements and Groovy language

+0

正則表達式提取器完美運行! – masonje