En JMETER tenemos la posibilidad de ejecutar scripts BeanShell localizados en ficheros externos.
Por ejemplo, en la asignación de una variable de usuario en un módulo de pre-procesamiento, puedo querer asignarle el resultado de un script BeanShell localizado en un fichero "fichero.bsh".
Para probarlos desde la consola de comandos podemos ejecutar el siguiente comando:
java -cp rutaBaseDeLaInstalacionDeJmeter/lib/bsh-2.0b5.jar bsh.Interpreter ficheroScriptBeanShell.bsh
Creo que si se tiene instalado el intérprete bsh, también podemos ejecutar directamente:
bsh ficheroScriptBeanShell.bsh
Referencia desde Jmeter
¡Importante!: La ruta relativa del fichero con el script, debe ser relativa al directorio del script que ha invocado jmeter. Si he ejecutado directamente dirJmeter/bin/jmeter.bsh o dirJmeter/bin/jmeter.bat, entonces la ruta deberá ser relativa a dirJmeter/bin/. Y si he invocado el script rutaMiScript/miScript.sh que a su vez internamente ha llamado al dirJmeter/bin/jmeter.sh, entonces la ruta del fichero con el script BeanShell que ponga dentro de Jmeter tendrá que ser relativa a rutaMiScript/.
En caso de que queramos asignarle a la variable el resultado de ejecutar todo el fichero con el script BeanShell tendríamos, dentro de JMeter, la asignación siguiente:
MI_VARIABLE --> ${__BeanShell(source("rutaFichero/ficheroScriptBeanShell.bsh");)}
También podemos, en vez de ejecutar todo el fichero, invocar un método concreto. Para ello, primero incluimos el script con la misma invocación que en el caso anterior y luego a continuación invocamos el método-
¡Importante! La llamada al método del script de BeanShell debe tener escapadas las comas.
MI_VARIABLE --> ${__BeanShell(source("../wsPlans/ficheroScriptBeanShell.bsh");miMetodo("parametroTextoA"\,"parametroTextoB"\,3\,"parametroTextoC");)}