How to pass data from one thread group to other in Jmeter.
I want to pass the “UserName” variable value from ThreadGroup1 to ThreadGroup 2. Jmeter property will be used to accomplish this.
In Thread Group 1, Add a Bean shell Post Processor and put below code
import org.apache.jmeter.util.JMeterUtils;
JMeterUtils.setProperty("NAME_VALUE", vars.get("UserName"));

In Thread Group2 use below line of code
${__property(NAME_VALUE)}

How to convert URL encode data into TEXT?
By using bean shell post processor element in Jmeter we can convert by using below code.
String Encoded_Data_Str = vars.get("URLEncodedData");
String Decoded_Data_Str = URLDecoder.decode(Encoded_Data_Str, "UTF-8");
log.info("************Decoded Data ="+Decoded_Data_Str);
vars.put("CsrfToken",decoded);

Custom Assertion in Jmeter – Bean Shell Assertion
Add a beanShell Assertion to request (Add->Assertions) and use below code to check the expected value with actual value fetched from the response of the request.
Expected_str = vars.get ("ActualValue");
If (! Expected_str.equals ("ExpectedValue")
{
Failure = true;
FaliureMessage = "Expected value is not matched with actual value";
}

How to write data stored in jmeter variable to a CSV file.
Use below lines of code inside a beanShell post processor to write the data into a CSV file.
FilePath = vars.get("C:\\Performance_Testing\\Test_Data\\Datafile.csv");
File TestDataFile = new File(FilePath);
if (!TestDataFile.exists()) {
SampleResult.setSuccessful(false);
SampleResult.setResponseMessage("Failed to find File");
SampleResult.setResponseData("FILE NOT FOUND: " + TestDataFile.getPath(),"UTF-8");
log.error("FILE NOT FOUND: " + TestDataFile.getPath());
IsSuccess=false;
SampleResult.setStopTestNow(true);
}
else
{
SampleResult.setResponseData("FILE FOUND: " + TestDataFile.getPath(),"UTF-8");
log.info("FILE FOUND: " + TestDataFile.getPath());
}
