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

[chore] 선착순 이벤트 부하 테스트 관련 일부 수정 (#44) #45

Merged
merged 5 commits into from
Aug 12, 2024

Conversation

win-luck
Copy link
Collaborator

@win-luck win-luck commented Aug 11, 2024

#️⃣ 연관 이슈

📝 작업 내용

유효한 JWT 토큰을 더미 유저 기반으로 생성하고 이를 활용해 실제로 사용될 선착순 API의 성능을 검증하여 테스트의 신뢰성을 높이고자 했습니다.

또한, 정답을 맞히는 과정에서 일부 문자열 내부 공백으로 인해 오동작하는 문제가 있어 이를 trim()을 붙여 문제를 해결했습니다.

한편, 모든 구현체마다 Long -> toString()의 중복이 많아 이를 key 변수에 통합하고 관리하도록 수정했고, 로그 내용도 통일했습니다.

마지막으로, JMeter에서 부하 테스트를 할 때는 반드시 CLI로 실행할 것을 강력히 권장하고 있어, 존재해 기존의 GUI 방식에서 CLI를 통해 실행하는 것으로 선회했습니다. 이 과정에서 GUI와 달리 에러 비율이 나타나는 것을 확인할 수 있었습니다. 개인적으로 CLI의 스레드 투입 수가 GUI보다 빠른 것이 아닐까 추측 중입니다.

총 10회의 테스트를 자동으로 1분 간격으로 수행하고 아래와 같은 형태로 로그를 자동 출력하여 평균치 계산을 수월하게 만드는 test.sh를 작성하여 테스트를 실행하고 기록하는 동안 다른 작업에 집중할 수 있게 하여 생산성을 높이고자 했습니다.

image
  • 내부 공백으로 인해 judgeAnswer가 의도대로 동작하지 않는 버그 수정
  • FcfsService 구현체마다 남용되는 toString() 제거
  • 일관된 로그 작성
  • Default ServiceImpl을 RedisLuaService로 지정
  • 더미 유저 정보 입력하여 JWT 토큰 추출하고 csv로 저장하는 Python 모듈 작성
  • 부하 테스트 10회를 자동으로 수행하고 로그를 기록하는 쉘 스크립트 test.sh 작성
  • Apache Jmeter로 실제 사용될 API 엔드포인트로 부하 테스트 실행하고 기록

참고 이미지 및 자료

Team AwesomeOrange 선착순 이벤트 구현방안 및 성능 보고서

💬 리뷰 요구사항

@win-luck win-luck added fix 버그 및 오류 수정 chore 개발과 직접적인 관련이 없음 labels Aug 11, 2024
@win-luck win-luck requested a review from blaxsior August 11, 2024 13:33
@win-luck win-luck self-assigned this Aug 11, 2024
@win-luck win-luck linked an issue Aug 11, 2024 that may be closed by this pull request
6 tasks
Copy link
Collaborator

@blaxsior blaxsior left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

eventSequence 타입 전환 위치를 한 군데로 합쳐놓은 것이 좋은 것 같습니다.

여러가지 논의 방안 중 lua script 방식의 경우 redis 수준에서 단일 연산으로 취급되기 때문에 일관성을 지키기 좋은 것 같습니다. 부하 테스트 고생하셨습니다.

@win-luck win-luck merged commit 0335042 into dev Aug 12, 2024
1 check passed
@win-luck win-luck deleted the feature/44-fix-test branch August 13, 2024 03:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chore 개발과 직접적인 관련이 없음 fix 버그 및 오류 수정
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[chore] 선착순 이벤트 부하 테스트 관련 일부 수정 (#44)
2 participants