JMeter beanshell: Error al invocar el método bsh: eval al intentar borrar la cookie/caché.
Estoy intentando borrar las cookies y caché en medio de un grupo de hilos, para poder iniciar sesión en la aplicación de prueba con otro usuario. Escribí el siguiente código beanshell en JMeter.
import org.apache.jmeter.protocol.http.control.CookieManager;
CookieManager manager = ctx.getCurrentSampler().getProperty("HTTPSampler.cookie_manager").getObjectValue();
manager.clear();
Obtuve el siguiente error en los registros de mi JMeter.
Error al invocar el método bsh:eval
Archivo de origen: evaluación en línea de: "...import org.apache.jmeter.protocol.http.control.CookirManager;..." Error de análisis de token; error léxico en línea 3, columna 59. Encontrado: "\u201c" (8220), después de: ""
Intenté usar el postprocesador JSR223 para borrar la caché con el siguiente código:
sampler.getCacheManager().clear();
sampler.getCookieManager().clear();
Pero este código se comporta de forma global y comienza a borrar la caché y las cookies en cada muestreador durante el resto del script, lo cual está causando problemas de autenticación.
Por favor, avíseme si hay algún otro método para borrar la caché y las cookies en un muestreador o instancia específica.
¿Es necesario importar algún archivo .jar en JMeter para que esto funcione?
davy.ai
Solución:
Basándome en el mensaje de error y en tu código, parece que tienes un error de sintaxis en tu código de Beanshell. El error es causado por las comillas curvas (
“
y”
) que utilizaste alrededor deHTTPSampler.cookir_manager
, que debería serHTTPSampler.cookie_manager
en su lugar. Además, no es necesario la líneaObjectValue()
, por lo que puedes eliminarla.Aquí está el código de Beanshell corregido para limpiar las cookies y la caché:
En cuanto al problema con el procesador posterior de JSR223, puedes utilizarlo con una declaración condicional para limpiar las cookies y la caché solo para un muestreador específico. Aquí tienes un ejemplo de código:
Asegúrate de reemplazar
Nombre de tu muestreador
con el nombre real de tu muestreador.Por último, no es necesario importar ningún archivo
.jar
adicional para que estas funcionalidades funcionen en JMeter, ya que son funcionalidades incorporadas.