fix: resolve k6 loadtest data path
This commit is contained in:
@@ -95,17 +95,29 @@ K6 脚本默认只跑公开列表接口;传入 `AUTH_TOKEN` 后会额外跑需
|
|||||||
npm run dev
|
npm run dev
|
||||||
```
|
```
|
||||||
|
|
||||||
注意端口可能漂移。以启动日志中的实际 api-server 端口为准,然后传给 K6:
|
注意端口可能漂移。以启动日志中的实际 api-server 端口为准,然后传给 K6。
|
||||||
|
|
||||||
|
注意:K6 的 `open()` 会按 `k6-works-list.js` 所在目录解析相对路径,因此 `WORKS_DATA` 应写成 `data/works-list.local.json`,不要写成 `scripts/loadtest/data/works-list.local.json`。
|
||||||
|
|
||||||
|
Bash / Git Bash:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
BASE_URL=http://127.0.0.1:<actual-api-port> npm run loadtest:k6:works -- --summary-trend-stats="avg,min,med,p(90),p(95),p(99),max"
|
BASE_URL=http://127.0.0.1:<actual-api-port> WORKS_DATA=data/works-list.local.json npm run loadtest:k6:works -- --summary-trend-stats="avg,min,med,p(90),p(95),p(99),max"
|
||||||
|
```
|
||||||
|
|
||||||
|
PowerShell:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
$env:BASE_URL="http://127.0.0.1:<actual-api-port>"
|
||||||
|
$env:WORKS_DATA="data/works-list.local.json"
|
||||||
|
npm run loadtest:k6:works -- --summary-trend-stats="avg,min,med,p(90),p(95),p(99),max"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Smoke
|
## Smoke
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
BASE_URL=http://127.0.0.1:8787 \
|
BASE_URL=http://127.0.0.1:8787 \
|
||||||
WORKS_DATA=scripts/loadtest/data/works-list.local.json \
|
WORKS_DATA=data/works-list.local.json \
|
||||||
SCENARIO=smoke \
|
SCENARIO=smoke \
|
||||||
DETAIL_RATIO=0 \
|
DETAIL_RATIO=0 \
|
||||||
npm run loadtest:k6:works
|
npm run loadtest:k6:works
|
||||||
@@ -117,7 +129,7 @@ npm run loadtest:k6:works
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
BASE_URL=http://127.0.0.1:8787 \
|
BASE_URL=http://127.0.0.1:8787 \
|
||||||
WORKS_DATA=scripts/loadtest/data/works-list.local.json \
|
WORKS_DATA=data/works-list.local.json \
|
||||||
SCENARIO=baseline \
|
SCENARIO=baseline \
|
||||||
VUS=10 \
|
VUS=10 \
|
||||||
DURATION=3m \
|
DURATION=3m \
|
||||||
@@ -136,7 +148,7 @@ npm run loadtest:k6:works
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
BASE_URL=http://127.0.0.1:8787 \
|
BASE_URL=http://127.0.0.1:8787 \
|
||||||
WORKS_DATA=scripts/loadtest/data/works-list.local.json \
|
WORKS_DATA=data/works-list.local.json \
|
||||||
SCENARIO=spike \
|
SCENARIO=spike \
|
||||||
START_RPS=5 \
|
START_RPS=5 \
|
||||||
PEAK_RPS=100 \
|
PEAK_RPS=100 \
|
||||||
@@ -171,7 +183,7 @@ npm run loadtest:k6:works
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
BASE_URL=http://127.0.0.1:8787 \
|
BASE_URL=http://127.0.0.1:8787 \
|
||||||
WORKS_DATA=scripts/loadtest/data/works-list.local.json \
|
WORKS_DATA=data/works-list.local.json \
|
||||||
SCENARIO=smoke \
|
SCENARIO=smoke \
|
||||||
DETAIL_RATIO=0.35 \
|
DETAIL_RATIO=0.35 \
|
||||||
npm run loadtest:k6:works
|
npm run loadtest:k6:works
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ import { SharedArray } from 'k6/data';
|
|||||||
import http from 'k6/http';
|
import http from 'k6/http';
|
||||||
import { Rate, Trend } from 'k6/metrics';
|
import { Rate, Trend } from 'k6/metrics';
|
||||||
|
|
||||||
const DEFAULT_WORKS_DATA = 'scripts/loadtest/data/works-list.local.json';
|
// k6 resolves open() paths relative to this script file, not the shell cwd.
|
||||||
|
const DEFAULT_WORKS_DATA = 'data/works-list.local.json';
|
||||||
const WORKS_DATA = __ENV.WORKS_DATA || DEFAULT_WORKS_DATA;
|
const WORKS_DATA = __ENV.WORKS_DATA || DEFAULT_WORKS_DATA;
|
||||||
const BASE_URL = (__ENV.BASE_URL || 'http://127.0.0.1:8787').replace(/\/+$/u, '');
|
const BASE_URL = (__ENV.BASE_URL || 'http://127.0.0.1:8787').replace(/\/+$/u, '');
|
||||||
const AUTH_TOKEN = __ENV.AUTH_TOKEN || '';
|
const AUTH_TOKEN = __ENV.AUTH_TOKEN || '';
|
||||||
|
|||||||
Reference in New Issue
Block a user