2012-07-26 14 views
8

Sono un novellino assoluto qui (JAVA intendo), ho passato ore a cercare una soluzione, ora voglio solo spararmi.
Voglio creare una stringa nell'asserzione beanshell che si trova proprio sopra la richiesta HTTP.JMeter usa la variabile beanshell in HTTP Request

  • Nel BeanShell ho scritto:

    String docid="abcd"; 
    

    (in realtà desidero concatenare una stringa con alcune variabili)

  • Nel richiesta HTTP, inviare i parametri aggiungo ${docid}.

risposta

14

In BeanShell Assertion description section è possibile trovare il seguente:

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

Quindi, per impostare la variabile jmeter in BeanShell codice (BeanShell Asserzione campionatore nel tuo caso) utilizzare il seguente:

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

o semplicemente

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

e quindi puoi riferirlo a $ {docid}, come hai fatto nella tua richiesta HTTP.

+0

Grazie mille per il vostro aiuto !! Se non sto chiedendo troppo come sarò in grado di concatenare una variabile solo nell'asserzione di beanshell. il mio obiettivo è in realtà eseguire un ciclo e continuare a concatenare la stringa. Stavo progettando di eseguire questo campionatore in un controller di loop e concatenare la variabile a se stesso con piccole modifiche con ogni ciclo eseguito – Suyash

+0

Ignorare il commento sopra, sono riuscito a fare concatenazione e anche in loop, ma in qualche modo non sono in grado di passare il valore da un campionatore beanshell a un altro. ho provato il vars.get ("varname") ma non funziona. funziona solo per variabili di tipo http request. – Suyash

+0

Hm. Prova a utilizzare [Debug Sampler] (http://jmeter.apache.org/usermanual/component_reference.html#Debug_Sampler) almeno per tenere traccia della variabile problema tra i campionatori beanshell. Puoi anche usare props.get/.put nello stesso modo - forse funzionerà meglio. –

0

Se è necessario passare valore da un guscio di fagioli campionatore ad un altro, dovresti usare le variabili.

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

In altre campionatore, si dovrebbe avere qualcosa di simile:

String otherSampler = vars.get("a") 

sul debug Shell Campionatori - Non è così facile. Suggerisco di utilizzare l'oggetto SampleResult. Come si usa, si può vedere qui Debugging Bean Shell Sampler

Problemi correlati