[INFRA-06] B2B 일주기 곡선 (peak 100TPS, 1000건/일)

작업 내용 (설계 의도)

변경 사항

근거 TDD: ../TDD.md “형제 과제 접점”(②). FR-4. ② partner 인증으로 상품·티켓 등록을 지속 발생, 하루 누적 1000건↑ 보장.

  • qa/load/k6/b2b-diurnal.js(신규) — ramping-arrival-rate, b2bStages(timeScale)(peak 100). lib/pool.js#partnerAuthHeaders()Bearer partner_<keyId>_<random>(전 VU 공유, 재발급 없음). 등록 혼합: POST /api/goods-seller/products(GOODS_SELLER 역할 경유), POST /api/event-host/events(EVENT_HOST). handleSummary로 누적 등록 건수 집계.

의존

  • INFRA-01 (lib), INFRA-03 (synthetic 파트너 키). 런타임 선행: ② 배포.

다이어그램

클래스 의존

flowchart LR
    Diurnal["lib/diurnal.js"] --> B2B["b2b-diurnal.js"]
    Pool["lib/pool.js#partnerAuthHeaders"] --> B2B
    B2B --> Products["POST /api/goods-seller/products"]
    B2B --> Events["POST /api/event-host/events"]

테스트 케이스

  • k6 inspect가 B2B 시나리오를 오류 없이 파싱한다.
  • partner API Key 헤더가 전 VU에 공유되어 재인증 없이 재사용된다(FR-9).
  • 곡선 피크 도달 TPS가 목표 100의 ±10% 이내다.
  • 압축 실행에서 누적 등록 건수를 하루 환산 시 1000건 이상이 된다.
  • 무효/폐기 키면 401이 반환되고 5xx로 집계되지 않는다.