In some cases, it is useful to retry a failed test after a brief wait, e.g.
- when testing availability, to ignore intermediate outages
- when testing a load balanced system backed by a replicated database, to account for replication lag
The mechanism should be built into the interations structure. interations consists of request/response pairs. Each such par have an additional field, retry, with the following fields:
- delay: how long to wait before retrying
- tries: maximum number of tries before failing
- backoff: a factor to multiply delay by after each try.
So delay:3, tries:4, backoff:2 would result in the following waiting periods before failure: 3, 6, and 12 seconds. Note that tries:1 means no retry, and there is no way to specify a delay before the first try (TBD: do we need/want that?).