Section 3 · Establishing a baseline

Checks validate per-request correctness while thresholds enforce whole-test pass/fail

Estimated time: 1 min

Two layers of validation

Checks vs thresholds side-by-side comparison

Checks: per-request correctness

Checks are assertions that validate each response. They don’t stop the test on failure.

JavaScript
check(res, {
  'status is 200': (r) => r.status === 200,
  'body is not empty': (r) => r.body.length > 0,
});

Thresholds: whole-test pass/fail

Thresholds are pass/fail criteria for the entire test. They evaluate aggregate metrics.

JavaScript
thresholds: {
  http_req_duration: ['p(95)<500'],
  http_req_failed: ['rate<0.01'],
  checks: ['rate>0.99'],
}

How they work together

LayerScopeOn failure
ChecksEach requestRecords failure, test continues
ThresholdsEntire testTest exits with non-zero code (fails CI/CD)