Guide

Race conditions

plan OneCouponOnly {
  concurrently 5 {
    sync "go"
    run redeemCoupon with code = "WELCOME"
    share lastActor = actor
  }

  expect count(results, r => r.status == 200) == 1, "two actors redeemed the same coupon"
}

concurrently N starts actors together, sync "label" lines them up on the same instant, share passes a value between them, and results holds what every actor got. actor is the number of the actor inside the block.

A report of five actors firing together, each one a lane on the same clock
A report of five actors firing together, each one a lane on the same clock

Back: Load tests Next: WebSockets, GraphQL and WebRTC