Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Test] Redis 분산 락 검증 테스트 #7

Open
sdfgx123 opened this issue Nov 16, 2023 · 0 comments
Open

[Test] Redis 분산 락 검증 테스트 #7

sdfgx123 opened this issue Nov 16, 2023 · 0 comments
Assignees
Labels
test something that needs testing

Comments

@sdfgx123
Copy link
Owner

sdfgx123 commented Nov 16, 2023

[Test] Redis 분산 락 검증 테스트 | 최종 수정 : 231206

본 이슈의 목적은 출근 API에 구현된 분산 락에 대해 동시 INSERT 상황을 임의로 발생시키고, Redis 사용 시와 미사용 시의 결과를 비교하여 테스트하고 그 결과를 기록하기 위함임.

방법

  • JUnit5
  • assertThat

순서

  • 단일 유저 정상 작업 시도 및 종료 케이스 테스트
  • 동시성 테스트 : 다수의 스레드가 동일한 userId를 사용하여 Request 하는 경우 테스트
  • 예외 테스트 : Redis 락 획득 실패 또는 DB INSERT 중 예외 발생 시의 처리 테스트

진행상황

1. 분산 락 구현 완료된 상태에서 동시성 이슈 테스트

  • 테스트 메서드 : testStartWorkUsingRedisWithLock
  • 테스트 내용
    • 스레드 10개 생성
    • for문을 통해 출근 API 각 스레드에서 동시 호출
    • 스레드 하나만 Lock을 획득하고, 나머지 스레드는 모두 early return
    • 결과적으로 DB INSERT 한 번만 수행됐는지 assertThat을 통해 검증
  • 테스트 결과
    • 결과 : 성공
    • 응답시간 : 559ms

2. 분산 락 제거된 상태에서 동시성 이슈 테스트

@sdfgx123 sdfgx123 added the test something that needs testing label Nov 16, 2023
@sdfgx123 sdfgx123 self-assigned this Nov 16, 2023
sdfgx123 added a commit that referenced this issue Dec 6, 2023
[Test] Redis 분산 락 검증 테스트
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
test something that needs testing
Projects
None yet
Development

No branches or pull requests

1 participant