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 Extractor.

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 and others technical documents, like BlazeMeter.

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:

The tree of thread group

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 PostProcessor after your Regular Expression Extractor.
    Named this processor as your prefered, no others set for the field of this processor.
BeanShell PostProcessor
  1. 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();
    
Script
  1. Save the JMeter script, and run.
  2. 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.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容