[INFRA-04] B2C 일주기 조회 곡선 (70%)
작업 내용 (설계 의도)
변경 사항
근거 TDD: ../TDD.md “곡선 배율표”·Testing Plan. FR-2. B2C 목표 TPS의 70%를 조회로 발생 — 소진성 자원을 소비하지 않아 곡선 안정성의 기반.
qa/load/k6/b2c-diurnal-read.js(신규) —ramping-arrival-rateexecutor,lib/diurnal.js#b2cReadStages(timeScale)(peak 2100). 조회 엔드포인트 가중 혼합:GET /facilities?gu&type(permitAll),GET /facilities/{fid}/slots,GET /products·/products/{id}·/products/popular,GET /events·/events/{id}.lib/pool.js#syntheticUserId로 X-User-Id.handleSummary(FR-8),thresholdsFor(...,"complexGet").
의존
- INFRA-01 (lib), INFRA-03 (synthetic 시드)
다이어그램
클래스 의존
flowchart LR Diurnal["lib/diurnal.js"] --> ReadScript["b2c-diurnal-read.js"] Pool["lib/pool.js"] --> ReadScript Gap["lib/gapreport.js"] --> ReadScript ReadScript --> Facilities["GET /facilities·/slots"] ReadScript --> Products["GET /products·/{id}"] ReadScript --> Events["GET /events·/{id}"]
테스트 케이스
k6 inspect b2c-diurnal-read.js가 시나리오·stage를 오류 없이 파싱한다(exit 0).- 압축(timeScale) 실행 시 조회 엔드포인트 3종이 가중 혼합으로 호출된다.
- 곡선 피크 구간의 도달 TPS가 목표 2100의 ±10% 이내다(10분 버킷 90%↑).
- 조회 응답 200이 아닌 5xx가 임계(errorRate) 이하다.
- 종료 시
results/b2c-read-gap.json에 달성률·병목이 기록된다.