@n8n/n8n-benchmark
Version:
Cli for running benchmark tests for n8n
83 lines (82 loc) • 1.86 kB
TypeScript
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;
}
interface TrendMetric {
type: 'trend';
contains: 'time';
values: TrendValues;
}
interface RateMetric {
type: 'rate';
contains: 'default';
values: RateValues;
}
interface CounterMetric {
type: 'counter';
contains: MetricContains;
values: CounterValues;
}
interface Options {
summaryTrendStats: TrendStat[];
summaryTimeUnit: string;
noColor: boolean;
}
interface State {
isStdOutTTY: boolean;
isStdErrTTY: boolean;
testRunDurationMs: number;
}
interface Metrics {
http_req_tls_handshaking: TrendMetric;
checks: RateMetric;
http_req_sending: TrendMetric;
http_reqs: CounterMetric;
http_req_blocked: TrendMetric;
data_received: CounterMetric;
iterations: CounterMetric;
http_req_waiting: TrendMetric;
http_req_receiving: TrendMetric;
'http_req_duration{expected_response:true}': TrendMetric;
iteration_duration: TrendMetric;
http_req_connecting: TrendMetric;
http_req_failed: RateMetric;
http_req_duration: TrendMetric;
data_sent: CounterMetric;
}
interface Check {
name: string;
path: string;
id: string;
passes: number;
fails: number;
}
interface RootGroup {
name: string;
path: string;
id: string;
groups: any[];
checks: Check[];
}
interface K6EndOfTestSummary {
options: Options;
state: State;
metrics: Metrics;
root_group: RootGroup;
}