config:
target: "<http://test.booquiz.kro.kr>"
phases:
- duration: 1
arrivalRate: 5
defaults:
failureHandling:
continueOnFailure: true # 실패해도 다음 요청 실행
http:
headers:
Content-Type: "application/json"
cookies:
connect.sid: "s%3A1534215151sdfs.sdfadfsfsfs"
processor: "./artillery.processor.cjs" # 외부 processors 파일 경로
scenarios:
- name: "퀴즈 게임 플레이 시나리오"
flow:
# quizZoneId 생성 및 저장
- function: setQuizZoneId
# 퀴즈존 생성 및 세션 데이터 저장
- post:
url: "/api/quiz-zone"
json:
quizZoneId: "{{quizZoneId}}" # 생성된 quizZoneId를 요청에 포함
capture:
- header: "set-cookie" # 응답의 set-cookie 헤더 값을 추출
as: "sessionCookie"
# 디버깅: 캡처된 변수 확인
- function: logVariables
# 퀴즈존 정보 조회
- get:
url: "/api/quiz-zone/{{quizZoneId}}" # 생성된 quizZoneId를 사용
headers:
Cookie: "{{sessionCookie}}" # 캡처된 sessionCookie를 사용
http.request_rate: ............................................................. 790/sec http.requests: ................................................................. 790 vusers.created: ................................................................ 790 vusers.created_by_name.퀴즈 게임 플레이 시나리오: ......................................... 790
errors.ECONNRESET: ............................................................. 237 errors.ENOMEM: ................................................................. 1 http.codes.200: ................................................................ 881 http.codes.201: ................................................................ 1034 http.codes.404: ................................................................ 102 http.codes.500: ................................................................ 315 http.downloaded_bytes: ......................................................... 287786 http.request_rate: ............................................................. 566/sec http.requests: ................................................................. 5396 http.response_time: min: ......................................................................... 92 max: ......................................................................... 8983 mean: ........................................................................ 3439.7 median: ...................................................................... 2725 p95: ......................................................................... 8024.5 p99: ......................................................................... 8352 http.response_time.2xx: min: ......................................................................... 94 max: ......................................................................... 8982 mean: ........................................................................ 3630.3 median: ...................................................................... 3678.4 p95: ......................................................................... 7865.6 p99: ......................................................................... 8024.5 http.response_time.4xx: min: ......................................................................... 6772 max: ......................................................................... 8983 mean: ........................................................................ 8009.1 median: ...................................................................... 8024.5 p95: ......................................................................... 8868.4 p99: ......................................................................... 9047.6 http.response_time.5xx: min: ......................................................................... 92 max: ......................................................................... 8946 mean: ........................................................................ 801.7 median: ...................................................................... 252.2 p95: ......................................................................... 5487.5 p99: ......................................................................... 8024.5 http.responses: ................................................................ 2332 plugins.metrics-by-endpoint./api/quiz-zone.codes.201: .......................... 1034 plugins.metrics-by-endpoint./api/quiz-zone.codes.500: .......................... 152 plugins.metrics-by-endpoint./api/quiz-zone.errors.ECONNRESET: .................. 236 plugins.metrics-by-endpoint./api/quiz-zone.errors.ENOMEM: ...................... 1 plugins.metrics-by-endpoint./api/quiz-zone/{{ quizId }}.codes.200: ............. 881 plugins.metrics-by-endpoint./api/quiz-zone/{{ quizId }}.codes.404: ............. 102 plugins.metrics-by-endpoint./api/quiz-zone/{{ quizId }}.codes.500: ............. 163 plugins.metrics-by-endpoint./api/quiz-zone/{{ quizId }}.errors.ECONNRESET: ..... 1 plugins.metrics-by-endpoint.response_time./api/quiz-zone: min: ......................................................................... 171 max: ......................................................................... 8982 mean: ........................................................................ 5153.1 median: ...................................................................... 5598.4 p95: ......................................................................... 8024.5 p99: ......................................................................... 8024.5 plugins.metrics-by-endpoint.response_time./api/quiz-zone/{{ quizId }}: min: ......................................................................... 92 max: ......................................................................... 8983 mean: ........................................................................ 1666.6 median: ...................................................................... 1107.9 p95: ......................................................................... 8024.5 p99: ......................................................................... 8520.7 vusers.completed: .............................................................. 1146 vusers.created: ................................................................ 4210 vusers.created_by_name.퀴즈 게임 플레이 시나리오: ......................................... 4210 vusers.failed: ................................................................. 238 vusers.session_length: min: ......................................................................... 2929.2 max: ......................................................................... 9869 mean: ........................................................................ 7559.9 median: ...................................................................... 7117 p95: ......................................................................... 8868.4 p99: ......................................................................... 9416.8
errors.ETIMEDOUT: .............................................................. 3534 http.codes.200: ................................................................ 57 http.codes.201: ................................................................ 57 http.codes.404: ................................................................ 25 http.codes.500: ................................................................ 2 http.downloaded_bytes: ......................................................... 16873 http.request_rate: ............................................................. 16/sec http.requests: ................................................................. 59 http.response_time: min: ......................................................................... 171 max: ......................................................................... 9485 mean: ........................................................................ 2136.6 median: ...................................................................... 727.9 p95: ......................................................................... 9416.8 p99: ......................................................................... 9416.8 http.response_time.2xx: min: ......................................................................... 171 max: ......................................................................... 9485 mean: ........................................................................ 1441.8 median: ...................................................................... 713.5 p95: ......................................................................... 3134.5 p99: ......................................................................... 9416.8 http.response_time.4xx: min: ......................................................................... 300 max: ......................................................................... 9485 mean: ........................................................................ 5352.5 median: ...................................................................... 4676.2 p95: ......................................................................... 9416.8 p99: ......................................................................... 9416.8 http.response_time.5xx: min: ......................................................................... 1533 max: ......................................................................... 1548 mean: ........................................................................ 1540.5 median: ...................................................................... 1525.7 p95: ......................................................................... 1525.7 p99: ......................................................................... 1525.7 http.responses: ................................................................ 141 plugins.metrics-by-endpoint./api/quiz-zone.codes.201: .......................... 57 plugins.metrics-by-endpoint./api/quiz-zone.codes.500: .......................... 2 plugins.metrics-by-endpoint./api/quiz-zone.errors.ETIMEDOUT: ................... 3518 plugins.metrics-by-endpoint./api/quiz-zone/{{ quizId }}.codes.200: ............. 57 plugins.metrics-by-endpoint./api/quiz-zone/{{ quizId }}.codes.404: ............. 25 plugins.metrics-by-endpoint./api/quiz-zone/{{ quizId }}.errors.ETIMEDOUT: ...... 16 plugins.metrics-by-endpoint.response_time./api/quiz-zone: min: ......................................................................... 180 max: ......................................................................... 9485 mean: ........................................................................ 1610.4 median: ...................................................................... 327.1 p95: ......................................................................... 9416.8 p99: ......................................................................... 9416.8 plugins.metrics-by-endpoint.response_time./api/quiz-zone/{{ quizId }}: min: ......................................................................... 171 max: ......................................................................... 9485 mean: ........................................................................ 2515.2 median: ...................................................................... 727.9 p95: ......................................................................... 9416.8 p99: ......................................................................... 9416.8 vusers.completed: .............................................................. 82 vusers.failed: ................................................................. 3534 vusers.session_length: min: ......................................................................... 8910.3 max: ......................................................................... 14740.2 mean: ........................................................................ 11322 median: ...................................................................... 10617.5 p95: ......................................................................... 13497.6 p99: ......................................................................... 13770.3
All VUs finished. Total time: 17 seconds
errors.ECONNRESET: ............................................................. 237 errors.ENOMEM: ................................................................. 1 errors.ETIMEDOUT: .............................................................. 3534 http.codes.200: ................................................................ 938 http.codes.201: ................................................................ 1091 http.codes.404: ................................................................ 127 http.codes.500: ................................................................ 317 http.downloaded_bytes: ......................................................... 304659 http.request_rate: ............................................................. 457/sec http.requests: ................................................................. 6245 http.response_time: min: ......................................................................... 92 max: ......................................................................... 9485 mean: ........................................................................ 3365.4 median: ...................................................................... 2369 p95: ......................................................................... 8024.5 p99: ......................................................................... 8868.4 http.response_time.2xx: min: ......................................................................... 94 max: ......................................................................... 9485 mean: ........................................................................ 3507.3 median: ...................................................................... 2780 p95: ......................................................................... 7865.6 p99: ......................................................................... 8024.5 http.response_time.4xx: min: ......................................................................... 300 max: ......................................................................... 9485 mean: ........................................................................ 7486.1 median: ...................................................................... 8024.5 p95: ......................................................................... 9416.8 p99: ......................................................................... 9416.8 http.response_time.5xx: min: ......................................................................... 92 max: ......................................................................... 8946 mean: ........................................................................ 806.3 median: ...................................................................... 252.2 p95: ......................................................................... 5487.5 p99: ......................................................................... 8024.5 http.responses: ................................................................ 2473 plugins.metrics-by-endpoint./api/quiz-zone.codes.201: .......................... 1091 plugins.metrics-by-endpoint./api/quiz-zone.codes.500: .......................... 154 plugins.metrics-by-endpoint./api/quiz-zone.errors.ECONNRESET: .................. 236 plugins.metrics-by-endpoint./api/quiz-zone.errors.ENOMEM: ...................... 1 plugins.metrics-by-endpoint./api/quiz-zone.errors.ETIMEDOUT: ................... 3518 plugins.metrics-by-endpoint./api/quiz-zone/{{ quizId }}.codes.200: ............. 938 plugins.metrics-by-endpoint./api/quiz-zone/{{ quizId }}.codes.404: ............. 127 plugins.metrics-by-endpoint./api/quiz-zone/{{ quizId }}.codes.500: ............. 163 plugins.metrics-by-endpoint./api/quiz-zone/{{ quizId }}.errors.ECONNRESET: ..... 1 plugins.metrics-by-endpoint./api/quiz-zone/{{ quizId }}.errors.ETIMEDOUT: ...... 16 plugins.metrics-by-endpoint.response_time./api/quiz-zone: min: ......................................................................... 171 max: ......................................................................... 9485 mean: ........................................................................ 4985.2 median: ...................................................................... 5598.4 p95: ......................................................................... 8024.5 p99: ......................................................................... 8024.5 plugins.metrics-by-endpoint.response_time./api/quiz-zone/{{ quizId }}: min: ......................................................................... 92 max: ......................................................................... 9485 mean: ........................................................................ 1723.2 median: ...................................................................... 1107.9 p95: ......................................................................... 8024.5 p99: ......................................................................... 9047.6 vusers.completed: .............................................................. 1228 vusers.created: ................................................................ 5000 vusers.created_by_name.퀴즈 게임 플레이 시나리오: ......................................... 5000 vusers.failed: ................................................................. 3772 vusers.session_length: min: ......................................................................... 2929.2 max: ......................................................................... 14740.2 mean: ........................................................................ 7811.1 median: ...................................................................... 8024.5 p95: ......................................................................... 10407.3 p99: ......................................................................... 12968.3
config:
target: "<http://test.booquiz.kro.kr>"
plugins:
# ensuer: {}
# apdex: {}
metrics-by-endpoint: {} # 각 API 엔드포인트별 성능 측정
#ensure:
# p95: 200 # 95%의 요청이 200ms 이내 응답
# maxErrorRate: 1 # 최대 에러율 1%
phases:
- duration: 80
arrivalRate: 600
http:
headers:
Content-Type: "application/json"
cookies:
connect.sid: "s%3AYvwmJO7-YMU4RKd0F1HH223sdNvTsdsd.DvxqWsXW8gHoL6lLVTv6wHv9mgTHBGhHDSROPQPRsdP"
processor: "./function.cjs"
scenarios:
- name: "퀴즈 게임 플레이 시나리오"
flow:
- function: "setQuizId"
- capture:
as: "quizId"
json: "$.quizZoneId"
- post:
url: "/api/quiz-zone"
json:
quizZoneId: "{{ quizId }}"
- get:
url: "/api/quiz-zone/{{ quizId }}"
function.cjs
const setQuizId = (context, ee, next) => {
context.vars['quizId'] = Math.random().toString(36).substring(2, 10);
return next();
};
module.exports = {
setQuizId,
};