1
votes

I'm trying to measure response throughput against concurrency for each of the REST APIs that are added into each sampler in a thread group. The Thread Group in my test plan is as follows

Thread Group

  1. 1st Sampler > HTTP POST /path to REST API/ > result > generates unique ID1 -> RegEx: ${uniqueId1}

1.1. Test Action with 10 seconds pause because POST could take some time to generate unique ID1

  1. 2nd sampler > HTTP GET /path to REST API/${uniqueId1} > result > generates unique ID2 -> RegEx: ${uniqueId2}

  2. 3rd sampler > HTTP GET /path to REST API/${uniqueId1}/${uniqueId2} > result > generates unique ID3 -> RegEx: ${uniqueId3}

  3. 4th sampler > HTTP GET /path to REST API/${uniqueId1}/${uniqueId2}/${uniqueId3}/data > result

As you see since each sampler is dependent on each other I have to add them into one Thread group and functional validation works fine without any issues.

But I need to measure response throughput for each of the REST APIs in each sampler. That means I need to run concurrent threads like 100 to 100K+ to measure throttling limit for each API response.

If I run the above thread group as it is with 10 threads and 5 loop count, each sampler is being waiting until down stream sampler is completed and hence throughput calculation varies because 10 threads are repeating 5 times based on 5 loop count.

So I'm trying to find a way to complete all the POSTs first whether threads count is 10 only or thread count is 10 with 5 loop count and collect all the ${uniqueId1} and pass it to all GET samplers so that POST sampler does not have to wait to complete remaining samplers.

Similarly ${uniqueId2} and ${uniqueId3} should follow the same process.

So is there any way to achieve this in Jmeter? An immediate answer would be much appreciated!

Thanks in advance

1

1 Answers

0
votes
  1. You don't need the Test Action sampler as JMeter waits for previous sampler completion prior to starting next one.
  2. If you want to run requests in parallel the most straightforward solution will be creating as many IDs as needed in setUp Thread Group and then run 4 normal Thread Groups representing your scenarios in parallel.

You can use JMeter Properties to pass the uniqueIDs values between Thread Groups, to wit:

See Knit One Pearl Two: How to Use Variables in Different Thread Groups article for example of sharing data between different Thread Groups