Apache JMeter 하중 테스트 시 설정 및 테스트 후 검사 항목

비즈니스에서 아파치 JMeter를 사용하여 API에 대한 로드 테스트를 수행했기 때문에 이 프로세스를 공유했습니다.
카탈로그
・부하 테스트의 개요
/아파치 JMeter 다운로드/시작
• 테스트 계획 작성
· 디버깅(JMeter)
・부하 테스트 실행
• 테스트 후 검사 항목
실행 중인 터미널, 버전 정보는 여기에 있습니다.
Mac OSX El Capitan 10.11.5
Apache JMeter 5.1.1
부하 테스트의 개요
시험 대상은 행사 참가자를 받는 API다.검증은 참석자가 몰려와도 시스템이 아무런 문제 없이 요구를 처리할 수 있다.
참석자는 입장증을 휴대하고 회의장에서 프론트 데스크를 통해 QR코드를 읽고 읽을 때 API를 두드려 주십시오.
실행 주파수는 20rq/sec이고 실행 시간은 90min입니다.

Apache JMeter 다운로드 시작
공식 사이트에서 현재 버전의 5.1.1을 다운로드하고 다운로드한 zip 파일을 펼칩니다.
bin 폴더 바로 아래에 있는 jemeter 파일을 실행하면 JMeter 화면이 표시됩니다.

터미널에 주의사항을 동시에 표시합니다.Don't use GUI mode for load testing ! only for Test creation and Test debugging.GUI 모드는 테스트 용례의 제작 및 디버깅에 사용되며, 부하 테스트의 실행에는 사용되지 않습니다.( 1.0.2 Load Test running )
또한 일본어로 화면을 표시하려면bin/jemeter를 사용하십시오.properties를 통해 다음과 같은 설정을 합니다.
 #language=en
 language=ja
테스트 계획 작성
로드 테스트를 위해 Apache Jmeter의 GUI에서 다음을 설정합니다.
단서 그룹
샘플링(HTTP 요구 사항)
사용자 매개 변수
HTTP 인증 관리자
  • 단서 그룹
  • 테스트 계획을 작성할 때 먼저 스레드 그룹을 만든다.스레드 그룹의 단위는 테스트 계획의 단위이기 때문에 참석자의 검색과 신청 처리를 동시에 처리하고자 하는 상황에서 부하 테스트를 하려면 모든 처리가 스레드 그룹을 만들어야 한다.이번에는 API 테스트만 받는 거라 스레드 그룹을 만들었어요.
    처음 표시된 Test Plan(테스트 계획)에서 [추가] Threads(Users) > 스레드 그룹]을 선택하여 빨간색 상자 섹션을 설정합니다.

    이름:실마리 그룹 이름
    스레드 수: 생성할 스레드 수
    Ramp-Up 기간(초): 지정된 스레드 수를 생성하는 데 걸리는 시간
    순환 횟수: 한 라인에서 반복 테스트하는 횟수
    Delay Theread creation until need:선택
    5400개의 스레드를 5400초로 설정하여 한 스레드에서 20회 순환하고 20rq/sec의 주파수로 API 90분을 실행합니다.
    Delay Thread creation until needed 스레드의 생성을 지연시킬 수 있으며, 스레드가 시작될 때까지 온라인 스레드 수가 많을 때 설정하는 것이 좋다.Ramp-Up 동안 생성 시간을 설정하고 이 시간을 선택하지 않으면 테스트가 시작되는 동안 모든 스레드가 생성됩니다.

  • 샌프란시스코(HTTP 요청)
  • 루틴 그룹에서 "추가"샘플러 > HTTP 요청 "을 선택하여 빨간 상자 부분에서 보내는 요청 정보를 설정합니다.이번에 한 말에는 API 접수 요청 정보가 기재돼 있다.
    * 특히 목적지에 전송된 WEB 서버 정보가 잘못되었는지 확인합니다.테스트 대상이 아닌 서버에 절대 부하를 가하지 않습니다.

    샘플러는 테스트 용례에 대해 요청을 보내고 응답을 기다리는 역할을 한다.여러 샘플러를 만들 때, 표시된 맨 위에서부터 순서대로 실행됩니다.
    이름의 barcode'${barcode no}' 로 기록된 변수는 요청마다 다른 값을 설정합니다.(후술)
  • 사용자 매개 변수
  • 단서 그룹에서 추가 사전 처리 > 사용자 매개 변수를 선택합니다.

    이름: 매개 변수의 이름(barcode no) ※ Sanplay에 기재된 이름과 동일
    사용자 1: 매개변수 값이 기재된 텍스트 파일의 경로 (/Users/example/barcode list.txt)
    텍스트 파일은 다음과 같습니다.
    # barcode_list.txtの記載内容
    1001
    1002
    1003
    1004
    (略)
    
    모든 테스트 용례로 ${barcode no}의 값은 10001, 10002가 순서대로 저장되고 마지막 매개 변수에 도달했을 때 첫 번째 1001에서 저장됩니다.사용자 1열에 기재된 "__StringFromFile"은 Apache Jmeter에 정의된 함수에 의해 지정된 파일을 읽고 읽기 결과를 한 줄씩 반환합니다.
  • HTTP 인증 관리자(Basic 인증 설정)
  • 스레드 그룹에서 "추가"설정 요소 > HTTP 인증 관리자 "를 선택하고 빨간색 상자 부분에 Basic 인증 정보를 기록합니다.

    여기까지 테스트 계획을 완성했으니 보관해야 한다.
    디버그(JMeter)
    JMeter가 제대로 인식해 이곳으로 이동했는지 확인하기 위해 다람쥐를 만들었다.
    스레드 그룹에서'추가'청중을 통해 각각 다음과 같은 내용을 선택한다.

  • 트리에 결과 표시하기: 요청, 응답 데이터를 확인할 수 있음

  • 테이블에 결과 표시하기: 각 요청의 시작 시간, 응답 시간을 확인할 수 있음

  • 통계 보고서: Throughput, Error율 등 합계 결과를 확인할 수 있음
  • 다람쥐를 만들면 테스트가 시작되면 그 결과가 다람쥐마다 차례로 나타난다.의도적인 실행 주파수, 요청, 응답 데이터인지 확인하십시오.다람쥐는 결과를 확인하기 편하지만 자원을 많이 소모한 물건(위에는 나무 모양으로 결과를 표시)도 있어 디버깅에만 사용된다.
    부하 테스트 실행
    디버깅까지 끝났는데 문제가 없다면 부하 테스트를 시작해야 한다.명령줄에서 상술한 테스트 계획을 집행하다.(GUI에서는 수행되지 않음)
    bin/jmeter -n -t <テストプランファイルパス> -l <テストレポートファイル出力パス>
    
    -n: 명령행 모드로 실행
    -t: 실행할 테스트 계획을 포함하는 JMX 파일 지정하기
    기타 옵션은 여기.
    테스트가 완료되면 보고서 파일이 출력되고 JMter의 청중 화면에서 읽히며 테스트 후 검사 항목에서 확인됩니다.

    테스트 후 검사 항목
  • 요청 주파수가 계획치에 부합되는지 여부(이번에는 20rq/sec)
  • → JMeter 통계 보고서의 "Throughput"및 WEB 서버 액세스 로그를 통해 확인
  • 응답 상태가 200 이상인지 여부
  • → JMeter의 통계 보고서의 "Error"가 0이거나 결과 파일의 상태 코드가 200에 불과한지 확인
  • 응답 시간 허용 시간
  • → JMeter 결과 테이블에 표시되는 "SampleTime"의 예상 시간 확인
  • 모니터링 툴에 경고가 있는지 여부
  • → Macerel 등 경보가 있는지 확인
  • 서버 리소스가 충분한지(WEB·DB 서버의 CPU·스토리지 등)
  • →Macerel 등을 통해 리소스 사용 확인
  • API 측에 오류가 발생했는지 여부
  • → WEB DB 서버, 애플리케이션에 대한 로그 확인
  • 느린 속도 조회 여부
  • → DB 로그 확인

    좋은 웹페이지 즐겨찾기