본문 바로가기

내일 배움 캠프

2024-01-29

오늘은 프로젝트 26일 차이다. 
오늘은 서비스 배포를 진행하면서 기다릴 시간이 없기 때문에 부하테스트를 진행하기 위해 ngrinder 환경구축을 진행했다.

 

테스트 환경을 구축하기 위해 처음에는  ngrinder공식 홈페이지에 가서 war파일을 받았다. 

https://github.com/naver/ngrinder/releases

 

Releases · naver/ngrinder

enterprise level performance testing solution. Contribute to naver/ngrinder development by creating an account on GitHub.

github.com

받은 파일을 통해 window cmd에서 받은 파일의 디렉토리로 이동하고 아래의 명령어를 통해 실행을 한다.

$ java -jar ngrinder-controller-<다운로드 받은 버전>.war


포트는 defualt으로 8080포트로 설정되며 초기에 메인페이지 로그인 화면에서 ID와 PW는 모두 admin으로 입력하고 로그인하면 된다 그러면 위의 사진의 화면이 나온다. 

로그인된 admin을 클릭하면 Download Agent를 클릭하면 파일이 받아진다. 앞축 파일을 풀고 cmd에서 해당 풀어놓은 파일의 디렉토리로 이동을 하고 아래의 명령어를 입력하면 에이전트가 다운로드된다.

$ run_agent.bat

오른쪽 admin을 누르고 admin management로 들어가면 아래의 agent가 등록된 걸 확인할 수 있다.

 

본격적으로 테스트를 진행하기 위해서 performance Test를 누르고 CreateTest를 누르면 아래와 같이 등록된다.

여기까지 오늘 진행했고 여기서 Script를 통해서 요청 URL과 요청에 필요한 설정 및 응답 검증을 위해 생성하려고 했으나 SVN Error가 발생했다. 그래서 에러를 해결하기 위해 구글링을 열심히 해도 원인을 찾지 못해 Docker를 통해 Container에 올려서 사용해 보기로 했다.

 

Docker에서 하는 방법은 간단하다.
먼저 cmd에서 아래의 명령어를 통해 Controller를 다운로드한다.

docker pull ngrinder/controller

그다음 아래의 명령어를 통해 Container를 생성해야 되지만 나는 에러가 발생했다.

docker run -d -v ~/ngrinder-controller:/opt/ngrinder-controller --name controller -p 80:80 -p 16001:16001 -p 12000-12009:12000-12009 ngrinder/controller

이때는 원인을 모르고 아래의 명령어를 통해 docker에 있는 위치가 아닌 윈도에 있는 위치의 파일경로에 통해 생성을 했다.

docker run -d -v C:/Users/YourUsername/ngrinder-controller:/opt/ngrinder-controller --name controller -p 80:80 -p 16001:16001 -p 12000-12009:12000-12009 ngrinder/controller

이러고 나서 Agent 역시 마찬가지로 아래의 명령어로 이미지를 생성하고 마찬가지로 컨트롤러를 생성한 다음

docker pull ngrinder/agent

 

$ docker run -d --name agent --link controller:controller ngrinder/agent

 

생성한 컨테이너를 실행시켜 똑같이 Script를 작성하고 테스트를 진행해보려고 했으나 똑같이 Script생성 에러가 발생하면서 문제에 대한 원인을 못 찾아서 하루종일 구글링하며 해결해 보려고 했지만 원인을 못 찾았다. 추정되는 원인으로는 권한문제일 수 있다는 글을 봐서 여러 조사해 봤다.
controller의 권한 문제를 해결하기 위해 Docker로 들어가서 수동으로 권한을 변경해 주려고 했으나 변경해도 마찬가지였다.
org.tmatesoft.svn.core.SVNException: svn: E204899: Cannot rename file '/opt/ngrinder-controller/repos/admin/db/transactions/0-6i.txn/props.e017c057-8d01-0010-bdc1-472d67adc077.tmp' to '/opt/ngrinder-controller/repos/admin/db/transactions/0-6i.txn/props'
더 이상은 힘들어서 여기까지만 했다.

'내일 배움 캠프' 카테고리의 다른 글

2024-01-31  (0) 2024.02.02
2024-01-30  (1) 2024.02.01
2024-01-26  (1) 2024.01.27
2024-01-25  (1) 2024.01.27
2024-01-24  (0) 2024.01.25