mirror of
https://github.com/ktds-dg0501/kt-event-marketing.git
synced 2025-12-06 14:06:23 +00:00
48 lines
2.7 KiB
Markdown
48 lines
2.7 KiB
Markdown
# 백엔드 테스트 가이드
|
|
|
|
[요청사항]
|
|
- <테스트원칙>을 준용하여 수행
|
|
- <테스트순서>에 따라 수행
|
|
- [결과파일] 안내에 따라 파일 작성
|
|
|
|
[가이드]
|
|
<테스트원칙>
|
|
- 설정 Manifest(src/main/resources/application*.yml)의 각 항목의 값은 하드코딩하지 않고 환경변수 처리
|
|
- Kubernetes에 배포된 데이터베이스는 LoadBalacer유형의 Service를 만들어 연결
|
|
<테스트순서>
|
|
- 준비:
|
|
- 설정 Manifest(src/main/resources/application*.yml)와 실행 프로파일({service-name}.run.xml 내부에 있음)의 일치여부 검사 및 수정
|
|
- 실행:
|
|
- 'curl'명령을 이용한 테스트 및 오류 수정
|
|
- 서비스 의존관계를 고려하여 테스트 순서 결정
|
|
- 순서에 따라 순차적으로 각 서비스의 Controller에서 API 스펙 확인 후 API 테스트
|
|
- API경로와 DTO클래스를 확인하여 정확한 request data 구성
|
|
- 소스 수정 후 테스트 절차
|
|
- 컴파일 및 오류 수정: {프로젝트 루트}/gradlew {service-name}:compileJava
|
|
- 컴파일 성공 후 서비스 재시작 요청: 서비스 시작은 인간에게 요청
|
|
- 만약 직접 서비스를 실행하려면 '<서비스 시작 방법>'으로 수행
|
|
- 서비스 중지는 '<서비스 중지 방법>'을 참조 수행
|
|
- 설정 Manifest 수정 시 민감 정보는 기본값으로 지정하지 않고 '<실행프로파일 작성 가이드>'를 참조하여 실행 프로파일에 값을 지정함
|
|
- 실행 결과 로그는 'logs' 디렉토리 하위에 생성
|
|
- 결과: test-backend.md
|
|
<실행프로파일 작성 가이드>
|
|
- {service-name}/.run/{service-name}.run.xml 파일로 작성
|
|
- Kubernetes에 배포된 데이터베이스의 LoadBalancer Service 확인:
|
|
- kubectl get svc -n {namespace} | grep LoadBalancer 명령으로 LoadBalancer IP 확인
|
|
- 각 서비스별 데이터베이스의 LoadBalancer External IP를 DB_HOST로 사용
|
|
- 캐시(Redis)의 LoadBalancer External IP를 REDIS_HOST로 사용
|
|
<서비스 시작 방법>
|
|
- 'IntelliJ서비스실행기'를 'tools' 디렉토리에 다운로드
|
|
- python 또는 python3 명령으로 백그라우드로 실행하고 결과 로그를 분석
|
|
nohup python3 tools/run-intellij-service-profile.py {service-name} > logs/{service-name}.log 2>&1 & echo "Started {service-name} with PID: $!"
|
|
- 서비스 실행은 다른 방법 사용하지 말고 **반드시 python 프로그램 이용**
|
|
<서비스 중지 방법>
|
|
- Window
|
|
- netstat -ano | findstr :{PORT}
|
|
- powershell "Stop-Process -Id {Process number} -Force"
|
|
- Linux/Mac
|
|
- netstat -ano | grep {PORT}
|
|
- kill -9 {Process number}
|
|
|
|
[결과파일]
|
|
- develop/dev/test-backend.md |