2
votes

I'm running tests with JMeter (master+10 slaves) on elasticasearch. I'm getting error 400 for some requests but they are a bit elusive:

  • When I run the requests manually with curl or pasting them on kibana's console, I don't get errors.
  • Every time I run the tests using jmeter, using the same requests and under the same conditions, I get a different number of errors.

So I was thinking of inspecting the response bodies from jmeter. But all the ways I've tried failed:

  • I've created a View Result Tree element and checked all boxes on the "configure" panel. When I run the script, it logs everything except response data
  • I've tried a BeanShell post processor to write all responses on a file. But it apparently is being 'ignored' when I run the script

Both these solutions work on my machine, but not on the server (which I don't have total control over). I'm passing jmeter.save.saveservice.response_data=true on the command line to start jmeter.

What else could I try?

2

2 Answers

2
votes

This is an optimization that JMeter makes for distributed testing related to the mode:

To avoid JMeter stripping the response data set in user.properties of servers snd controller:

mode=Batch

As by default it is:

mode=StrippedBatch

0
votes

By default JMeter slaves don't send response data to the master, you can choose a different sample sender if you need more data.

Writing response data into a file using Beanshell should work in any case (however consider using JSR223 Test Elements and Groovy for this), just make sure that:

  • your Beanshell PostProcessor is placed correctly according to JMeter Scoping Rules
  • there are no Beanshell-related messages in jmeter.log files
  • you will need to collect the log files from each slave manually after test run, they will not be generated on the master