2016-08-17 10 views
0

ちょっと、私はjmeterでAPIテストのためにいくつかのbeanshellスクリプティングをやっています。私はbeanshellでいくつかのjmeterスクリプトを書いていますが、Integer.parseInt()メソッド呼び出しを使用するとうまくいきますが、私のSQLが20.00000の値を返す小数点以下の値を持っています。それ。この問題のため、この値をStringの代わりにdouble変数として比較することにしましたが、BeanShellでDouble.parseDoubleを使用するとエラーが発生します。Jmeter:型付き変数宣言:メソッド呼び出しDouble.parseDouble

2016年8月17日12時48分45秒ERROR - jmeter.util.BeanShellInterpreter:エラー呼び出しBSH方法:evalのソースとなるファイル:print("Width Assertion..."); int Total_Printers_SQL = Integer.parseInt(vars.get . . . ''::のインライン評価型付けされた変数宣言:メソッド呼び出しDouble.parseDouble

2016/08/17 12:48:45 WARN - jmeter.assertions.BeanShellAssertion:org.apache.jorphan.util.JMeterException:bshメソッドを呼び出すエラー:evalソースファイル:インライン評価:print("Width Assertion..."); int Total_Printers_SQL = Integer.parseInt(vars.get . . . '':型付き変数の宣言:メソッド呼び出しDouble.parseDouble

エラーが発生しても下記のようにJmeterプロンプトにdouble変数の値が表示されます。

enter image description here

誰でもBeanShellの専門家だと私はエラーの特定に役立つことができれば、それは素晴らしいことです。ありがとう!

+0

'Double.parseDouble(vars.get(" Printer_Width_SQL_ "+ i).toString())で試してみてください。 –

答えて

2

数字が有効なDouble(たとえば1.2s、またはちょうどnull)でない場合、そのような例外が発生します。治療法は、(あなたが任意の例外をチェックする必要がありますので、それは1行に制限した方が良いですのでBeanhellは、適切な例外を渡さないことに注意してください)、その値がis double by RegEx、または単にtrying to parse, and catching exceptionをチェックして、次のいずれか

double x = 0.0; // default value 
String value = vars.get("myVar"); 
try 
{ 
    x = Double.parseDouble(value); 
} 
catch(Exception e) 
{ 
    log.info("Cannot parse " + value + " as double"); 
} 
関連する問題