공개 SW 솔루션설치 & 활용가이드 시스템 SW > SW 공학도구 제대로배워보자 How to Use Open Source Software Open Source Software Installation & Application Guide
CONTENTS 1. 개요 2. 기능요약 3. 실행환경 4. 설치및실행 5. 기능소개 7. FAQ 8. 용어정리
- 3-1. 개요 소개 주요기능 Apache Jmeter 는오픈소스소프트웨어로부하테스트기능동작과퍼포먼스, 성능을측정하기위해설계된자바어플리케이션 다양한앱 / 서버 / 프로토콜 - Web, SOAP, REST, FTP, JDBC, LDAP, JMS, 메일, TCP, Java 오브젝트등테스트 다양한응답포멧지원 - HTML, JSON, XML 혹은텍스트응답포멧으로부터데이터추출 플러그인확장기능 - 플러그인을통해테스팅능력, 데이터분석, 가시화, 지속적인통합라이브러리확장 대분류 시스템 SW 소분류 SW 공학도구 라이선스형태 Apache License V2.0 사전설치솔루션 Java 실행하드웨어 Cross-platform 버전 apache-jmeter-5.0(2018 년 10 기준 ) 특징 보안취약점 개발회사 / 커뮤니티 공식홈페이지 Multithreading 기능을이용하여동시에많은 Thread 를발생시킬수도있으며혹은독립된 Thread 를연속적으로발생시켜테스팅 HTTP 나 FTP 서버뿐만아니라임의의데이터베이스쿼리도성능테스트 높은확장성과 GUI 환경으로빠른작업을정확하게할수있음 취약점 ID : CVE-2018-1297 심각도 : 9.8 CRITICAL(V3) 취약점설명 : 분산테스트 (RMI 기반 ) 를사용할때, jmeter 는보안되지않은 RMI 연결, 이로인해공격자는 JMeterEngine 에대한액세스권한을얻고무단코드사용 대응방안 :4.0 이상으로업데이트 참고경로 : http://mail-archives.apache.org/mod_mbox/wwwannounce/201802.mbox/%3ccah9fupanzk5am8ofe07rq-kyncsqv54yb-uys9benz7tbx-o7g%40mail.gmail.com%3e Apache Software Foundation https://jmeter.apache.org/
- 4-2. 기능요약 Jmeter 의주요기능 Jmeter 는 JSP, Servlets 및 AJAX와같은동적리소스뿐만아니라 JavaScript 및 HTML 과같은정적리소스의성능을테스트하는데사용 Jmeter 는웹사이트에서처리할수있는동시사용자의최대수를검색할수있으며성능보고서와다양한그래픽분석제공
- 5-3. 실행환경 Jmeter 의시스템요구사항 구분 JAVA (Java Virtual Machine Installed) CPU 메모리디스크네트워크 etc 요구사항 Jmeter 는 Java 기반응용프로그램이며, Java Runtime 을실행해야하며, Jmeter 4.0 부터 Java 8 이상지원 코어가 4 개이상인멀티코어 CPU 를제안하며, Jmeter 는다중스레드를많이사용하므로많은 CPU 차지 16GB RAM 을제안하며, 충분한동시사용자를시뮬레이트하고도운영체제에충분한메모리를확보권장 Jmeter 는디스크에별로의존하지는않지만 SSD 권장 1Gbps LAN 권장하며, Jmeter 는네트워크대역폭에서많은동시사용자시뮬레이션함 다른시스템하드웨어사양은별로중요하지않음
- 6-4. 설치및실행 세부목차 4.1 Jmeter 다운로드및설치 (window) 4.2 Jmeter 설치확인
- 7-4. 설치및실행 4.1 Jmeter 다운로드및설치 (1/5) 설치파일다운로드 (18 년 10 월기준최신 / 안정화권장버전다운로드 ) 아래의사이트에서 Jmeter 다운 - Download : https://jmeter.apache.org/download_jmeter.cgi
- 8-4. 설치및실행 4.1 Jmeter 다운로드및설치 (2/5) Jmeter 바이너리파일다운로드
- 9-4. 설치및실행 4.1 Jmeter 다운로드및설치 (3/5) 다운로드받은 Jmeter 바이너리압축을풀고해당폴더확인
- 10-4. 설치및실행 4.1 Jmeter 다운로드및설치 (4/5) Jmeter 실행 - 경로 : C:\Users\hana\Desktop\apache-jmeter-5.0\apache-jmeter-5.0\bin
- 11-4. 설치및실행 4.1 Jmeter 다운로드및설치 (5/5) Jmeter.bat 파일을실행하면다음과같이 Jmeter 의메인화면이보이게됨
- 12-5. 기능소개 세부목차 5.1 Jmeter 주요기능 5.2 테스트시나리오소개
- 13-5. 기능소개 5.1 Jmeter 주요기능 Jmeter 의주요기능은다음과같음 - 웹사이트접속가능테스트기능 - 부하테스트기능 그외 : Response Assertion 테스트기능, Duration Assertion 테스트기능
- 14-5. 기능소개 5.2 테스트시나리오소개 간단한 HTML 페이지를적용후, 테스트시나리오를통해아래의기능확인 - 웹페이지접속가능여부확인테스트기능 - 웹페이지부하테스트기능 테스트진행을위해로컬가상화리눅스장비에 Apache 웹서버를구축한후테스트용웹페이지를 Apache 서버에올려테스트진행
- 15 - 세부목차 6.1 웹페이지접속가능여부확인테스트기능 6.2 테스트시나리오를통한웹페이지부하테스트기능
- 16-6.1 웹페이지접속가능여부확인테스트기능 (1/11) Thread Group 만듦 - Thread Group 이란테스트플랜이수행할하나의 Group 의미 - 왼쪽 Test Plan 에서오른쪽버튼 -> Add -> Thread Group 선택
- 17-6.1 웹페이지접속가능여부확인테스트기능 (2/11) Thread Group 생성후오른쪽에나오는항목작성 - Name : Thread Group의이름입력 - Action to be taken after a sampler error : 테스트수행중에러가발생될때의상황설정 - Thread Properties
- 18-6.1 웹페이지접속가능여부확인테스트기능 (3/11) Http Request Default 는 Config Element에속한요소로서관련된 HttpRequests가사용할기본정보지정 - HttpRequestDefaults는그자체적으로어떤기능도수행하지않음 - HttpRequestDefaults는관력영역에있는모든 HttpRequests 요소에영향줌
- 19-6.1 웹페이지접속가능여부확인테스트기능 (4/11) HttpRequest 추가 - HttpRequest 요소는 HTTP 요청을서버에전송하여그결과를받아오는부분 - Thread Group에서오른쪽버튼 -> Add -> Sampler -> HTTP Request 선택
- 20-6.1 웹페이지접속가능여부확인테스트기능 (5/11) Http Request 의입력정보는다음과같음 - 입력하지않은정보는앞에서작성한 HttpRequestDefaults 에작성된내용반영
- 21-6.1 웹페이지접속가능여부확인테스트기능 (6/11) 테스트결과를출력해주는 Listener 추가 - 테스트결과를출력하는 Listener로서 View Results Tree 사용할것 - Thread Group 선택후마우스오른쪽버튼 -> Add -> Listener -> View Results Tree 선택
- 22-6.1 웹페이지접속가능여부확인테스트기능 (7/11) 테스트플랜시작 - 상단메뉴의 Run -> Start 또는초록색플레이모양의아이콘클릭
- 23-6.1 웹페이지접속가능여부확인테스트기능 (8/11) 테스트결과확인 - Start를클릭한후왼쪽트리에서 View Result Tree 를선택한다음오른쪽에서 HTTP Request를클릭하면테스트결과출력
- 24-6.1 웹페이지접속가능여부확인테스트기능 (9/11) 테스트결과확인
- 25-6.1 웹페이지접속가능여부확인테스트기능 (10/11) 테스트결과확인
- 26-6.1 웹페이지접속가능여부확인테스트기능 (11/11) Request 탭을누르면다음과같은화면표시 - Request탭은사용자가테스트를위해서요청한내용표시
- 27-6.2 테스트시나리오를통한웹페이지부하테스트기능 (1/11) 부하테스트란, 서비스가작동될서버에의도적으로일정량의트래픽을발생시켜서버가다운되지않고정상적으로작동되는지테스트 - 첫시작은테스트플랜을작성으로시작
- 28-6.2 테스트시나리오를통한웹페이지부하테스트기능 (2/11) Thread Group 를만듦 - Thread Group 이란테스트플랜이수행할하나의 Group 표현 - 왼쪽 Test Plan 에서오른쪽버튼 -> Add -> Thread Group 선택
- 29-6.2 테스트시나리오를통한웹페이지부하테스트기능 (3/11) 아래의항목들작성 - 부하테스트를위해서 Loop Count 부분에서 1000 입력 Loop Count는웹페이지접속횟수뜻함 아래의내용처럼 Loop Count에 1000을입력하면웹페이지에 1000번접속한다는뜻
- 30-6.2 테스트시나리오를통한웹페이지부하테스트기능 (4/11) Http Request 추가 - Thread Group 에서오른쪽버튼클릭 -> Add -> Sampler -> HTTP Request 선택
- 31-6.2 테스트시나리오를통한웹페이지부하테스트기능 (5/11) Http Request 의입력정보는다음과같음 - 기입할내용은 20 페이지참조
- 32-6.2 테스트시나리오를통한웹페이지부하테스트기능 (6/11) 테스트결과를출력해주는 Listener 추가 - 2개의 Listener 추가 View Results Tree Graph Results - Thread Group 선택후 마우스오른쪽버튼 -> Add -> Listener -> View Results Tree 선택
- 33-6.2 테스트시나리오를통한웹페이지부하테스트기능 (7/11) - Thread Group 선택후마우스오른쪽버튼 -> Add -> Listener -> Graph Results 선택
- 34-6.2 테스트시나리오를통한웹페이지부하테스트기능 (8/11) 테스트플랜시작 - 상단메뉴의 Run -> Start 또는초록색플레이모양의아이콘클릭
- 35-6.2 테스트시나리오를통한웹페이지부하테스트기능 (9/11) - Start 클릭후왼쪽트리에서 View Results Tree 선택 - 선택후오른쪽에서 HTTP Request 를클릭하면테스트결과출력 ( 요청성공시화면 )
- 36-6.2 테스트시나리오를통한웹페이지부하테스트기능 (10/11) 아래의트리에서 Graph Result 를선택하면아래와같은화면을볼수있음
- 37-6.2 테스트시나리오를통한웹페이지부하테스트기능 (11/11) - 동일한방법으로 Summary Report 를추가하면아래의내용확인가능
- 38-7. FAQ Q A Q A Apache License V2.0 란무엇인가요? Apache Software Foundation(ASF) 에의해서만들어지는소프트웨어에붙는License입니다. ASF에서만들어지는소프트웨어는모두공개SW Apache License V2.0이적용됩니다. 소스코드에대한사용비용을지불하지않으며, 수정프로그램에대한소스코드의공개를요구하지않기때문에상용SW에무제한사용이가능합니다. ASF (Apache Software Foundation) 란무슨단체인가요? ASF는 Apache Software Foundation 의약자로써 Apache HTTP Server를포함한 Apache 프로젝트를지원하는비영리단체이며전세계에있는소프트웨어개발자들의커뮤니티입니다. ASF에서만들어지는소프트웨어는 Apache License 이며그러므로 ASF 에서만들어지는소프트웨어는 Free Software 또는 Open Source Software 입니다. 현재많은프로젝트가진행되고있으며프로그래머에있어서중요한단체중하나입니다.
- 39-8. 용어정리 용어테스트플랜 Thread Group 성능테스트 설명 Jmeter 가수행할일련의실행코드집합 테스트플랜이수행할하나의 Group 서비스및서비스시스템의성능을확인하기위해서실제사용환경과비슷한환경에서테스트를진행하는것을말함, 이를통해서응답시간 (Response Time) 과처리량 (Throughput), 병목구간등을확인할수있고, 성능테스트로얻은정보로서비스나서비스시스템의문제점을확인하고이를개선 (Tuning) 하여보완할수있음
Open Source Software Installation & Application Guide 이저작물은크리에이티브커먼즈 [ 저작자표시 비영리 동일조건변경허락 2. 0 대한민국라이선스 ] 에따라이용하실수있습니다.