簡體   English   中英

Beanshell Sampler JMeter中用於解析RegularExpressionExtractor的錯誤

[英]Error in Beanshell Sampler JMeter for parsing RegularExpressionExtractor

在jar文件中設置以下示例結果

mySampleResult.setResponseData("ReturnCode" + returnCode + "EndReturnCode" ,null);

將jar文件復制到JMeter lib/ext中。

創建一個項目,其中將Regular expression extractor附加到java請求,該請求在jar文件中調用runtest

響應字符串在下面

ReturnCodeThu Feb 16 08:01:56 GMT 2017,Thu Feb 16 09:09:27 GMT 2017,0:1:7:31,98.74105EndReturnCode

正則表達式提取器

Reference Name: returnValue
Regular Expression: ReturnCode(.*?)EndReturnCode

Beanshell代碼

 ${returnValue}

Beanshell錯誤

Response message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval  In file: inline evaluation of: ``  try {     Thu Feb 16 08:01:56 GMT 2017,Thu Feb 16 09:09:27 GMT 2017,0:1:7:31,9 . . . '' Encountered "16" at line 4, column 13.

請讓我知道為什么我會收到此錯誤。

如果只想將值打印到JMeter日志文件,請使用log.info方法並使用vars.get

BeanShell代碼:

log.info("returnValue " + vars.get("returnValue"));

您的${returnValue}語句在語法上是不正確的,您至少需要用"${returnValue}"這樣的引號引起來,以便Beanshell解釋器將其視為Java字符串。

展望未來,僅將此語句放入Beanshell Sampler並沒有任何意義,您應該添加一些進一步的處理,即:

  • return "${returnValue}"; -將Beanshell Sampler結果設置為此值
  • SampleResult.setResponseData("${returnValue}".getBytes()); -與上述相同,但使用SampleResult速記
  • print("${returnValue}"); -將值輸出到STDOUT
  • log.info("${returnValue}"); -將值輸出到jmeter.log文件

有關在JMeter腳本中使用Beanshell的更多信息,請參見如何使用BeanShell:JMeter的最喜歡的內置組件

從Beanshell訪問JMeter變量的方式與您的設想有所不同。

您將使用內置的“ vars” Beanshell對象(或變量,如果願意的話)。

whatsActuallyReturned = vars.get("returnValue");
vars.put("returnValue", "whatever I want to put instead");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM