2012-07-26 52 views
8

Soy un absoluto novato aquí (JAVA), pasé horas buscando una solución, ahora solo quiero dispararme a mí mismo.
Quiero crear una cadena en la declaración beanshell que se coloca justo encima de la solicitud HTTP.JMeter usa la variable beanshell en HTTP Request

  • En el beanshell escribí:

    String docid="abcd"; 
    

    (en realidad Deseo concatenar una cadena con algunas variables)

  • En solicitud HTTP, enviar parámetros I Añadir ${docid}.

Respuesta

14

En BeanShell Assertion description section se pueden encontrar los siguientes:

vars - JMeterVariables - e.g. vars.get("VAR1"); vars.put("VAR2","value"); vars.putObject("OBJ1",new Object()); 
props - JMeterProperties (class java.util.Properties) - e.g. props.get("START.HMS"); props.put("PROP1","1234"); 

Así que para establecer la variable jmeter en beanshell código (BeanShell aserción muestreador en su caso) utilice la siguiente:

String docid = "abcd"; 
vars.put("docid",docid); 

o simplemente

vars.put("docid","abcd"); 

y luego puede referirlo como $ {docid}, como lo ha hecho en su solicitud HTTP.

+0

Muchas gracias por su ayuda !! Si no estoy preguntando demasiado, ¿cómo podré concatenar una variable en la afirmación de beanshell solamente? mi objetivo es ejecutar un ciclo y seguir concatenando la cadena. Estaba planeando ejecutar esta muestra en un controlador de bucle y concatenar la variable a sí mismo con pequeñas modificaciones con cada bucle ejecutar – Suyash

+0

Ignorar el comentario anterior, logré hacer concatenación y también bucle, pero de alguna manera no puedo pasar el valor de una muestra de habichuelas a otra. Probé vars.get ("varname") pero no funciona. solo funciona para las variables de tipo de solicitud http. – Suyash

+0

Hm. Intente utilizar [Debug Sampler] (http://jmeter.apache.org/usermanual/component_reference.html#Debug_Sampler) al menos para rastrear la variable problema entre los samplers de beanshell. Además, también puedes usar props.get/.put de la misma manera; quizás esto funcione mejor. –

0

Si necesita pasar valor de una cáscara de frijol muestreador a otro, debe usar variables.

vars.put("a", "something") 

En otra toma de muestras, debe tener algo como:

String otherSampler = vars.get("a") 

acerca de la depuración de Shell Samplers - No es tan fácil. Sugiero usar el objeto SampleResult. Cómo usarlo, puede ver aquí Debugging Bean Shell Sampler