brew install go;
go install go.k6.io/xk6/cmd/xk6@latest
~/go/bin/xk6 build v0.49.0 \\\\n --with github.com/phymbert/xk6-sse@v0.1.12 \\\\n -o ./k6
현재 경로에 k6
라는 바이너리 파일이 생성된다.
테스트 스크립트
█ THRESHOLDS
latency
✓ 'p(95)<5000' p(95)=204
sse_conn_alive_ms
✓ 'p(95)<90000' p(95)=0
sse_connection_errors
✓ 'count<50' count=0
sse_open_ok
✓ 'rate>0.9' rate=100.00%
sse_stayed_full
✓ 'rate>0.85' rate=100.00%
█ TOTAL RESULTS
CUSTOM
latency..................: avg=90.072375 min=34 med=81 max=273 p(90)=137 p(95)=204
sse_conn_alive_ms........: avg=0 min=0 med=0 max=0 p(90)=0 p(95)=0
sse_event................: 6665 39.19006/s
sse_messages_received....: 8000 47.039832/s
sse_open_ok..............: 100.00% 8000 out of 8000
sse_sessions_completed...: 6665 39.19006/s
sse_stayed_full..........: 100.00% 7494 out of 7494
EXECUTION
vus......................: 128 min=48 max=8000
vus_max..................: 8000 min=8000 max=8000
NETWORK
data_received............: 3.9 MB 23 kB/s
data_sent................: 4.4 MB 26 kB/s
8,000명 SSE 연결에 성공하였다.
█ THRESHOLDS
latency
✓ 'p(95)<5000' p(95)=190
sse_conn_alive_ms
✓ 'p(95)<90000' p(95)=0
sse_connection_errors
✓ 'count<50' count=0
sse_open_ok
✓ 'rate>0.9' rate=0.00%
sse_stayed_full
✓ 'rate>0.85' rate=0.00%
█ TOTAL RESULTS
CUSTOM
latency..................: avg=62.712001 min=30 med=53 max=322 p(90)=77 p(95)=190
sse_conn_alive_ms........: avg=0 min=0 med=0 max=0 p(90)=0 p(95)=0
sse_connection_retries...: 1384 8.138818/s
sse_event................: 7497 44.087223/s
sse_messages_received....: 8191 48.168393/s
sse_open_ok..............: 0.00% 0 out of 0
sse_sessions_completed...: 7497 44.087223/s
sse_stayed_full..........: 0.00% 0 out of 0
HTTP
http_req_duration........: avg=14.83s min=14.82s med=14.83s max=14.85s p(90)=14.83s p(95)=14.84s
http_reqs................: 1384 8.138818/s
EXECUTION
vus......................: 152 min=48 max=9000
vus_max..................: 9000 min=9000 max=9000
NETWORK
data_received............: 4.0 MB 24 kB/s
data_sent................: 4.6 MB 27 kB/s