성능 테스트 무료 교육 영상 소개 - 초보자를 위한 JMeter 풀 코스 by Raghav Pal
영상 제목: JMeter Full Course Masterclass, Step by Step for Beginners
강사: Raghav Pal (인도 테스트 엔지니어), Automation Step by Step
영상 길이: 3시간 31분 25초
https://www.youtube.com/watch?v=SoW2pBak1_Q
위 주소는 Java 기반 오픈 소스 성능 테스트 도구인 JMeter에 대해 설명한 2021년도 교육 영상이다.
3시간이 넘는 긴 영상이지만 주제별로 모듈화된 강의를 하나로 합친 것이므로, 아래 타임코드를 보고 원하는 내용 부분만 골라 보면 된다.
타임 코드와 강의 내용
[00:00] JMeter에 대한 소개
[02:56] 윈도우와 Mac에서 JMeter 설치
[10:06] JMeter의 GUI 둘러보기(Apache JMeter 5.4 사용)
[18:36] 첫 번째 JMeter 테스트 생성
- 스텝 1: JMeter 시작하기
- 스텝 2: Test Plan 생성하기
- 스텝 3: Thread Group (Users) 생성하기
- 스텝 4: Sampler (HTTP Request) 추가하기
- 스텝 5: Listener 추가하기
- 스텝 6: 테스트 실행하기
[28:58] Listeners
JMeter Listener는 성능 테스트 결과와 메트릭 정보를 수집하여 보고서를 생성하고 보여주는 리포팅(Reporting) 엘리먼트이다. 가장 자주 사용하는 Listener 종류가 아래와 같다.
- View Results in Table: 테이블 형태로 결과 보기
- View Results Tree: 트리 형태로 결과 보기
- Aggregate Report: 샘플들의 평균을 보여주는 종합 리포트
- Graph Results: 그래프 형태로 결과 보기
- Summary Report: 요약 보고서
- Simple Data Writer: 파일명만 써주면 테스트 실행 결과를 csv, xml 같은 외부 파일로 생성함
[45:20] Assertions
어써션은 Request/Response를 체크하는 일을 한다(대개는 수신한 Response를 확인함). JMeter가 제공하는 주요 어써션이 아래와 같다.
- Response Assertion: 가장 자주 사용되는 어써션 타입이다. 예를 들어 응답 코드가 200인지, 응답 메시지에 특정 텍스트가 포함되어 있는지 등을 지정하면, 테스트 실행에서 이 조건이 일치하지 않는 경우 테스트가 실패한다.
- Duration Assertion: 밀리초 단위로 기간을 지정하면 샘플러가 이 시간을 초과하는 경우 테스트가 실패한다.
- Size Assertion: 샘플러 크기를 바이트와 비교 연산자로 지정한다. 이 조건을 벗어나는 경우 테스트가 실패한다.
- HTML Assertion: HTML/XHTML/XML의 표준 포맷 및 신텍스를 위반하면 테스트가 실패한다. 식별된 에러 및 경고를 텍스트 파일로 생성 가능
- XML Assertion, JSON Assertion: XML 또는 JSON Response를 생성하는 API나 웹서버 시스템에서 사용하는 어써션
- XPATH Assertion: XML 다큐먼트의 XPATH 유효성 검사
[58:46] HTTP(S) Test Script Recorder
브라우저의 HTTP 리퀘스트를 녹화하는 엘리먼트에 대해 설명한다.
[01:14:49] BlazeMeter Recorder
BlazeMeter 레코더를 이용하여 JMeter 테스트를 생성하는 방법을 설명한다(브라우저에 추가된 BlazeMeter 확장 프로그램 활용).
[01:23:41] Getting data from CSV file
외부 CSV 파일의 데이터를 JMeter로 가져와서 테스트에 사용하는 법을 설명한다(메뉴의 Config Element - CSV Data Set Config 선택)
[01:35:49] Config Elements - HTTP (Web Test Plan)
동일한 레벨에 존재하는 샘플러 리퀘스트에 앞서서 실행되는 엘리먼트이며, 이를 통해 뒤에 샘플러가 사용할 디폴트 및 변수를 셋업한다.
[01:47:49] JMeter Config Elements
JMeter에서 주로 사용하는 Config 엘리먼트에 대해 설명한다.
이전 강의에서 CSV와 HTTP 관련 Config 엘리먼트를 보았고, 이 세션에서는 그 외 것들(예: FTP, JDBC, LDAP, TCP)에 대해 다룬다.
[01:58:30] Command Line
커맨드라인에서 JMeter 테스트를 실행하고 테스트 결과를 파일로 생성하는 것에 대해 설명한다.
[02:10:41] HTML Reports from CMD & GUI
JMeter 대시보드 리포트를 생성하는 방법을 설명한다.
[02:32:43] JMeter’s Plugin Manager
JMeter 확장 플러그인을 찾고 설치하는 방법을 설명한다.
[02:42:05] REST API Testing in JMeter
JMeter에서 REST API 리퀘스트(GET, POST, PUT, DELETE)를 생성하는 법을 배운다.
[03:00:30] SOAP API Testing in JMeter
JMeter에서 SOAP API 리퀘스트를 생성하는 법을 배운다.
(WSDL을 파싱하여 SOAP 메시지를 생성하는 Wizdler 크롬 확장 프로그램 활용)
[03:18:26] How to record API in JMeter
위 영상과 별개로 아래 링크를 따라가면 JMeter에서 API 레코딩을 하는 방법에 대한 강의가 있다.
[03:18:28] Functions and Variables
JMeter에서 함수와 변수를 사용하는 법에 대해 설명한다.
[03:29:28] Interview FAQs
영상 끝 부분은 테스터 채용 면접에서 자주 등장하는 JMeter에 대한 질문과 그 답을 나열하고 있다.
- JMeter 히스토리
- JMeter가 무엇인가?
- 누가 개발했는가? - Stefano Mazzocchi
- JMeter의 기본 동작 원리는?
- Thread Group이 무엇인가?
- Sampler가 무엇인가?
- JMeter 테스트 플랜에서 컴포넌트의 실행 순서는? 1) Configuration elements, 2) Pre-Processors, 3) Timers, 4) Sampler, 5) Post-Processors, 6) Assertions, 7) Listeners
- Listener가 무엇인가?
- Assertion이 무엇인가?
- Distributed Load Testing이란?
- JMeter에서 리소스 요구사항이나 메모리 부족 이슈를 관리하는 방법은?
- JMeter가 감당할 수 있는 최대 사용자 부하 또는 쓰레드가 무엇인가?
- JMeter에서 Co-relation이 무엇인가?
- JMeter에서 캐시와 쿠키를 관리하는 방법은?
- JMeter에서 Timers의 역할은?