The use of BeanShell
In this introduction, the use of BeanShell preprocessor, other beahshell can be analogous. In this we use the Beahshell call ourselves to write the tool class, the tool class implements the password encryption, decryption function:
1, write the code in Eclipse, and then make the class into a jar package (right-click on the class->export->jar file)
2. Put the jar package into the JMeter directory \apache-jmeter-2.13\lib\ext
3. Open JMeter, add an HTTP sampler (call Login interface), add a BeanShell under sampler preprocessor
4, in BeanShell Preprocessor import our jar package, call inside the Add, solve the password method, the results are stored in the JMeter variable, the following two methods are the most commonly used in BeanShell:
- Vars.get (String paramstr): Get variable Value
- Vars.put (String key,string value): To save the data to the JMeter variable
Import com.pingan.ff.account.user.utils.*;//Encryption System.out.println ("* * * * * * * * * * * * * *); String password = "123123"; String encode = securityutils.getkey (password);//Invoke the method in the tool class to encrypt System.out.println ("Set my Encode"); Vars.put ("Encode" , encode);//Save the value to the JMeter variable encode string getencode=vars.get ("encode"); System.out.println ("Get my Encode:" + getencode);
5, the encrypted password is stored in the JMeter variable, and then in the HTTP sampler can be used through ${encode}:
6. Execute script:
Four, Bean shell common built-in variables
JMeter has built-in variables in its BeanShell that allow users to interact with JMeter, the main variables and how to use them as follows:
Log: Write information to Jmeber.log file, using method: Log.info ("This is log info!");
CTX: This variable refers to the context of the current thread and is used in the following way: Org.apache.jmeter.threads.JMeterContext.
VARs -(jmetervariables): Manipulate the JMeter variable, which actually refers to the local variable container in the JMeter thread (essentially map), which is a bridge between test cases and BeanShell interaction, common methods:
A) Vars.get (String key): Gets the value of the variable from the JMeter
b) Vars.put (String key,string value): Data is stored in the JMeter variable
More ways to see: org.apache.jmeter.threads.JMeterVariables
Props -(Jmeterproperties-class java.util.Properties): Manipulate the JMeter property, which references the configuration information of JMeter, can get the properties of JMeter, It is used in a similar way to VARs, but it can only be put in a string type value, not an object. Corresponds to Java.util.Properties.
A) Props.get ("START. HMS "); Note: Start.hms is a property name, defined in file jmeter.properties
b) Props.put ("PROP1", "1234");
A) getresponsedataasstring (): Get response information
b) Getresponsecode (): Get Response code
More ways to see: Org.apache.jmeter.samplers.SampleResult
Action variables: variables can be accessed by using the bean shell built-in object VARs
A) vars.get ("name"): Gets the value of the variable from the JMeter
b) vars.put ("Key", "value"): Data stored in the JMeter variable
Action Properties: properties can be accessed by using the bean shell built-in object props
A) Props.get ("START. HMS "); Note: Start.hms is a property name, defined in file jmeter.properties
b) Props.put ("PROP1", "1234");
To reference an external jar package:
The above four or five describes how to reference external Java and class files, if the file is a long way we can make them into a jar package and then call in Jemter, how to use can be seen in my previous article has introduced: JMeter Bean Shell Use (a).
One thing to add here is the way the jar is introduced in JMeter:
1, the previous article has been used: put the jar package in the JMeter directory \apache-jmeter-2.13\lib\ext
2. Add the jar packages that need to be referenced directly at the bottom of the test plan's right panel, such as:
Vii. Other uses:
1. Define the following three variables in test plan:
2. The Bean shell can be scripted as follows:
A, bean shell can accept incoming parameters, such as: ${u1} ${U2} ${u3}
b, parameters can be extracted by bsh.args[] sequentially
c, the bean shell provides a built-in variable parameters to hold the collection of parameters
3. Operation Result:
In 1, enter these two sentence settings:
Responsecode = 500;
Responsemessage = "This is a test";
In 2, enter these two sentence settings:
Log.info (Parameters);
Log.info (Label);
Use of the JMeter Bean Shell (ii)