2016-08-17 1 views
0

안녕하세요, jmeter에서 API 테스트를 위해 beanshell 스크립팅을하고 있습니다. 내가 beanshell 꽤 jmeter 스크립트를 작성했습니다 그리고 그것은 Integer.parseInt() 메서드 호출을 사용할 때 잘 작동하지만, 내 SQL은 20.00000의 값을 반환하고 내 Json 경로 추출기 20.0 가져옵니다 그래서 내 테스트가 실패하면 소수 값으로 값을 가지고 그것. 이 문제로 인해이 값을 String 대신 Double 변수로 비교하기로 결정했지만 BeanShell에서 Double.parseDouble을 사용할 때 오류가 발생합니다.Jmeter : 형식화 된 변수 선언 : 메서드 호출 Double.parseDouble

2016년 8월 17일 12시 48분 45초 ERROR - jmeter.util.BeanShellInterpreter : 오류 호출 BSH 방법 : 평가 전래 파일 : 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 변수의 값이 출력됩니다. 사람이으로 Beanshell 전문가가 그리고 나 오류를 식별하는 데 도움 수 있다면

enter image description here

, 그 멋진 것. 감사!

+0

'Double.parseDouble (vars.get ("Printer_Width_SQL_"+ i) .toString())과 같이 시도해보십시오. –

답변

2

숫자가 유효하지 않은 경우 Double (예 : 1.2s 또는 단지 null)이 예외가 발생합니다. 치료법 중 하나 값 is double by RegEx, 또는 단순히 trying to parse, and catching exception가 (당신이 예외를 확인해야합니다, 그래서 Beanhell가 제대로 예외를 통과하지 않습니다, 그래서 그 한 줄에 제한하는 것이 좋습니다) 것을 확인하고 있습니다 :

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"); 
}