[Load Test]Apache JMeter - 0. What can I do with it?

2018. 4. 20. 14:12OS/개발환경구축

매번 설치해서 테스트를 해보겠다 해보겠다 했는데, 자꾸 미뤄서, 이번 테스트 할때를 기회삼아서,
jMeter에 대해서 설치부터 전체적인 테스트 플랜 짜는 것과 JMeter 구동하는 것까지 전체적으로 정리를 해보도록 합니다.
reference가 잘 나와 있기 때문에, 발!!! 번역을 하면서 하나씩 테스트 해보도록 합니다. 

우선 개요부터 하나씩 살펴 볼까요?

Apache JMeter 

Apache Jmeter 어플리케이션은 오픈 소스 소프트웨어 입니다. 
부하 테스트 기능 동작과 퍼포먼스, 성능을 측정하기 위해 설계된 100% 순수 자바 어플리케이션 입니다.
일반적으로는 웹 어플리케이션을 테스트하기 위해 설계되었지만, 다른 테스트 기능들에 대해서 확장되어 왔습니다.

What can I do with it?

정적인 것과 동적인 리소스, 웹 동적 어플리케이션 모두 성능 테스를 하는데 사용됩니다.
서버 하나 혹은 그룹, 네트워크 혹은 강점을 테스트하기 위한 객체에 엄청난 부하를 시뮬레이션하거나,
다른 로드 타입하에 전체 성능을 분석하는데도 사용할수 있습니다.
아파치 JMeter 기능들은 아래 내역을 포함합니다.

  • 여러 다른 어플리케이션들/서버들/프로토콜 타입들에 대한 부하 테스트 와 성능 테스트 능력
    • Web- HTTP, HTTPS (Java, NodeJS...)
    • SOAP / REST Webservices
    • FTP
    • Database via JDBC
    • LDAP
    • Message-oriented middleware (MOM) via JMS
    • Mail - SMTP(S), POP3(S) and IMAP(S)
    • Native commands or shell scripts
    • TCP
    • Java Object
  • 빠른  테스트 계획 recording(브라우저 나, 네이티브 어플리케이션), building , debugging 가능한 완전한 기능의 테스트 IDE
  • 어떤 OS상에서도 부하 테스트를 하기 위한 Command-line 모드 ( Non GUID/ headless mode)
  • 완벽하고, 동적인 HTML 리포팅을 제공합니다.
  • 대부분 잘 알려진 response 포멧들인 HTML, JSON,XML 이나 문자열 포멧에서 데이터를 추출하는 능력을 기반으로 쉬운 상호작용
  • 완벽한 휴대성 그리고 100% 자바 순수성
  • 많은 스레드들에 의한 동시성 샘플링이 가능한 완전한 멀티 스레딩 프레임워크와 분리된 스레드 그룹들에 의한 다른 함수들의 샘플링 시뮬레이팅
  • 캐싱과 테스트 결과의 오프라인 분석과 리플레이
  • 높은 확장가능한 코어
    • 무제한 테스팅 능력이 가능한 플러그인 가능한 Sampler
    • 스크립팅 가능한 Samplers (JSR23-compatible languages like Groovy and BeanShell)
    • 몇몇의 로드 통계는 플러그인 가능한 타이머들을 가지고 선택합니다.
    • 데이터 분석과 비주얼 적인 플러인은 엄청난 확장능력을 가능하게 합니다.
    • 함수들은 데이터 조정을 제공하거나, 테스트에 동적 입력을 제공하는데 사용할수 있습니다.
    •  maven이나 gradle 또는 jenkins에 대한 서드파드 오픈소스 라이브러리들을 통한 쉬운 CI

How do I do it?

  • Using JMeter to understand how to use it.
  • Component reference to have detailed information for every Test element
  • Functions reference to have detailed information and examples for every function
  • Properties reference for all properties that allow you to customize JMeter
  • Javadoc API documentation
  • JMeter FAQ(Wiki)
  • JMeter Wiki
  • Building JMeter and Add-Ons for advanced usage

JMeter is not a browser

JMeter는 브라우저가 아닙니다. 프로토콜 레벨에서 동작합니다.
웹 서비스와 원격 서비스와 관한한, JMeter는 브라우저같이 보입니다.(또는 차라리 멀티 브라우저)
하지만 JMeter는 브라우저에 의해 지원되는 모든 액션을 취하지 않습니다.
특별하게, JMeter는 HTML 페이지에서 발견되는 자바스크립트를 실행하지 않습니다.
브라우저가 하듯이 Html 페이지를 렌더링하지도 않습니다.
(HTML 등과 같은 응답을 보여주는 것은 가능하지만 그 타이밍은  예제에 포함되지 않으며,
오직 한 스레드안에 한 샘플만 한번 보여줍니다.)



여기까지 정리를 하고, 이제 설치를 진행 해봅니다.

다운로드 받아서, 압축 풀고 bin/jmeter.bat 파일 실행 합니다. 
우선 4.0 버전에 대해서는 문제가 발생하고 있습니다.




아 그냥 프로그램 실행만 딸랑 하면 안되는 구나... 라는 것을 느끼게 됩니다.




그래서 3.3 버전을 다운 받아서 다시 재 시도 해 봤습니다.  
이런 에러 없이 참 잘 기동 되네요.


그럼 왜 그런건지를 알아보기 위해서 Getting Started 전체를 다 읽어볼까요
다음 편에...