java - postprocessor - Análisis cadena a entero en BeamShell Sampler en JMeter
jsr223 postprocessor (1)
Su código se ve bien, pero puede ser un problema con las currentPMCount
y / o pmViolationMaxCount
.
Si realmente se ven bien y se parecen a los enteros y no exceden los valores máximos / mínimos de Integer, puedes probar lo siguiente:
Asegúrese de que no haya caracteres de "espacio" alrededor del valor numérico, ya que el espacio inicial o posterior causará fallas de conversión. Quizás invocar el método
trim()
en la variable puede ayudar:int i = Integer.parseInt(vars.get("currentPMCount").trim());
- Si almacena su script en un archivo y luego proporciona la ruta al archivo en Beanshell Assertion obtendrá el número de línea "problemático"
Mi favorito: rodee su código en el bloque try / catch de la siguiente manera:
try{ //your code here } catch (Exception ex){ log.warn("Error in my script", ex); throw ex; // elsewise JMeter will "swallow" the above exception }
De esta forma obtendrás stacktrace más informativo en lugar de pésimo Error invoking bsh method
mensaje del Error invoking bsh method
que no dice nada.
Consulte Cómo utilizar BeanShell: la guía de componentes incorporada favorita de JMeter para obtener más consejos y trucos.
Estoy tratando de analizar una cadena en un entero en JMeter pero falló debido al siguiente error. Si intento imprimir las cadenas devueltas por vars.get, se ven bien.
2014/06/28 00:08:52 WARN - jmeter.assertions.BeanShellAssertion: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``if (ResponseCode != null && ResponseCode.equals ("200") == false ) { int i = In . . . '''' : Typed variable declaration : Method Invocation Integer.parseInt
El siguiente es mi código
if (ResponseCode != null && ResponseCode.equals ("200") == false )
{
int i = Integer.parseInt(vars.get("currentPMCount"));
int j = Integer.parseInt(vars.get("pmViolationMaxCount"));
if( i > j ){
log.warn("PM count on server is greater than max allowed count.");
}
log.warn( "The return code is " + ResponseCode); // this goes to the JMeter log file
}
else
{
Failure=true ;
FailureMessage = "The response data size was not as expected" ;
}