One of the common mistakes while using JMeter for performance testing is to forget copying required CSV file in proper location. This mistake may result in loss of time especially while running JMeter in non-GUI mode. However, we can stop JMeter test from further executing if required CSV file is not found. This post explains how we can achieve this.
This can be done programmatically using BeanShell Sampler. By placing simple BeanShell code at the beginning of JMeter script, we can stop JMeter test if CSV file is not present.
Let’s check out a simple example of loading Google home page in JMeter. When CSV file is not found in JMeter’s bin directory, the test will automatically stop. Follow below steps to simulate this example.
- Add BeanShell Sampler under Thread Group.
- Add below code in BeanShell Sampler which checks for presence of test.csv file in bin directory.
File csvFile = new File("test.csv");
- Add an HTTP Sampler for loading Google home page.
- Add View Result Tree listener to check script result.
- Now, run JMeter test with and without test.csv file in bin directory.
Test will be stopped when CSV file is not found. Test will be executed further if required CSV file is found in bin directory. You can also specify Response Data for BeanShell Sampler if CSV file is not found. Use below code for this purpose.
SampleResult.setResponseData("No CSV File under "+csvFile.getPath()+" directory.","UTF-8");
The output after adding the above code would look similar to the image below (Click on the image to enlarge it).
It is good practice to keep this check at the beginning of your JMeter script. This results in saving of execution time in case you forget putting required CSV file in proper location. Let us know how did you like this tip to stop JMeter test in case of failure.