Question

I've got a piece of regex which I've tested in JMeter using the regexp tester and it returns multiple results (10), which is what I'm expecting.

I'm using the Regular Expression Extractor to retrieve the values and I would like to write ALL of them to a CSV file. I'm using the Beanshell Post Processor but I am only aware of a method to write 1 value to file.

My script in Beanshell so far:

temp = vars.get("VALUES"); // VALUES is the Reference Name in regex extractor

FileWriter fstream = new FileWriter("c:\\downloads\\results.txt",true);
BufferedWriter out = new BufferedWriter(fstream);
out.write(temp);
out.close();

How can I write all the values found via the regex to file? Thanks.

Was it helpful?

Solution

If you'll look into Debug Sampler output, you'll see that VALUES will be a prefix.

Like

  • VALUES=...
  • VALUES_g=...
  • VALUES_g0=...
  • VALUES_g1=...

etc.

You can use ForEach Controller to iterate over them.

If you want to proceed with Beanshell - you'll need to iterate through all variables like:

    import java.io.FileOutputStream;
    import java.util.Map;
    import java.util.Set;

    FileOutputStream out = new FileOutputStream("c:\\downloads\\results.txt", true);
    String newline = System.getProperty("line.separator");
    Set variables = vars.entrySet();

    for (Map.Entry entry : variables) {
        if (entry.getKey().startsWith("VALUES")) {
            out.write(entry.getValue().toString().getBytes("UTF-8"));
            out.write(newline.getBytes("UTF-8"));
            out.flush();
        }
    }

    out.close();

OTHER TIPS

To write the contents of your values array into the file, the following code should work (untested):

String[] values = vars.get("VALUES");

FileWriter fstream = new FileWriter("c:\\downloads\\results.txt", true);
BufferedWriter out = new BufferedWriter(fstream);

for(int i = 0; i < values.length; i++)
{
   out.write(values[i]);
   out.newLine();
   out.flush();
}
out.close();
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top