load-testingartillery

arrivalRate lower than 1 using Artillery


I am trying to design load tests using Artillery on a computation-heavy API which typically requires at least a few seconds to send a response.

Starting from examples found in the docs, I was able to run some tests such as this one:

config:
  target: "https://example.com/api"
  phases:
    - duration: 60
      arrivalRate: 1
      name: Base case

I'd now like to send requests even slower (e.g. 1 every 5 seconds) but it seems that this cannot be done using the arrivalRate parameter. Is there any way to do it that the docs do not mention?

Thanks in advance !


Solution

  • How can I customize interval time of virtual user creation?

    You can do that with arrivalCount which spreads the creation of virtual users evenly over a period of time (whereas arrivalRate is always per-second). E.g.:

    config:
      phases:
        - duration: 60
          arrivalCount: 12