File: README.md

package info (click to toggle)
golang-github-sigstore-timestamp-authority 2.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 916 kB
  • sloc: makefile: 94; javascript: 63; sh: 47
file content (30 lines) | stat: -rw-r--r-- 1,147 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Timestamp Authority Load Test

`k6_load_test.js` is a [k6](https://k6.io) script for load testing a Timestamp
Authority service. The test sends a significant amount of requests to `/api/v1/timestamp`
and expects to receive a 201 response with a timestamp.

## Running the test

* Run a Timestamp Authority instance
* Configure the test scenario you want in test/loadtest/k6_load_test.js
* Install k6
* Run the test: `TIMESTAMP_URL=http://my.timestamp.url k6 run test/loadtest/k6_load_test.js`

## Running the test the easy way

`docker compose run --rm k6-loadtest`

This runs grafana/k6 container image and tests the timestamp-authority container image.

## Metrics and Thresholds

The test will fail if either of these conditions are met:
* The 95th percentile of request duration (`http_req_duration`) exceeds a limit
* The failure rate (`errors`) exceeds a set limit.

In addition an internal `latency` metric is measured.

These thresholds (and the default scenario configuration) are set to defaults where the
test comfortably passes `docker compose run --rm k6-loadtest` on a laptop: they should
be modified for load testing other setups.