상황
nGrinder를 통해 테스트 스크립트 작성중 이었습니다.
- 이메일 전송
다음과 같은 오류가 발생하였습니다.
2025-02-12 17:14:42,091 ERROR java.util.concurrent.ExecutionException: java.net.ConnectException: Connection refused
java.net.ConnectException: Connection refused
at org.apache.hc.core5.reactor.InternalConnectChannel.onIOEvent(InternalConnectChannel.java:64)
at org.apache.hc.core5.reactor.InternalChannel.handleIOEvent(InternalChannel.java:51)
at org.apache.hc.core5.reactor.SingleCoreIOReactor.processEvents(SingleCoreIOReactor.java:179)
at org.apache.hc.core5.reactor.SingleCoreIOReactor.doExecute(SingleCoreIOReactor.java:128)
at org.apache.hc.core5.reactor.AbstractSingleCoreIOReactor.execute(AbstractSingleCoreIOReactor.java:85)
at org.apache.hc.core5.reactor.IOReactorWorker.run(IOReactorWorker.java:44)
nGrinder 사전 지식
nGrinder는 Controller가 여러 대의 agent를 가지고, 해당 agent는 target 서버에 요청을 보내게 됩니다.
- controller: 사용자로부터 테스트 요청을 받아드리고, 여러 개의 agent를 묶어서 테스트 수행
- agent: 컨트롤러의 요청을 받아서 실질적인 테스트 수행
- target: 사용자가 테스트를 원하는 서버
원인
동일한 로컬 머신에서 실행한다 하더라도 nGrinder 아키텍쳐상 agent, controller, target는 서로 다른 가상의 머신에서 실행됩니다. 그렇기에 agent에서 Localhost를 사용하면 target이나 controller이 아닌 agent 자신을 가리키는 것이 됩니다.
해결 방법
target이 동작하고 있는 머신의 공인 IP를 알아낸후 포트 포워딩을 하여 테스팅을 하거나 터널링을 사용해야 합니다.
'프로젝트 > Ku:room' 카테고리의 다른 글
개발자 겸 디자이너 겸 PM 도전기 (0) | 2025.02.14 |
---|---|
QueryDSL로 동적 쿼리 가져오기 (0) | 2025.02.13 |
SecurityConfig 내 이용한 허용 URI Enum 클래스로 관리하기 (0) | 2025.02.13 |
각 상황에 맞는 @ControllerAdvice로 예외 메시지 분리하기 (0) | 2025.02.13 |
이메일 인증 기능 @Async 비동기 처리 (0) | 2025.02.08 |