1 2 3 4 5 6 7 도구개요도구설치방법도구기능소개도구활용예제 FAQ 도구평가용어집
1. 도구개요
목차 3 1. 도구개요 2. 도구설치방법 2.1 다운받기 2.2 설치확인하기 3. 도구기능소개 3.1 주요기능 3.2 예제소개 3.3 웹페이지접속가능여부확인테스트기능 3.4 웹페이지부하테스트기능 3.5 Response Assertion 테스트기능 3.6 Duration Assertion 테스트기능 3.7 Size Assertion 테스트기능 4. 도구활용 4.1 예제설명 4.2 테스트플랜작성하기 4.3 Thread Group 작성하기 4.4 Http Request Defaults 작성하기 4.5 Http Request 작성하기 4.6 Duration Assertion 작성하기 4.7 Size Assertion 작성하기 4.8 Listener 추가하기 4.9 테스트실행하기 4.10 테스트결과보기 5. FAQ 6. 도구평가 7. 용어집
1. 도구개요 4 소개주요기능카테고리커버리지라이센스형태 / 비용사용환경특징적용회사 / 프로젝트관련도구제작사공식홈페이지개발자 Apache 는 ASF (Apache Software Foundation) 에서부하테스트및성능측정을위해서개발된 100% 순수자바애플리케이션입니다. Jmeter는 HTTP를사용하여사이트의부하를테스트할수있으므로정적이거나동적인자원 ( 파일, 서블릿, 자바객체들, 데이터베이스등 ) 에대해서테스트하는데사용할수있습니다. 웹페이지부하테스트기능, 정적이거나동적인자원들에대한테스트기능 Apache Software License / 무료 - - 운영체제 Eclipse 환경 Stefano Mazzocchi OS Independent 지원안함 ASF (Apache Software Foundation) http://jakarta.apache.org/jmeter/index.html 세부카테고리 도구난이도 사전설치도구 테스팅실행 하급 JDK 1.3 이상버전 Http, Ftp 서버를로드하고테스트해볼수있을뿐만아니라, JDBC를통해임의의데이터베이스쿼리를테스트할수있습니다. 완벽한 Multi Threading 프레임워크를자원해다수의 Thread가동시에테스트데이터를추출할수있도록해주며다른 Thread 그룹들로하여금다른기능들을동시에테스트하여좀더정확한시간체크가가능합니다. 통계데이타의개인화뿐만아니라최대확장을허용합니다.
2. 도구설치방법
2. 도구설치방법 세부목차 6 2.1 다운받기 2.2 설치확인하기
2. 도구설치방법 2.1 다운받기 (1/4) 7 다음의사이트에서 를다운받습니다. http://jakarta.apache.org/ 왼쪽 Subprojects 에서 를선택합니다.
2. 도구설치방법 2.1 다운받기 (2/4) 8 왼쪽 Download 에서 Download Releases 를클릭합니다.
2. 도구설치방법 2.1 다운받기 (3/4) 9 Binary 부분에서 Windows 용 를다운받습니다. 본매뉴얼에서는 Windows 용 2.3.2 버전을로컬디스크에다운받도록하겠습니다.
2. 도구설치방법 2.1 다운받기 (4/4) 파일다운로드창에서저장을눌러로컬디스크 (C:) 에저장합니다. 다운받은 jakarta-jmeter-2.3.2 파일의압축을풉니다. 본매뉴얼은 Program Files 폴더안에압축을해제하였습니다. 10
2. 도구설치방법 2.2 설치확인하기 (1/2) 를실행합니다. jakarta-jmeter-2.3.2 폴더에서 bin 폴더로이동합니다. jmeter.bat 파일을클릭합니다. 2 3 1 11
2. 도구설치방법 2.2 설치확인하기 (2/2) jmeter.bat 파일을클릭하면다음과같이 의메인화면이보이게됩니다. 12
세부목차 3.1 주요기능 3.2 예제소개 3.3 웹페이지접속가능여부확인테스트기능 3.4 웹페이지부하테스트기능 3.5 Response Assertion 테스트기능 3.6 Duration Assertion 테스트기능 3.7 Size Assertion 테스트기능 14
3.1 의주요기능 의주요기능은다음과같습니다. 웹사이트접속가능테스트기능 부하테스트기능 Response Assertion 테스트기능 Duration Assertion 테스트기능 Size Assertion 테스트기능 [Graph Result 의결과화면 ] 15
3.2 예제소개 (1/2) 간단한 HTML 페이지를사용하여아래의기능을소개하겠습니다. 웹페이지접속가능여부확인테스트기능 웹페이지부하테스트기능 응답결과를검증하기위한 Assertion 기능 테스트를위해로컬컴퓨터에 Apache 웹서버를구축한후테스트용웹페이지를 Apache 서버에올려테스트를진행하였습니다. 테스트웹페이지는 Restaurant 에대한정보를입력하는페이지이며웹페이지는다음과같이구성되어있습니다. Restaurant Name Restaurant Type Location Credit Cards 사용가능유 / 무 [ 테스트용웹페이지 ] 16
3.2 예제소개 (2/2) 테스트용웹페이지의 HTML 코드를보면다음과같습니다. 파일명은 form.html 입니다. 17 [ 테스트용웹페이지의 HTML 코드 ]
3.3 웹페이지접속가능여부확인테스트기능 (1/14) 테스트플랜을작성합니다. 테스트플랜은 가수행할일련의실행코드집합을말합니다. 를사용한테스트는이실행코드집합들을알맞게조립하는것으로표현됩니다. Test Plan 의이름을입력합니다. 사용자정의변수가있다면 Add 버튼을누른후입력해줍니다. Test Plan 수행중필요한 jar 파일이있다면이곳에서추가해줍니다. 18
3.3 웹페이지접속가능여부확인테스트기능 (2/14) Thread Group 을만듭니다. Thread Group 이란테스트플랜이수행할하나의 Group 을말합니다. 왼쪽 Test Plan 에서오른쪽버튼 -> Add -> Thread Group 선택 1 2 3 19
3.3 웹페이지접속가능여부확인테스트기능 (3/14) Thread Group 생성후오른쪽에나오는항목들을작성합니다. Name : Thread Group 의이름을입력합니다. Action to be taken after a sampler error : 테스트수행중에러가발생될때의상황을설정합니다. Thread Properties Number of Threads : 이 Thread Group에생성될 Thread의개수를지정합니다. Ramp-up Period : 한 Thread가시작한후다음 Thread가시작될때까지의대기시간을지정합니다. Loop Count : 각 Thread가 Thread Group에속한작업의반복횟수를지정합니다. Scheduler : Thread Group의시작및종료스케줄을설정할것인지체크합니다. 20
3.3 웹페이지접속가능여부확인테스트기능 (4/14) Http Request Defaults 를추가합니다. Thread Group 에서마우스오른쪽버튼클릭 -> Add -> Config Element -> Http Request Defaults 1 2 3 4 21
3.3 웹페이지접속가능여부확인테스트기능 (5/14) Http Request Defaults 는 Config Element 에속한요소로서관련된 Http Requests 가사용할기본정보를지정합니다. Http Request Defaults 는그자체적으로어떤기능도수행하지않습니다. Http Request Defaults 는관련영역에있는모든 Http Requests 요소에영향을줍니다. Name : Http Request Defaults 의이름을입력합니다. Server Name or IP : 서버의이름또는 IP 주소를입력합니다. Port Number : 접속시사용할포트번호를입력합니다. Protocol : 사용할프로토콜을입력합니다. ( 주로 HTTP 를사용합니다.) Content encoding : 인코딩방식을입력합니다. Path : 접속할경로를입력합니다. 기본적으로전송할파라미터목록및값을입력합니다. 22
3.3 웹페이지접속가능여부확인테스트기능 (6/14) Http Request 를추가합니다. Http Request 요소는 HTTP 요청을서버에전송하여그결과를받아오는부분입니다. Thread Group 에서오른쪽버튼 -> Add -> Sampler -> HTTP Request 선택 1 2 3 4 23
3.3 웹페이지접속가능여부확인테스트기능 (7/14) Http Request 의입력정보는다음과같습니다. 입력하지않은정보는앞에서작성한 Http Request Defaults 에작성된내용이반영되게됩니다. Name : Http Request 의이름을입력합니다. Server Name or IP : 서버의이름또는 IP 주소를입력합니다. Port Number : 접속시사용할포트번호를입력합니다. Protocol : 사용할프로토콜을입력합니다. ( 주로 HTTP 를사용합니다.) Method : 전송방식을선택합니다. Content encoding : 인코딩방식을입력합니다. Path : 접속할경로를입력합니다. 기본적으로전송할파라미터목록및값을입력합니다. 파일을전송할경우 Add 버튼을눌러서파일을선택하며 Parameter Name 에는파일과관련된파라미터의이름을입력합니다. MIME type 에는전송하는파일의 MIME 타입을입력합니다. 24
3.3 웹페이지접속가능여부확인테스트기능 (8/14) 테스트결과를출력해주는 Listener 를추가합니다. 테스트결과를출력하는 Listener 로서 View Results Tree 를사용할것입니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Listener -> View Results Tree 선택 1 2 3 4 25
3.3 웹페이지접속가능여부확인테스트기능 (9/14) 마지막으로해야할일은테스트를실행하는것입니다. 메뉴바의 Run -> Start 1 2 26
3.3 웹페이지접속가능여부확인테스트기능 (10/14) 앞에서 Start 를클릭한후왼쪽트리에서 View Results Tree 를선택한다음오른쪽에서 HTTP Request 를클릭하면테스트결과가출력되게됩니다. 1 2 Thread Name : 수행한 Thread Group 의이름 Sample Start : 테스트를수행한시간 Load time : 로딩횟수 Latency : 대기횟수 Size in Bytes : 로딩한페이지의크기 Sample Count : 수행한테스트의수 Error Count : 에러발생수 Response code : 웹페이지요청상태코드 Response message : 응답메시지대한결과를보여줌 이부분은응답헤더 (Response headers) 에대한정보를보여주고있습니다. 27
3.3 웹페이지접속가능여부확인테스트기능 (11/14) 테스트결과는다음과같습니다. 2 이부분을통해서이테스트가성공적으로수행되었다는것을알수있습니다. 그이유는우선에러의수가없으며웹페이지요청이성공적으로이루어졌기때문입니다. 이테스트의결과는다음과같습니다. 테스트는 2008 년 9 월 10 일 11 시 45 분에수행했으며로딩횟수는 1 번, 대기횟수는 1 번입니다. 요청한웹페이지의크기는 1168 바이트이며수행한테스트수는 1 번입니다. 에러는발생되지않았으며응답한코드의수는 200 개입니다. 마지막으로응답메세지는성공적으로받았다는것을 Response message 부분에서볼수있습니다. 즉웹페이지에대한접속가능여부또는존재여부를테스트한결과에러가발생되지않았으며또한응답메세지도성공적으로받았기때문에웹페이지는존재하며접속이가능하다는것을알수있습니다. 28
3.3 웹페이지접속가능여부확인테스트기능 (12/14) 테스트실패시에는다음과같은결과가출력됩니다. 이부분을통해서이테스트가실패하였다는것을알수있습니다. 우선에러가 1 개발생되었으며 404 상태코드. 즉웹페이지가존재하지않는다는것이출력되었기때문입니다. 29
3.3 웹페이지접속가능여부확인테스트기능 (13/14) Request 탭을누르면다음과같은화면이표시가됩니다. Request 탭은사용자가테스트를위해서요청한내용이표시가됩니다. 1 HTTP Request Defaults 와 HTTP Request 에설정된내용이표시가됩니다. 30
3.3 웹페이지접속가능여부확인테스트기능 (14/14) Response data 탭을누르면다음과같은화면이표시가됩니다. Response data 탭은응답한 data 가표시가됩니다. Show Text : 텍스트형식으로응답데이터를보여줍니다. Render HTML : HTML 형식으로응답데이터를보여줍니다. Render XML : XML 형식으로응답데이터를보여줍니다. Render JSON : JSON 형식으로응답데이터를보여줍니다. 31
3.4 웹페이지부하테스트기능 (1/12) 부하테스트란, 서비스가작동될서버에의도적으로일정량의트래픽을발생시켜서버가다운되지않고정상적으로작동되는지를테스트하는것입니다. 처음에할일은테스트플랜을작성하는것입니다. 16 페이지를참조합니다. 32
3.4 웹페이지부하테스트기능 (2/12) Thread Group 을만듭니다. Thread Group 이란테스트플랜이수행할하나의 Group 을말합니다. 왼쪽 Test Plan 에서오른쪽버튼 -> Add -> Thread Group 을선택 1 2 3 33
3.4 웹페이지부하테스트기능 (3/12) 오른쪽에나오는항목들을작성합니다. 부하테스트를위해서 Loop Count 부분에서 10000 을입력합니다. Loop Count 는웹페이지접속횟수를뜻합니다. 본예제에서는 Loop Count 에 10000 을입력하였으므로, 웹페이지에 10000 번접속한다는것입니다. 나머지부분은 18 페이지를참고하여입력합니다. 34
3.4 웹페이지부하테스트기능 (4/12) Http Request Defaults 를추가합니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Config Element -> Http Request Defaults 1 2 3 4 35
3.4 웹페이지부하테스트기능 (5/12) 아래의항목들을작성합니다. 20 페이지를참조합니다. 36
3.4 웹페이지부하테스트기능 (6/12) Http Request 를추가합니다. Thread Group 에서오른쪽버튼 -> Add -> Sampler -> HTTP Request 선택 1 2 3 4 37
3.4 웹페이지부하테스트기능 (7/12) Http Request 의입력정보는다음과같습니다. 22 페이지를참조합니다. 38
3.4 웹페이지부하테스트기능 (8/12) 테스트결과를출력해주는 Listener 를추가합니다. 2 개의 Listener 를추가할것입니다. View Results Tree Graph Results Thread Group 선택후마우스오른쪽버튼 -> Add -> Listener -> View Results Tree 선택 1 2 3 4 39
3.4 웹페이지부하테스트기능 (9/12) Thread Group 선택후마우스오른쪽버튼 -> Add -> Listener -> Graph Results 선택 1 2 3 4 40
3.4 웹페이지부하테스트기능 (10/12) 마지막으로해야할일은테스트를실행하는것입니다. 메뉴바의 Run 선택 -> Start 1 2 41
3.4 웹페이지부하테스트기능 (11/12) Start 클릭후왼쪽트리에서 View Results Tree 를선택합니다. 선택후오른쪽에서 HTTP Request 를클릭하면테스트결과가출력됩니다. 10000 번수행한테스트들이나열되며각각을클릭하면그에따른테스트결과를볼수있습니다. 42
3.4 웹페이지부하테스트기능 (12/12) 왼쪽트리에서 Graph Results 를선택하면아래와같은화면을볼수있습니다. Data : 검은색으로표시되며지금수행된테스트말합니다. Average : 파란색으로표시되며현재까지진행된테스트들의평균을말합니다. Deviation : 빨간색으로표시되며현재의편차를보여줍니다. Throughput : 녹색으로표시되며현재처리량을보여줍니다. Median : 보라색으로표시되며중앙값을보여줍니다. Deviation 은편차를나타내는것으로편차값이작을수록일정한응답시간을보여주는것을의미합니다. 따라서 Deviation 값이갑자기크게증가된다면응답시간이느리다는것을의미하며시스템을점검해볼필요가있습니다. 43
3.5 Response Assertion 테스트기능 (1/12) Response Assertion 이란해당요청의응답결과가지정한문자열을포함하고있는지의여부를검증할때사용하는 Assertion 입니다. 처음에할일은테스트플랜을작성하는것입니다. 16 페이지를참조합니다. 44
3.5 Response Assertion 테스트기능 (2/12) Thread Group 을만듭니다. Test Plan 선택후마우스오른쪽버튼 -> Add -> Thread Group 선택 1 2 3 45
3.5 Response Assertion 테스트기능 (3/12) 오른쪽에나오는항목들을작성합니다. Loop Count 부분에서 1 을입력합니다. 나머지부분은 18 페이지를참조하여작성합니다. 46
3.5 Response Assertion 테스트기능 (4/12) Http Request Defaults 를추가합니다. Thread Group 선택후오른쪽버튼 -> Add -> Config Element -> Http Request Defaults 1 2 3 4 47
3.5 Response Assertion 테스트기능 (5/12) 아래의항목들을 20 페이지를참고하여작성합니다. 48
3.5 Response Assertion 테스트기능 (6/12) Http Request 를추가합니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Sampler -> HTTP Request 선택 1 2 3 4 49
3.5 Response Assertion 테스트기능 (7/12) 22 페이지를참고하여 Http Request 를작성합니다. Http Request 에작성되지않은부분은자동으로 Http Request Defaults 에작성된내용으로대체됩니다. 50
3.5 Response Assertion 테스트기능 (8/12) Response Assertion 을추가합니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Assertions -> Response Assertion 수행 1 2 3 4 51
3.5 Response Assertion 테스트기능 (9/12) Response Assertion 항목들을입력합니다. 검사할문자열을입력합니다. Add 버튼클릭 -> Pattern to Test에검사할문자열입력 본매뉴얼에서는테스트웹페이지에 Hong Gil Dong이라는단어가존재하는지검사할것입니다. Name : Response Assertion 의이름을입력합니다. Response Field to Test : 테스트하는영역을지정합니다. Pattern Matching Rules : 검사하는규칙을지정합니다. Patterns to test : 검사에사용할패턴을입력합니다. 2 1 52
3.5 Response Assertion 테스트기능 (10/12) Assertion 테스트결과를보기위해서 Listener 를추가합니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Listener -> Assertion Results 선택 1 2 3 4 53
3.5 Response Assertion 테스트기능 (11/12) 마지막으로해야할일은테스트를실행하는것입니다. 메뉴바의 Run -> Start 1 2 54
3.5 Response Assertion 테스트기능 (12/12) 테스트실행후왼쪽 Assertion Results 를클릭하면다음과같은화면이출력됩니다. Write results to file/read from file : 결과를파일로작성하거나기존에있던결과를읽어들이는부분입니다. Log/Display only : 결과창의출력형식을지정합니다.(Errors/Successes) Configure : 결과창의출력형식에대해서좀더자세하게보기위해서는이부분에서환경설정을합니다. 테스트결과를보여주는창입니다. 지금출력된부분을설명하면테스트웹페이지에는요청한 Hong Gil Dong 이라는문자열이없다는것을보여주고있습니다. 55
3.6 Duration Assertion 테스트기능 (1/12) Duration Assertion 이란 Http Request 가지정한시간내에응답결과를리턴하는지의여부를검증해줍니다. 처음에할일은테스트플랜을작성하는것입니다. 16 페이지를참고하여테스트플랜을작성합니다. 56
3.6 Duration Assertion 테스트기능 (2/12) Thread Group 을만듭니다. 왼쪽 Test Plan 선택후마우스오른쪽버튼 -> Add -> Thread Group 선택 1 2 3 57
3.6 Duration Assertion 테스트기능 (3/12) 오른쪽에나오는항목들을작성합니다. 테스트를한번수행한다는의미로 Loop Count 부분에 1 을입력합니다. 나머지항목은 18 페이지를참고하여작성합니다. 58
3.6 Duration Assertion 테스트기능 (4/12) Http Request Defaults 를추가합니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Config Element -> Http Request Defaults 1 2 3 4 59
3.6 Duration Assertion 테스트기능 (5/12) 아래의항목들을작성합니다. 20 페이지를참고하여아래의항목들을작성합니다. 60
3.6 Duration Assertion 테스트기능 (6/12) Http Request 를추가합니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Sampler -> HTTP Request 선택 1 2 3 4 61
3.6 Duration Assertion 테스트기능 (7/12) Http Request 의입력정보는다음과같습니다. 22 페이지를참고하여 Http Request 를작성합니다. 62
3.6 Duration Assertion 테스트기능 (8/12) Duration Assertion 을추가합니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Assertions -> Duration Assertion 수행 1 2 3 4 63
3.6 Duration Assertion 테스트기능 (9/12) Duration Assertion 항목을입력합니다. Duration to Assert 부분에원하는시간을 Milliseconds 단위로입력합니다. 본매뉴얼에서는원하는시간으로 10 milliseconds 로입력하였습니다. Name : Duration Assertion 의이름을입력합니다. Duration in milliseconds : milliseconds 단위로원하는시간을입력합니다. 64
3.6 Duration Assertion 테스트기능 (10/12) Assertion 테스트결과를보기위해 Listener 를추가합니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Listener -> Assertion Results 선택 1 2 3 4 65
3.6 Duration Assertion 테스트기능 (11/12) 마지막으로해야할일은테스트를실행하는것입니다. 메뉴바의 Run -> Start 1 2 66
3.6 Duration Assertion 테스트기능 (12/12) 테스트실행후왼쪽 Assertion Results 를클릭하면다음과같은화면이출력됩니다. Write results to file/read from file : 결과를파일로작성하거나기존에있던결과를읽어들이는부분입니다. Log/Display only : 결과창의출력형식을지정합니다.(Errors/Successes) Configure : 결과창의출력형식에대해서좀더자세하게보기위해서는이부분에서환경설정을합니다. 테스트결과를보여주는창입니다. 지금출력된부분을설명하면테스트결과설정된시간내에응답결과가성공적으로왔다는것을보여주고있습니다. 67
3.7 Size Assertion 테스트기능 (1/12) Size Assertion 이란웹페이지의크기가원래목표한웹페이지의크기를준수하고있는지를확인하는검증입니다. 처음에할일은테스트플랜을작성하는것입니다. 16 페이지를참고하여테스트플랜을작성합니다. 2 3 68
3.7 Size Assertion 테스트기능 (2/12) Thread Group 을만듭니다. 왼쪽 Test Plan 선택후마우스오른쪽버튼 -> Add -> Thread Group 선택 1 2 3 69
3.7 Size Assertion 테스트기능 (3/12) 오른쪽에나오는항목들을작성합니다. 테스트를한번만수행한다는의미로써 Loop Count 부분에서 1 을입력합니다. 나머지항목은 18 페이지를참고하여작성합니다. 70
3.7 Size Assertion 테스트기능 (4/12) Http Request Defaults 를추가합니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Config Element -> Http Request Defaults 1 2 3 4 71
3.7 Size Assertion 테스트기능 (5/12) 19 페이지를참고하여아래의항목들을작성합니다. 72
3.7 Size Assertion 테스트기능 (6/12) Http Request 를추가합니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Sampler -> HTTP Request 선택 1 2 3 4 73
3.7 Size Assertion 테스트기능 (7/12) 22 페이지를참고하여아래의 Http Request 을작성합니다. 74
3.7 Size Assertion 테스트기능 (8/12) Size Assertion 을추가합니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Assertions -> Size Assertion 수행 1 2 3 4 75
3.7 Size Assertion 테스트기능 (9/12) Size Assertion 항목들을입력합니다. Size in bytes 부분에원하는바이트단위로값을입력한후 Type of comparison 에서비교타입을선택합니다. 본매뉴얼에서는 Size in bytes : 1000 을입력하고 Thpe of comparison 은 = 를선택하였습니다. Name : Size Assertion 의이름을입력합니다. Size in bytes : 웹페이지의크기와비교를원하는값을바이트단위로입력합니다. Type of Comparison : 비교타입을선택합니다. 76
3.7 Size Assertion 테스트기능 (10/12) Assertion 테스트결과를보기위해 Listener 를추가합니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Listener -> Assertion Results 선택 1 2 3 4 77
3.7 Size Assertion 테스트기능 (11/12) 마지막으로해야할일은테스트를실행하는것입니다. 메뉴바의 Run -> Start 클릭 1 2 78
3.7 Size Assertion 테스트기능 (12/12) 테스트실행후왼쪽 Assertion Results 를클릭하면다음과같은화면이출력됩니다. Size Assertion 수행결과테스트실패가발생되었습니다. 테스터는웹페이지의크기가 1,000Byte 인가를검사하였지만웹페이지의크기는 1,168Bytes 로서로같지가않습니다. 따라서테스트가실패가되었다고 는알려주고있습니다. 79
4. 도구활용예제
4. 도구활용예제 세부목차 4.1 예제설명 4.2 테스트플랜작성하기 4.3 Thread Group 작성하기 4.4 Http Request Defaults 작성하기 4.5 Http Request 작성하기 4.6 Duration Assertion 작성하기 4.7 Size Assertion 작성하기 4.8 Listener 추가하기 4.9 테스트실행하기 4.10 테스트결과보기 81
4. 도구활용예제 4.1 예제설명 (1/2) 예제개요 예제설명 - 경기대학교웹페이지를사용하는학생들은학교측에계속해서웹페이지를개선할것을요구하였습니다. - 학생들의요구사항은다음과같습니다. - 웹페이지접속에너무많은시간이걸림 - 몇몇웹페이지는존재하지않음 - 수강신청기간에는웹페이지가열리지않음 - 경기대학교웹관리자인홍길동씨는자신의관리하는웹에대해서몇가지의테스트를수행하기로결정하였습니다. - 웹페이지에대한부하테스트기능 - 응답결과를검증하기위한 Assertion 기능중 Duration Assertion 테스트기능 - 응답결과를검증하기위한 Assertion 기능중 Size Assertion 테스트기능 82
4. 도구활용예제 4.1 예제설명 (2/2) 관리자홍길동씨의테스트계획은다음과같습니다. 부하테스트수행시반복횟수는 1000 번으로설정한다. Duration Assertion 테스트수행시지정한시간은 10Millsecond 으로설정한다. Size Assertion 테스트수행시테스트할웹페이지크기가 2,000Bytes 보다작을것이라고설정한다. 홍길동씨는테스트결과를바탕으로웹페이지수정작업을할것입니다. [ 부하테스트결과를보여주는 Graph Results 화면 ] 83
4.2 테스트플랜작성하기 처음으로홍길동씨가해야할일은테스트플랜을작성하는것입니다. 16 페이지를참고하여작성합니다. 84
4.3 Thread Group 작성하기 (1/2) Thread Group 을만듭니다. Test Plan 선택후마우스오른쪽버튼 -> Add -> Thread Group 선택 1 2 3 85
4.3 Thread Group 작성하기 (2/2) 오른쪽항목들에대해작성합니다. Loop Count 는 1000 으로설정합니다. 86
4.4 Http Request Defaults 작성하기 (1/2) Http Request Defaults 를추가합니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Config Element -> Http Request Defaults 1 2 3 4 87
4.4 Http Request Defaults 작성하기 (2/2) Http Request Defaults 를작성합니다. 19 페이지를참조하여다음의항목들을작성합니다. 88
4.5 Http Request 작성하기 (1/2) Http Request 를추가합니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Sampler -> HTTP Request 선택 1 2 3 4 89
4.5 Http Request 작성하기 (2/2) Http Request 의입력정보는다음과같습니다. 22 페이지를참고하여아래의항목들을작성합니다. 90
4.6 Duration Assertion 작성하기 (1/2) Duration Assertion 테스트수행을위한 Duration Assertion 을추가해야합니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Assertions -> Duration Assertion 선택 1 2 3 4 91
4.6 Duration Assertion 작성하기 (2/2) Duration Assertion 테스트를위해원하는응답시간을 10Millseconds 로입력합니다. 92
4.7 Size Assertion 작성하기 (1/2) Size Assertion 테스트수행을위한 Size Assertion 을추가합니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Assertions -> Size Assertion 선택 1 2 3 4 93
4.7 Size Assertion 작성하기 (2/2) Size Assertion 테스트를위해크기는 2,000Byte 로설정하였으며비교타입은 > 으로설정하였습니다. 94
4.8 Listener 추가하기 (1/3) 결과를보기위해 3 개의 Listener 를추가합니다. View Results Tree Listener 를추가합니다 Thread Group 선택후마우스오른쪽버튼 -> Add -> Listener -> View Results Tree 선택 1 2 3 4 95
4.8 Listener 추가하기 (2/3) 아래화면은 Graph Results Listener 를추가하는장면입니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Listener -> Graph Results Tree 선택 1 2 3 4 96
4.8 Listener 추가하기 (3/3) 아래화면은 Assertion Results Listener 를추가하는장면입니다. Thread Group 선택후마우스오른쪽버튼 -> Add -> Listener -> Assertion Results Tree 선택 1 2 3 4 97
4.9 테스트실행하기 마지막으로테스트를실행합니다. 메뉴바의 Run -> Start 클릭 1 2 98
4.10 테스트결과보기 (1/4) View Results Tree 를클릭하면다음과같은화면이출력됩니다. 테스트를수행한결과, 3 가지의테스트가모두성공했다는것을아래의화면을통해알수있습니다. 99
4.10 테스트결과보기 (2/4) 만약실패한테스트가존재한다면아래의화면과같이빨간색글씨로표시가되며그부분을클릭하면테스트에대한상세정보를볼수있습니다. 테스트가실패한이유는 3 가지의테스트중 Duration Assertion 테스트수행중홍길동씨는응답시간을 10Millseconds 를기대하였지만실제웹사이트의응답시간은 11Millseconds 이었습니다. 따라서테스트는실패하였습니다. 100
4.10 테스트결과보기 (3/4) Graph Results 를클릭하면부하테스트에대한결과를볼수있습니다. Deviation 은편차를나타내는것으로편차값이작을수록일정한응답시간을보여주는것을의미합니다. 따라서 Deviation 값이갑자기크게증가된다면응답시간이느리다는것을의미하며시스템을점검해볼필요가있습니다. 101
4.10 테스트결과보기 (4/4) 마지막으로 Assertion Results 부분을클릭하면다음과같은결과를볼수있습니다. 만약테스트실패가발생되면다음과같이표시가됩니다. 위부분은 Duration Assertion 테스트가실패결과를보여주는부분입니다. 102
5. FAQ
5. FAQ 질문 1) ASF (Apache Software Foundation) 란무슨단체인가요? 답 1) ASF 는 Apache Software Foundation 의약자로써 Apache HTTP Server 를포함한 Apache 프로젝트를지원하는비영리단체이며전세계에있는소프트웨어개발자들의커뮤니티입니다. ASF 에서만들어지는소프트웨어는 Apache License 이며그러므로 ASF 에서만들어지는소프트웨어는 Free Software 또는 Open Source Software 입니다. 현재많은프로젝트가진행되고있으며프로그래머에있어서중요한단체중에하나입니다. 질문 2) Apache License 란무엇인가요? 답 2) Apache License 는 Apache Software Foundation(ASF) 에의해서만들어지는소프트웨어에붙는 License 입니다. ASF 에서만들어지는소프트웨어는모두이 License 가적용됩니다. Apache License 는 Free Software License 이며이는비용을지불하지않고서사용자가사용할수있다는것을말합니다. 104
6. 도구평가
6. 도구평가 는테스트를수행하여그결과를확인할수있도록도와주는테스트어플리케이션으로특히개발한 Web Application 성능을테스트하는데유용한도구입니다. 는순수 100% 자바로작성된프로그램으로 JDK 1.3 이상버전이설치된운영체제라면어디서든지사용할수있습니다. 106
7. 용어집
7. 용어집 본매뉴얼에서사용하고있는용어가정리되어있습니다. 용어 테스트플랜 (Test Plan) 설명 가수행할일련의실행코드집합을말합니다. Thread Group 테스트플랜이수행할하나의 Group 을말합니다. Duration Assertion 지정한시간내에응답결과를리턴하는지의여부를검증하는것을말합니다. 108