[DevOps] Azure DevOps에서 Jmeter 를 이용한 부하테스트

DevOps
작성자
Roronoa
작성일
2019-02-08 10:43
조회
14088
Azure DevOps 에는 수많은 기능이 있으며 이 글은 그중에서 Jmeter를 이용한 부하테스트를 Azure DevOps에서 사용해보도록 합니다. 일반적으로 Azure Web App의 경우는 단순 퍼포먼스를 테스트 할수 있으며 그 기증은 Azure Web App을 사용할때만 사용됩니다. Azure DevOps는 AWS의 CodeCommit, CodeDeploy, CodePipeline, CodeBulid 가 합체 모드로 되어 있는 제품입니다.  그중에서 Jmeter 를 이용해서 부하 테스트를 간단하게 해볼수 있는 방법을 소개 합니다.

자 왜 간단 이라는 표현을 사용했느냐? 라고 물으신다면 부하테스트 부분은 실제 많이 사용되는  상용툴이나 오픈소스를 사용해서 정확한 결과 값을 다양한 방식으로 뽑아 내야는 하나의 "장르" 입니다. 이런 "장르" 를 이 기능하나로 대처할수 없지만 간단하게는 해볼수 있다는 측면이며 추후 Azure DevOps가 더 발전하면 다른 상용툴이나 오픈소스처럼 좋은 결과물을 뽑아 낼수 있을듯합니다. 자 현재는 이정도! 라고 생각하면 됩니다.  전에 쓴 글인 부하 테스트에 대한 글 링크 http://cloud.syncrofusion.com/?page_id=4&uid=109&mod=document 를 보시면 다른 방법으로 하실수도 있습니다.

자 현재까지는 Jmeter를 로컬에 설치하지 않고는 이 기능을 쓸수 없습니다. 왜냐하면 JMX 파일이 있어야 합니다 자 그러므로 Jmeter를 설치해보도록 하죠. 추후에는 JMX 없이 그냥 되도록 Microsoft에 피드백을 넣어보도록 합시다.

 

저는 이 Jmeter를 우선 가상머신에 설치 했으나 로컬 컴퓨터에도 설치하실수 있습니다

  1. Jmeter 환경 설정 

  2. Jmeter 설치

  3. JMX 파일 만들기

  4. Azure DevOps 계정 만들고 프로젝트 만들기

  5. Azure DevOps 로 결과 확인


 

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Jmeter 환경 설정

  1. VM을 생성

  2. Java 설치 http://www.oracle.com/technetwork/java/index.html

  3. Download Java SE 를 다운로드 후 닥설치

  4. Java 환경변수 설정 https://jaykim361.tistory.com/171

  5. 다운로드 및 설치 http://jmeter.apache.org/download_jmeter.cgi 다운로드

  6. 플러그인 설치 https://jmeter-plugins.org/install/Install/

  7. 다운받은 jar 파일을 lib/ext 폴더에 넣고 제시작

  8. 다운로드 받은 파일 압축 풀고 bin 디렉토리 밑에 jmeter.bat 실행

  9. Jmeter는 기본구조는 3개로 되어 있음 



  • ThreadGroup (각종 테스트 루트)

  • 샘플러(사용자 Action처리)

  • 리스너( 결과 값 처리 및 그래프)


Jmeter 설치

나머진 http://codeigniter-kr.org/bbs/view/lecture?idx=7082 따라하세요

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

JMX 파일 만들기 (Azure Devops에서 Jmeter를 사용한 로드테스트)

 

1.Azure Devops에서는 JMX 파일을 만들수 있는 방법이 없으므로 Jmeter 를 로컬 컴퓨터에서 설치한다.

2.일단 Jmeter는 자바로 만들어져 있으므로 Java JDK설치 한다. 64비트 윈도우 http://www.oracle.com/technetwork/java/index.html

3.Java 환경 변수 설정 https://jaykim361.tistory.com/171

4.Jmeter 5.0 버전을 다운로드 및 설치 http://jmeter.apache.org/download_jmeter.cgi

5.Jmeter를 설치하고 bin 폴더 밑에 Jmeter.bat 파일로 실행

002 compute-multi-vm

7. Test Plan 이름을 Jmeterman으로 이름 변경후 실험실 삼각 플라스크 모양의 아이콘을 왼쪽 클릭하면 Add -> Threads -> Thread Group 을 선택한다.

002 compute-multi-vm
002 compute-multi-vm

8.이 Thread Group은 이 스크립트가 몇번을 재생할것인지를 선택하는 가장 중요한 것이다.

9.대충 10 2 1 정도로 바꾼다.

10.이번엔 왼쪽의 Thread Group아이콘을 클릭한후 Add -> Sampler -> HTTP Requset 를 선택한다.

11.HTTP Request 에서 Sever Name에 공격 대상의 링크를 넣는다 (자 이떄 http://cloud.syncrofusion.com/ 으로 넣으면 안되고 cloud.syncrofusion.com 식으로 넣어야 한다. 그냥 인터넷 브라우저에서 복사해서 넣으면 망한다.

12.밑에 스샷처럼 저장한다.
002 compute-multi-vm
002 compute-multi-vm
13.저장하면 jmx 파일로 저장이 된다.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Azure DevOps 계정 만들고 프로젝트 만들기

자 이단계까지가 jmx 파일로 저장이 된것이고 Azure Devops 에서 제공하는 파일이 이제 만들어졌다.

이번엔 Azure Devops 를 만들어보자. 포털에 합체된 형태로 나중에 되겠지만 멋지게도 Azure Devops는 포털이 다르다. https://dev.azure.com 어짜피 곧 OMS처럼 이 포털도 언젠가 그냥 Azure 포털로 옴겨질 운명이겠지만..

1.우선 로그인 하고(Azure 계정이 없는 사람은 어떻게 되는지 모르겠다) Get Free 버튼을 누르면 밑에 화면으로 넘어간다. 아마도 추후 엔 돈을 받을듯 하다.
002 compute-multi-vm

2.Create project 버튼을 눌러서 프로젝트를 Private 이나 Public으로 만든다.

3.밑에 화면처럼 Test Plans -> Load Test -> New 순서대로 버튼을 누른후 파일선택에서 아까 Jemeter에서 만든 .jmx 파일을 업로드 한다.
002 compute-multi-vm
4.Supporting 파일은 변수를 안만들었으므로 올릴 필요없다.

5.자 Run Test를 누르고 결과값을 기다리자.

6.공식문서에서 보면 밑에 스샷처럼 이쁘게 나온다.
002 compute-multi-vm002 compute-multi-vm
7.오른쪽에 스샷은 공식문서의 예쁘게 나온 모양이고 왼쪽은 멋지게 개판으로 UI가 깨져서 나온 현상황이다. 브라우저를 영어로 바꾸고 Microsoft 계정의 프로필의 지역을 미국으로 바꾸면 왼쪽으로 잘나온다.

8.자 그럼 잘 적용은 됬 는지 실제 WebApp 메트릭 로그 그래프를 보자
002 compute-multi-vm
9.부하가 올라갔다.  되긴 한다. 

 

결론

현재는 Preview 이며 Azure Devops에서 로드테스트의  경우는 기능도 적고 다양한 시나리오는 전혀 안되며 스크립트도 여러가지 추가하면 전부 에러가 난다. 조금더 발전한 후에 사용하거나 간단 테스트로만 사용하면 사용 할만 하다.