2024-08-23 06:59:19 -07:00
|
|
|
/**
|
|
|
|
Example JSON:
|
|
|
|
|
|
|
|
{
|
|
|
|
"options": {
|
|
|
|
"summaryTrendStats": ["avg", "min", "med", "max", "p(90)", "p(95)"],
|
|
|
|
"summaryTimeUnit": "",
|
|
|
|
"noColor": false
|
|
|
|
},
|
|
|
|
"state": { "isStdOutTTY": false, "isStdErrTTY": false, "testRunDurationMs": 23.374 },
|
|
|
|
"metrics": {
|
|
|
|
"http_req_tls_handshaking": {
|
|
|
|
"type": "trend",
|
|
|
|
"contains": "time",
|
|
|
|
"values": { "avg": 0, "min": 0, "med": 0, "max": 0, "p(90)": 0, "p(95)": 0 }
|
|
|
|
},
|
|
|
|
"checks": {
|
|
|
|
"type": "rate",
|
|
|
|
"contains": "default",
|
|
|
|
"values": { "rate": 1, "passes": 1, "fails": 0 }
|
|
|
|
},
|
|
|
|
"http_req_sending": {
|
|
|
|
"type": "trend",
|
|
|
|
"contains": "time",
|
|
|
|
"values": {
|
|
|
|
"p(90)": 0.512,
|
|
|
|
"p(95)": 0.512,
|
|
|
|
"avg": 0.512,
|
|
|
|
"min": 0.512,
|
|
|
|
"med": 0.512,
|
|
|
|
"max": 0.512
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"http_reqs": {
|
|
|
|
"contains": "default",
|
|
|
|
"values": { "count": 1, "rate": 42.78257893385813 },
|
|
|
|
"type": "counter"
|
|
|
|
},
|
|
|
|
"http_req_blocked": {
|
|
|
|
"contains": "time",
|
|
|
|
"values": {
|
|
|
|
"avg": 1.496,
|
|
|
|
"min": 1.496,
|
|
|
|
"med": 1.496,
|
|
|
|
"max": 1.496,
|
|
|
|
"p(90)": 1.496,
|
|
|
|
"p(95)": 1.496
|
|
|
|
},
|
|
|
|
"type": "trend"
|
|
|
|
},
|
|
|
|
"data_received": {
|
|
|
|
"type": "counter",
|
|
|
|
"contains": "data",
|
|
|
|
"values": { "count": 269, "rate": 11508.513733207838 }
|
|
|
|
},
|
|
|
|
"iterations": {
|
|
|
|
"type": "counter",
|
|
|
|
"contains": "default",
|
|
|
|
"values": { "count": 1, "rate": 42.78257893385813 }
|
|
|
|
},
|
|
|
|
"http_req_waiting": {
|
|
|
|
"type": "trend",
|
|
|
|
"contains": "time",
|
|
|
|
"values": {
|
|
|
|
"p(95)": 18.443,
|
|
|
|
"avg": 18.443,
|
|
|
|
"min": 18.443,
|
|
|
|
"med": 18.443,
|
|
|
|
"max": 18.443,
|
|
|
|
"p(90)": 18.443
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"http_req_receiving": {
|
|
|
|
"type": "trend",
|
|
|
|
"contains": "time",
|
|
|
|
"values": {
|
|
|
|
"avg": 0.186,
|
|
|
|
"min": 0.186,
|
|
|
|
"med": 0.186,
|
|
|
|
"max": 0.186,
|
|
|
|
"p(90)": 0.186,
|
|
|
|
"p(95)": 0.186
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"http_req_duration{expected_response:true}": {
|
|
|
|
"type": "trend",
|
|
|
|
"contains": "time",
|
|
|
|
"values": {
|
|
|
|
"max": 19.141,
|
|
|
|
"p(90)": 19.141,
|
|
|
|
"p(95)": 19.141,
|
|
|
|
"avg": 19.141,
|
|
|
|
"min": 19.141,
|
|
|
|
"med": 19.141
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"iteration_duration": {
|
|
|
|
"type": "trend",
|
|
|
|
"contains": "time",
|
|
|
|
"values": {
|
|
|
|
"avg": 22.577833,
|
|
|
|
"min": 22.577833,
|
|
|
|
"med": 22.577833,
|
|
|
|
"max": 22.577833,
|
|
|
|
"p(90)": 22.577833,
|
|
|
|
"p(95)": 22.577833
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"http_req_connecting": {
|
|
|
|
"type": "trend",
|
|
|
|
"contains": "time",
|
|
|
|
"values": {
|
|
|
|
"avg": 0.673,
|
|
|
|
"min": 0.673,
|
|
|
|
"med": 0.673,
|
|
|
|
"max": 0.673,
|
|
|
|
"p(90)": 0.673,
|
|
|
|
"p(95)": 0.673
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"http_req_failed": {
|
|
|
|
"type": "rate",
|
|
|
|
"contains": "default",
|
|
|
|
"values": { "rate": 0, "passes": 0, "fails": 1 }
|
|
|
|
},
|
|
|
|
"http_req_duration": {
|
|
|
|
"type": "trend",
|
|
|
|
"contains": "time",
|
|
|
|
"values": {
|
|
|
|
"p(90)": 19.141,
|
|
|
|
"p(95)": 19.141,
|
|
|
|
"avg": 19.141,
|
|
|
|
"min": 19.141,
|
|
|
|
"med": 19.141,
|
|
|
|
"max": 19.141
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"data_sent": {
|
|
|
|
"type": "counter",
|
|
|
|
"contains": "data",
|
|
|
|
"values": { "count": 102, "rate": 4363.82305125353 }
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"root_group": {
|
|
|
|
"name": "",
|
|
|
|
"path": "",
|
|
|
|
"id": "d41d8cd98f00b204e9800998ecf8427e",
|
|
|
|
"groups": [],
|
|
|
|
"checks": [
|
|
|
|
{
|
|
|
|
"name": "is status 200",
|
|
|
|
"path": "::is status 200",
|
|
|
|
"id": "548d37ca5f33793206f7832e7cea54fb",
|
|
|
|
"passes": 1,
|
|
|
|
"fails": 0
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
*/
|
|
|
|
|
|
|
|
type TrendStat = 'avg' | 'min' | 'med' | 'max' | 'p(90)' | 'p(95)';
|
|
|
|
type MetricType = 'trend' | 'rate' | 'counter';
|
|
|
|
type MetricContains = 'time' | 'default' | 'data';
|
|
|
|
|
|
|
|
interface TrendValues {
|
|
|
|
avg: number;
|
|
|
|
min: number;
|
|
|
|
med: number;
|
|
|
|
max: number;
|
|
|
|
'p(90)': number;
|
|
|
|
'p(95)': number;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface RateValues {
|
|
|
|
rate: number;
|
|
|
|
passes: number;
|
|
|
|
fails: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface CounterValues {
|
|
|
|
count: number;
|
|
|
|
rate: number;
|
|
|
|
}
|
|
|
|
|
2024-09-10 07:41:33 -07:00
|
|
|
interface K6TrendMetric {
|
2024-08-23 06:59:19 -07:00
|
|
|
type: 'trend';
|
|
|
|
contains: 'time';
|
|
|
|
values: TrendValues;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface RateMetric {
|
|
|
|
type: 'rate';
|
|
|
|
contains: 'default';
|
|
|
|
values: RateValues;
|
|
|
|
}
|
|
|
|
|
2024-09-10 07:41:33 -07:00
|
|
|
interface K6CounterMetric {
|
2024-08-23 06:59:19 -07:00
|
|
|
type: 'counter';
|
|
|
|
contains: MetricContains;
|
|
|
|
values: CounterValues;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface Options {
|
|
|
|
summaryTrendStats: TrendStat[];
|
|
|
|
summaryTimeUnit: string;
|
|
|
|
noColor: boolean;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface State {
|
|
|
|
isStdOutTTY: boolean;
|
|
|
|
isStdErrTTY: boolean;
|
|
|
|
testRunDurationMs: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface Metrics {
|
2024-09-10 07:41:33 -07:00
|
|
|
http_req_tls_handshaking: K6TrendMetric;
|
2024-08-23 06:59:19 -07:00
|
|
|
checks: RateMetric;
|
2024-09-10 07:41:33 -07:00
|
|
|
http_req_sending: K6TrendMetric;
|
|
|
|
http_reqs: K6CounterMetric;
|
|
|
|
http_req_blocked: K6TrendMetric;
|
|
|
|
data_received: K6CounterMetric;
|
|
|
|
iterations: K6CounterMetric;
|
|
|
|
http_req_waiting: K6TrendMetric;
|
|
|
|
http_req_receiving: K6TrendMetric;
|
|
|
|
'http_req_duration{expected_response:true}': K6TrendMetric;
|
|
|
|
iteration_duration: K6TrendMetric;
|
|
|
|
http_req_connecting: K6TrendMetric;
|
2024-08-23 06:59:19 -07:00
|
|
|
http_req_failed: RateMetric;
|
2024-09-10 07:41:33 -07:00
|
|
|
http_req_duration: K6TrendMetric;
|
|
|
|
data_sent: K6CounterMetric;
|
2024-08-23 06:59:19 -07:00
|
|
|
}
|
|
|
|
|
2024-09-10 07:41:33 -07:00
|
|
|
interface K6Check {
|
2024-08-23 06:59:19 -07:00
|
|
|
name: string;
|
|
|
|
path: string;
|
|
|
|
id: string;
|
|
|
|
passes: number;
|
|
|
|
fails: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface RootGroup {
|
|
|
|
name: string;
|
|
|
|
path: string;
|
|
|
|
id: string;
|
2024-09-09 23:25:41 -07:00
|
|
|
groups: unknown[];
|
2024-09-10 07:41:33 -07:00
|
|
|
checks: K6Check[];
|
2024-08-23 06:59:19 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
interface K6EndOfTestSummary {
|
|
|
|
options: Options;
|
|
|
|
state: State;
|
|
|
|
metrics: Metrics;
|
|
|
|
root_group: RootGroup;
|
|
|
|
}
|