티스토리 뷰
nGrinder 사용후기
nGrinder 사용하게 된 이유 ?
회사를 이직한지 어느덧 3주가 되었습니다.
첫 번째 임무(?)로 nGrinder 스크립트 작업이 들어왔습니다.
( 으응 ? 나는 php 개발자인데 ㅎㅎ groovy 라뇻!? )
뭐죠 ?
이름만 들어서는 생소한데.. 사실 ngrinder 는 우리가 흔히 사용하는 부하테스트용 툴이다.
보통 아파치에 기본 포함되어있는 툴로 서버의 스트레스를 주어서 얼마나 많은 트래픽을 견디는지 산출할 때 쓰입니다.
ngrinder의 경우는 단순히 경로 하나를 스트레스를 주는 것이 아니라 ngrinder 가 지원하는 언어 ( 그루비, 자이썬 ) 으로
시나리오를 작성하여 부하를 줄수 있는 장점이 있다.
결정적으로 ngrinder 는 grinder 의 사용하기 힘든 부분을 보완해서 만든 국산품(?)이다 . - 한글 질문 가능 얏호!
경로 : naver.github.io/ngrinder/
로컬 테스트용 설치
nGrinder는 명령을 내리는 Controller와 실제 부하를 일으키는 일개미(?) Agent가 존재한다. 테스트용은 같은 컴터에 설치해도 되지만, 실제로 부하테스트 할때는 각기 다른 서버에 설치해서 테스트하도록 하자.
docker image pull
$ docker pull ngrinder/controller:latest
$ docker pull ngrinder/agent:latest
docker-compose.yaml
version: "2"
services:
controller:
image: ngrinder/controller
container_name: ngrinder-controller
volumes:
- ./ngrinder-controller:/opt/ngrinder-controller
container_name: controller
ports:
- 8080:80
agent:
image: ngrinder/agent
container_name: ngrinder-agent
links:
- controller
실행
$ docker-compose up
작성방법
필자는 Groovy를 택하였다. 파이썬의 능숙도가 높지 않지만, 자바 경험이 있어 택하게 되었다. ( 사실 차이점은 잘모르겠다 ㅎㅎ;; )
스크립트 작성을 하는 에디터를 열어보면, 6가지 항목이 존재하며 6개의 어노테이션이 있다 @로 시작합니다)
구분 | 설명 |
@BeforeProcess |
프로세스가 생성될때 실행해야 하는 동작 정의 |
@AfterProcess |
프로세스가 종료하기 직전에 실행해야 하는 동작 정의 |
@BeforeThread |
각 쓰레드가 실행된 전에 실행해야 하는 동작 정의 |
@AfterThread |
각 쓰레드가 종료하기 직전에 실행해야 하는 동작 정의 |
@Before |
모든 @Test 메소드가 실행되기 전에 실행해야 하는 동작 정의 |
@After |
모든 @Test 메소드가 종료된 이후 실행해야 하는 동작 정의 |
@Test |
테스트 동작 정의 |
삽질 후기 및 팁
제공하는 에디터로 작성하면 드릅게 힘들다. ( IDE의 노예 ) 그래서 기본제공하는 SVN 을 이용하여 쓰고 있는 IDE 에서 작성하면 편하다.
필자의 경우 인텔리J 로 SVN pull 받아서, junit 으로 로컬 테스트하고 commit 을 사용했다.
최신 버전의 경우 github 도 제공하는 것 같으나, 사용해보진 않았다.
( 모두 다 테스트 한후에 최신버전으로 업글해서 알게됨 ㅠ..ㅠ )
위에 설명한 로컬테스트는 도커로 했지만, 실제 테스트는 도커로하면 안된다. 자기 자신이 controller와 agent를 모두 다하면 못 견디는 것 같다. 그래서 자신의 컴터에 도커로 돌릴때에는 vUser ( 가상 유저) 를 많이 잡지 않고 테스트해야한다.
'개발' 카테고리의 다른 글
jetbrain(PHPSTORM) tool 테스트 코드 한글 method 밑줄 없애기 (0) | 2021.04.14 |
---|---|
The Tweleve Factor APP ( 12 Factor ) (0) | 2021.03.19 |
초기설정 (0) | 2020.12.07 |
코딩, 어떤 언어로 시작하지? (0) | 2020.11.09 |
MBTI 를 검사를 해보다 (0) | 2020.06.28 |