0

I am running a distributed load test on the website where I fire an HTTP GET in order to download files. I have 1 Master and 5 Slaves. File sizes I am downloading are usually around 500 MB, I wanted to achieve this load test for up to 500 concurrent users downloading the data.

I am expanding the number of slaves and its memory as I increase the load. Is it the only option to achieve this??? I Doubt I am doing it right !!!

PS. The test will run in non-GUI mode,No listeners except one CSV to write the status of HTTP GET. attached a picture of how i distribute the load enter image description here

Butner
  • 81
  • 1
  • 9

1 Answers1

0

If you're not too interested in the response data integrity, i.e. you're not validating these 500MB files content, you can reconsider the approach and switch from JMeter's HTTP Request sampler to JSR223 Sampler

The minimal Groovy code to download the file and discard the response would be something like:

def client = org.apache.http.impl.client.HttpClientBuilder.create().build()
def get = new org.apache.http.client.methods.HttpGet('http://path/to/your/file')
def response = client.execute(get)
org.apache.http.util.EntityUtils.consume(response.getEntity())
Dmitri T
  • 159,985
  • 5
  • 83
  • 133
  • Thanks @dimitri. I ran a HTTP GET to download the same file using HTTP request and via JSR223 Sampler (Just one file as single user). I found that HTTP Request used memory upto 1169 mb to download a 250 mb file, whereas the JSR223 Sampler used memory upto 825 mb to download the same 250 mb file. so the gain of using JSR223 sampler over HTTP sampler is the memory consumption difference ? i.e. 825 mb usage instead of 1169 mb ?. – Butner Oct 28 '19 at 16:14