1. Testing 시나리오 작성
1. 요구사항
- 공연 예매 신청(POST api/booking/:goodsId)을 다수의 유저가 동시 호출 시 SQL 데이터의 일관성이 지켜지는가?
데이터 일관성 ? (각 사용자가 일관된 데이터를 볼 수 있도록 하는것을 의미)
Ex) GoodsId가 1의 BookingLimit이 500일 때, Booking Table의 goodsid가 1인 row의 Count 수가 500개가 되어야 한다.
- User 수를 점진적으로 증가하면서 Test 진행
Ex) User수를 1,2,3,5,10.. 순차적으로 증가시키며 test 진행
<aside>
💡 Test시 가장 중요한 점
예매 수(Count)의 최대 한도가 BookingLimit와 일치해야 한다.
</aside>
2. Test 절차
- Test Source Code
- 공연 예매 신청 Logic
- Booking Table에 예약되어 있는 예매수를 Count Method로 확인
- goods Entity의 Bookinglimit을 확인
- Count 수가 BookingLimit보다 많은 경우
→ Error 처리 (’남는 좌석이 없습니다’)
- Count 수가 BookingLimit보다 적은 경우
→ 예매 진행
- 성공한 경우 성공 메세지 return
- API Version 1.0은 Transaction, Indexing을 설정하지 않은 상태
- Booking Table에 예약되어 있는 Count 수와 Goods Table의 bookingLimit를 비교하며 예매를 진행한다.
- Source Code
- Server, SQL 환경
- Server : AWS EC2 t2.micro, Docker 환경
- SQL : PostgreSQL, AWS EC2 t2.micro Docker 환경