비버데이터
비버의 Data log
비버데이터
전체 방문자
오늘
어제
  • 분류 전체보기 (24)
    • Contact (1)
    • 회고록 (2)
    • ML&DL (7)
      • ML&DL 공통 (1)
      • NLP (1)
      • Tensorflow (3)
      • Pytorch (2)
    • TIL (13)
      • Python (6)
      • Linux (1)
      • Git (1)
      • 기타 (3)
      • 개발 오류 일지 (1)
    • 자격증&시험 이야기 (0)
    • 기본기 복습 (1)
    • 기타 (0)

블로그 메뉴

  • 홈
  • 관리자

공지사항

인기 글

태그

  • 데이터사이언스
  • np.linspace
  • Ai
  • 어쩌다보니팀내최고연차팀원이된
  • ubuntu
  • 파이썬
  • 깃랩 모델 파일
  • 깃랩 모델 가중치 파일
  • 딥러닝
  • pytorch
  • Linux
  • til
  • 머신러닝
  • tf.linspace
  • 회고록
  • Python
  • float64
  • float32
  • 개발성장일지
  • no changes made
  • 깃랩 weight file
  • Tensorflow 2.0
  • 깃랩 대용량
  • numpy
  • 파이토치
  • chsh -s /bin/bash
  • tensorflow
  • mac terminal shell
  • batch job scheduling
  • 데이터분석

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
비버데이터
TIL/기타

[JMeter/Linux] 리눅스 환경에서 JMeter non GUI 모드로 사용하기

[JMeter/Linux] 리눅스 환경에서 JMeter non GUI 모드로 사용하기
TIL/기타

[JMeter/Linux] 리눅스 환경에서 JMeter non GUI 모드로 사용하기

2022. 2. 8. 21:33

안녕하세요. 비버입니다. :D

API 성능 테스트를 위한 툴 JMeter 를 리눅스 환경에서 non GUI 모드로 사용하는 방법에 대해 정리해두려고 합니다.

저는 최근 회사의 새로운 서비스에 사용될 '문서 카테고리를 분류 모델'을 개발하였습니다. BentoML 을 활용하여 API 개발 & 도커라이징까지 완료했고, 연구용 서버에서 curl GET 요청으로 데이터 송수신 테스트까지 마친 상황이었죠. 저희 팀은 매주 한 번씩 대표님과 개발 실장님이 참석하시는 회의에서 지난 주간 동안 진행한 업무 내용을 보고드리는데요. 개발 실장님께서 제가 개발한 문서 분류 API의 성능 테스트가 필요할 것 같다고 하시며 JMeter 를 말씀하셨습니다. (API 성능 테스트를 위한 툴이 여럿 있는 것을 압니다. 하지만 이러한 이유로 저는 이번에 JMeter 를 사용하게 되었습니다. 😉)

사용해본 적이 없었던 터라 구글링을 해보았는데, 윈도우 환경에서 GUI 모드로 사용하는 방법에 대해서는 설명해둔 글이 많았지만 non GUI 모드로 사용하는 방법에 대해 설명해둔 글은 많지 않았습니다. 때문에 우분투 OS 가 설치된 회사 서버를 사용해야 하는 저는 어쩔 수 없이 약간의 삽질을 거칠 수밖에 없었는데요. 다행히 어렵지 않게 해결하였지만, 혹 저와 같은 상황을 겪을 분들을 위해 내용을 정리합니다.

0. 시작하기 전에


JMeter 를 non GUI 모드로 사용하더라도 테스트 실행에 필요한 jmx 파일은 JMeter GUI 창을 활용해 생성하는 것이 편리합니다. JMeter GUI 모드 사용 방법은 구글링을 하면 설명글이 많이 나오니, 원하는 글을 참고하셔서 JMeter GUI 실행 방법을 확인해주세요.

1. JMeter 설치하기


 

Apache JMeter - Apache JMeter™

Apache JMeter™ The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to oth

jmeter.apache.org

위 링크의 Download Releases 에서 Binaries 를 다운로드 받습니다.

  • OS 종류에 따라 필요한 Binaries 를 선택해 다운 받으면 됩니다.
  • Ubuntu 환경인 저의 경우는 .tgz 파일을 다운 받았습니다.
  • wget 을 활용하세요. 편리합니다.

Download Releases > apache-jmeter-버전.tgz

 

cd 다운로드를 원하는 디렉토리 경로

# 다운로드
wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz

# 압축 풀기
tar -xvz apache-jmeter-5.4.3.tgz

 

2. jmx 파일 만들기


0. 시작하기 전에에서 언급했던 것처럼 jmx 파일을 생성하는 것은 JMeter GUI 창을 활용하는 것이 편리합니다. 윈도우 OS가 설치되어 있는 여분의 노트북 등을 활용하세요. (저는 윈도우 환경의 사무실 PC가 한 대 있었기 때문에 이를 활용했습니다.)

2-1. jmeter.bat 파일을 실행하여 JMeter GUI 창 열기

윈도우 PC 의 jmter.bat 파일 위치

2-2. Thread Group 추가

좌측 상단 TestPlan 우클릭 > Add > Threads (Users) > Thread Group

Thread Group 이란?

  • JMeter 에서 Thread 란 곧 사용자(User)라고 생각하면 됩니다. 
  • 따라서 Thread Group 이란, 우리가 API 를 테스트하기 위해 가상으로 생성할 '사용자 그룹' 을 뜻합니다.

Thread Group 설정 세팅

  • Number of Threads (users) : 몇 명의 동시 사용자를 설정할 것인지
  • Ramp-up period (seconds) : 몇 초에 한 번씩 사용자들이 요청을 보내도록 할 것인지
  • Loop Count : 사용자들이 요청을 몇 번 반복하여 보내도록 할 것인지

예시)  10 명의 동시 사용자가  1초 에 한 번씩 요청을 보내도록 하며, 이를  10번  반복하는 테스트

2-3. HTTP Request 추가

어떤 API 의, 어떤 주소에, 어떻게 요청을 날릴 것인지 설정하는 곳입니다. 

Thread Group 우클릭 > Add > Sampler > HTTP Request

HTTP Request 설정 세팅

  • Protocol : http (또는 https)
  • Server Name or IP : 서버 도메인명 또는 IP 주소
  • Port Number : 포트 번호
  • Method : Parameter 를 받아오는 방식 (Default 는 Get)
  • Path : 페이지의 주소 (ex. /predict)
  • Body Data : 전송할 입력 데이터

2-4. HTTP Header Manager 추가

HTTP Request 우클릭 > Add > Config Element > HTTP Header Manager

아래 이미지와 같이 Content-Type, Content-Encoding 등 HTTP 요청 헤더 정보를 입력하세요. (아래 부분에 Add 버튼이 있습니다.)

2-5. jmx 파일로 저장하기

File > Save Test Plan as

저장한 jmx 파일은 리눅스 환경 PC 로 옮겨주세요.

3. 리눅스 환경에서 JMeter 실행


# Jmeter 실행 파일이 있는 경로로 이동
cd ~/apache-jmeter-5.4.3/bin

# jmeter 실행
./jmeter -n -t <파일명>.jmx -l <로그파일명>.log

# 사용예시
./jmeter -n -t my_test.jmx -l my_test_result.log

 

옵션 설명

  • -n : non GUI 모드
  • -t : 우리가 생성한 jmx 파일 경로
  • -l : 테스트 결과를 기록할 로그 파일 경로

테스트가 완료된 후 log 파일을 확인하면 테스트의 결과를 확인할 수 있습니다.

축하합니다. 짝짝짝! 👏👏👏

오늘도 도움이 되셨다면 아래 공감 버튼을 꾹! 부탁드립니다. 😊
제 기분이 좋아지니까요.
감사합니다!
저작자표시 비영리 변경금지 (새창열림)

'TIL > 기타' 카테고리의 다른 글

[ETL] Airflow 와 Jenkins 비교 - 무엇을 사용할까?  (0) 2022.04.02
[MacOS] default 쉘 zsh 에서 bash 로 변경하기  (0) 2022.02.26
  • 0. 시작하기 전에
  • 1. JMeter 설치하기
  • 2. jmx 파일 만들기
  • 3. 리눅스 환경에서 JMeter 실행
'TIL/기타' 카테고리의 다른 글
  • [ETL] Airflow 와 Jenkins 비교 - 무엇을 사용할까?
  • [MacOS] default 쉘 zsh 에서 bash 로 변경하기
비버데이터
비버데이터
포털 서비스 회사에서 Data Scientist 로 일하고 있는 비버입니다.

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.