Jmeter: How to save variables to a file after getting the data using a regular expression extractor

Sometimes we need to export the JMeter runtime variables to a external file, for example, csv, txt.

Now, I provide a example that how to the variables to a external file after getting the data using a regular expression extractor.

Expected that you knows how to get data using regular expression extrator.

Variables of JMeter Runtime to save to external file

  1. Email: email_RegEx
  2. Token: token_RegEx

How to save the variables to external file

We can save the variables via BeanShell which is JMeter built-in component.

For more information about BeanShell, you can check it from JMeter official document (clike here) and others technical documents, like BlazeMeter(click here).

Where to add BeanShell step to export variable to a external file

  • Add BeanShell handler after Regular Expression Extractor

The tree of thread group similar as below:

Thread group
      |
      - Sampler
          |
          - Regular Expression Extractor
          - BeanShell
      - Other Samplers

Sample as my testing:

BeanShell Scripting

How to write BeanShell, please check the link below, in this article we will not relate to the scripting of BeanShell.

https://blazemeter.com/blog/queen-jmeters-built-componentshow-use-beanshell

BeanShell Script for saving variables to a external file

I just provide a sample that how to save the two variables that mention above to a external file.

Task list:

  • Save variables to a external file
  • Variables name: email_RegEx, token_RegEx
  • External file name: argList.csv
  • Output dirctory: /app/jmeter/test_data

Steps:

  1. Add a BeanShell processor after your Regular Expression Extractor. Named this processor in your prefered, no others set for the field of this processor.

  2. Scripting in script edit zone, and add the code below.

     // get variables from regular expression extractor 
     email = vars.get("uemail_RegEx");
     token = vars.get("token_RegEx");
    
     // pass true if want to append to existing file  
     // if want to overwrite, then don't pass the second argument
     FileWriter fstream = new FileWriter("/app/jmeter/test_data/argList.csv", true);
     BufferedWriter out = new BufferedWriter(fstream);
     out.write(email + "," + token);
     out.write(System.getProperty("line.separator"));
     out.close();
     fstream.close();
    

  3. Save the JMeter script, and run.
  4. Goto output directory /app/jmeter/test_data, you will find that the output file named argList.csv was created, and open it, the variables export were all here.

Please note that, in statement email = vars.get("uemail_RegEx");, the variable uemail_RegEx is the variable name that regular expression extract the data save to.

Enjoy it.