목차
[Github]
https://github.com/naver/ngrinder
[Windows에 Controller 구성하기]
[전제조건]
java 1.8이상 설치되어있는 것이 좋음
아래 명령어로 확인
[Controller 설치]
https://github.com/naver/ngrinder/releases경로에서 war 파일 다운로드
Window에서 cmd창 켜고 다운받은 경로에서 아래 커맨드로 실행
$ java -XX:MaxPermSize=200m -jar ngrinder-controller-3.5.5.war
실행 완료 후 브라우저에서 정상로드 확인 (초기 접속계정 admin/admin)
[Linux에 Agent 구성하기]
Agent 설치
Window UI 우측 상단에서 agent 다운로드 클릭 (프록시 설정 필요)
tar파일이 다운될텐데 이 파일을 Linux 서버로 옮겨준다. (WinScp 사용해서 옮김)
서버접속하여 agent 실행 (Ubuntu 기준)
# 압축풀기
$ tar -xvf ngrinder-agent-3.5.5.tar
$ cd ngrinder-agent
$ sudo vim __agent.conf
# agent.controller_host에 Controller서버의 호스트명을 적어준다.
agent.controller_host={host_server}
# 실행
$ ./run-agent.sh
#아래처럼 나오면 성공
...
-5.0.3.jar:/home/kafka/ngrinder-agent/lib/asm-9.0.jar:/home/kafka/ngrinder-agent/lib/groovy-datetime-3.0.5.jar:/home/kafka/ngrinder-agent/lib/grinder-httpclient-3.9.1.jar:/home/kafka/ngrinder-agent/lib/httpcore5-5.0.3.jar:/home/kafka/ngrinder-agent/lib/grinder-dcr-agent-3.9.1.jar:/home/kafka/ngrinder-agent/lib/groovy-templates-3.0.5.jar:/home/kafka/ngrinder-agent/lib/grinder-core-3.9.1.jar:/home/kafka/ngrinder-agent/lib/groovy-3.0.5.jar:/home/kafka/ngrinder-agent/lib/junit-4.13.1.jar:/home/kafka/ngrinder-agent/lib/commons-io-2.6.jar:/home/kafka/ngrinder-agent/lib/grinder-http-3.9.1.jar:/home/kafka/ngrinder-agent/lib/picocontainer-2.13.6.jar:/home/kafka/ngrinder-agent/lib/logback-core-1.2.3.jar:/home/kafka/ngrinder-agent/lib/dnsjava-3.2.2.jar:/home/kafka/ngrinder-agent/lib/ngrinder-runtime-3.5.5.jar:/home/kafka/ngrinder-agent/lib/jna-platform-5.6.0.jar:/home/kafka/ngrinder-agent/lib/logback-classic-1.2.3.jar:/home/kafka/ngrinder-agent/lib/commons-lang-2.6.jar:/home/kafka/ngrinder-agent/lib/slf4j-api-1.7.30.jar:/home/kafka/ngrinder-agent/lib/hamcrest-all-1.1.jar:/home/kafka/ngrinder-agent/lib/hamcrest-core-2.2.jar:/home/kafka/ngrinder-agent/lib/groovy-xml-3.0.5.jar' net.grinder.engine.process.WorkerProcessEntryPoint
2022-01-17 14:18:05,948 INFO agent daemon: worker worker-0 started
2022-01-17 14:18:05,961 INFO agent daemon: worker worker-1 started
...
Controller Web UI에서 확인 (우측상단의 agent 관리)
[테스트 해보기]
스크립트 작성
Web UI - 스크립트 - 만들기 - 스크립트 만들기
테스트 작성
Web UI - 성능 테스트 - 테스트 생성
에이전트: 현재 등록된 에이전트 수만큼 가능
에이전트별 사용자: 최대 3000까지 가능하고 계산식은 "프로세스 X 스레드 수"로 된다.
스트립트: 위에서 작성한 스크립트 사용
MTT: 평균 테스트타임 (vuser수를 늘리면 MTT도 같이 늘어난다고 한다)
MTFB: 평균 첫 번째 바이트 도달 시간. 이것을 Response Time으로 볼 수도 있다고 한다.
TPS 공식: vuser = agent * process * thread
→ 위 공식으로 볼 때 에이전트 10개, 프로세스10개, 스레드 300이라면 30,000 개의 vuser가 지속적으로 요청하는 상황이다. 그래서 30,000요청을 서버에서 1초미만으로 처리하면 TPS는 30000이상이나오고 2초이상걸리면 TPS는 15000이하가 된다.
[참조]
'이것저것' 카테고리의 다른 글
Intellij에서 google-java-style 적용하기 (0) | 2024.05.31 |
---|---|
Ansible 설치하기 (0) | 2023.04.15 |
JMeter (0) | 2023.04.01 |
Intellij 단축키 모음 (0) | 2023.03.09 |
MSA에서 Outbox Pattern에 대해 (0) | 2022.11.20 |