2016-08-23 178 views
0

由於我想自定義標題發送現場時間以獲得正確的響應,我試圖使用BSH Pre-processor設置標題,我看到正在創建的標題屬性和來自腳本的應用邏輯值也在工作,但是當我運行它時,它不會返回值。Beanshellpreprocessor JMeter問題,同時使用設置標題信息

在控制檯我也看到了問題控制檯

2016/08/23 07:10:05 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import org.apache.jmeter.protocol.http.control.Header; long fromtime = 14719164 . . . '' Token Parsing Error: Lexical error at line 14, column 3. Encountered: "a" (97), after : "\'s" 
2016/08/23 07:10:05 WARN - jmeter.modifiers.BeanShellPreProcessor: Problem in BeanShell script org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import org.apache.jmeter.protocol.http.control.Header; long fromtime = 14719164 . . . '' Token Parsing Error: Lexical error at line 14, column 3. Encountered: "a" (97), after : "\'s" 
2016/08/23 07:10:06 INFO - jmeter.util.BeanShellTestElement: To Time is ******1471916406355 
2016/08/23 07:10:06 INFO - jmeter.util.BeanShellTestElement: fromtime value is ******1471916406355 

我比較了工作的人的要求和它看起來完全平等的,但不工作。

請建議如果我做錯了什麼。

BSHPreprocessor可以如下發現:

import org.apache.jmeter.protocol.http.control.Header; 

long fromtime = ${__javaScript(Math.round(new Date().getTime()))}l; 
long ttt = 3599000l; 
long totime = fromtime + ttt; 

String strLong = Long.toString(fromtime); 
log.info("To Time is ******" + strLong); 
log.info("fromtime value is ******" + fromtime); 

sampler.getHeaderManager().add(new Header("to-time"," " +totime)); 
sampler.getHeaderManager().add(new Header("from-time"," " +strLong)); 

請幫助我儘早

回答

0

根據您的信息,什麼是錯的,在第14行,第3列

詞彙錯誤,在第14行第3列。遇到:「a」(97),在:「\」s「

你的腳本只包含12行,所以我不知道那裏有什麼失敗。我試了一下,它按預期工作。


在關於「儘快」解決辦法,因爲我們沒有足夠的傳心術猜測什麼是錯的腳本中缺失行,這裏是一個替代的解決方案。就我個人而言,我儘量避免使用腳本,並嘗試儘可能使用JMeter內置組件,因爲這些腳本引擎會導致一些開銷。

特別是在您的情況下,您可以只使用JMeter Functions__longSum()函數來完成您所需要的功能。

在您的HTTP頭管理器定義以下標題:

  1. from-time

    ${__javaScript(${__javaScript(Math.round(new Date().getTime()))},fromTime)} 
    
  2. to-time

    $ {__ longSum($ {fromTime},3599000,)}

Header Manager + Functions

查看__longSum()等JMeter的功能How to Use JMeter Functions用品系列的全面信息。