수색…


소개

JMeter 성능 테스트에서 상관 관계 란 서버 응답에서 동적 데이터를 가져 와서 후속 요청에 게시하는 기능을 의미합니다. 이 기능은 토큰 기반 보호 응용 프로그램과 같이 테스트의 여러 측면에서 중요합니다.

Apache JMeter에서 정규 표현식 추출기를 사용한 상관 관계

텍스트 응답에서 정보를 추출해야하는 경우 가장 쉬운 방법은 정규 표현식을 사용하는 것입니다. 일치하는 패턴은 Perl에서 사용 된 것과 매우 유사합니다. 비행기 표 구매 워크 플로우를 테스트한다고 가정 해 봅시다. 첫 번째 단계는 구매 오퍼레이션을 제출하는 것입니다. 다음 단계는 첫 번째 요청에 대해 반환해야하는 구매 ID를 사용하여 모든 세부 정보를 확인할 수 있는지 확인하는 것입니다. 첫 번째 요청에서 추출해야하는 유형의 ID가있는 html 페이지가 반환된다고 가정 해 봅시다.

<div class="container">
  <div class="container hero-unit">
    <h1>Thank you for you purchse today!</h1>
       <table class="table">
           <tr>
             <td>Id</td>
             <td>Your purchase id is 1484697832391</td>
           </tr>
           <tr>
             <td>Status</td>
             <td>Pending</td>
           </tr>
           <tr>
             <td>Amount</td>
             <td>120 USD</td>
            </tr>
         </table>
    </div>
</div>

이러한 상황은 JMeter 정규식 추출기를 사용하는 데 가장 적합한 방법입니다. 정규 표현식은 검색 패턴을 설명하기위한 특수 텍스트 문자열입니다. 정규 표현식 작성 및 테스트에 유용한 온라인 리소스가 많이 있습니다. 그 중 하나는 https://regex101.com/ 입니다.

여기에 이미지 설명을 입력하십시오.

이 구성 요소를 사용하려면 JMeter 메뉴를 열고 추가 -> 포스트 프로세서 -> 정규 표현식 추출기

여기에 이미지 설명을 입력하십시오.

정규 표현식 추출기에는 다음 필드가 포함됩니다.

  • 참조 이름 - 추출 후 사용할 수있는 변수의 이름입니다.
  • 정규 표현식 - 텍스트 내에서 검색 될 문자열 (패턴)을 나타내는 기호 및 문자의 시퀀스입니다.
  • 템플릿 - 그룹에 대한 참조를 포함합니다. 정규식에는 하나 이상의 그룹이있을 수 있으므로 그룹 번호를 $ 1 $ 또는 $ 2 $ 또는 $ 1 $$ 2 $로 지정하여 추출 할 그룹 값을 지정할 수 있습니다 (두 그룹 모두 추출)
  • 일치 번호 - 사용할 일치 항목을 지정합니다 (0 값은 임의 값 / 임의의 양수와 일치 함 N은 ForEach 컨트롤러에서 N 번째 일치 / 음수 값을 선택해야 함을 의미)
  • 기본값 - 일치하는 항목이없는 경우 변수에 저장 될 기본값이 변수에 저장됩니다.

"적용 대상"확인란은 포함 된 리소스를 요청하는 샘플을 처리합니다. 이 매개 변수는 정규식을 기본 샘플 결과에 포함할지 또는 포함 된 리소스를 비롯한 모든 요청에 ​​적용할지 여부를 정의합니다. 이 param에는 몇 가지 옵션이 있습니다.

  • 주요 샘플 및 하위 샘플
  • 기본 샘플 만
  • 하위 샘플 만
  • JMeter 변수 - 어설 션은 다른 요청으로 채울 수있는 명명 된 변수의 내용에 적용됩니다.

"확인할 필드"확인란을 선택하면 정규 표현식을 적용 할 필드를 선택할 수 있습니다. 거의 모든 매개 변수는 자체 설명 적입니다.

  • 본문 - 응답 본문, 예 : 웹 페이지의 내용 (헤더 제외)
  • Body (이스케이프 처리되지 않은 바디) - 모든 HTML 이스케이프 코드가 대체 된 응답 본문. HTML 이스케이프는 컨텍스트에 관계없이 처리되므로 일부 잘못 대체 될 수 있습니다 (*이 옵션은 성능에 큰 영향을줍니다)
  • Body - Body as a Document - Apache Tika을 통해 다양한 유형의 문서에서 텍스트를 추출합니다 (* 또한 성능에 영향을 줄 수 있음)
  • Body - Request Headers - 비 HTTP 샘플에는 존재하지 않을 수 있음
  • 본문 - 응답 헤더 - HTTP 이외의 샘플에는 표시되지 않을 수 있음
  • 본문 - URL
  • 응답 코드 - 예 : 200
  • 본문 - 응답 메시지 - 예. 예.

표현식을 추출한 후 $ {purchaseId} 변수를 사용하여 후속 요청에서 사용할 수 있습니다.

여기에 이미지 설명을 입력하십시오.

이 표에는 JMeter 정규 표현식에서 지원되는 모든 수축이 포함되어 있습니다.

여기에 이미지 설명을 입력하십시오. 여기에 이미지 설명을 입력하십시오.

JMeter에서 XPath 추출기를 사용한 상관 관계

XPath는 XML 문서의 요소와 속성을 탐색하는 데 사용할 수 있습니다. 정규 표현식 추출기를 사용하여 응답의 데이터를 추출 할 수없는 경우 유용 할 수 있습니다. 예를 들어, 동일한 속성을 사용하지만 값이 다른 유사한 태그에서 데이터를 추출해야하는 시나리오의 경우 XPath Extractor는 CSS / JQuery Extractor와 유사하지만 XPath Extractor는 XML 콘텐츠에 사용되어야하고 CSS / JQuery Extractor는 HTML 콘텐츠에 사용해야합니다. 응답에서 두 번째 테이블 행에서 값을 추출해야하는 다른 값을 가진 테이블이 있다고 가정 해 봅시다.

<div id="weeklyPrices">
    <tr>
        <td>$56.00</td>
        <td>$56.00</td>
        <td>$56.00</td>
        <td>$56.00</td>
        <td>$60.00</td>
        <td>$70.00</td>
        <td>$70.00</td>
    </tr>
</div>

앞에서 살펴보면 해당 사례의 올바른 XPath는 다음과 같습니다. // div [@ id = 'weeklyPrices'] / tr / td 1

이 구성 요소를 사용하려면 JMeter 메뉴를 열고 추가 -> 프로세서 후 처리 -> XPath 추출기를 엽니 다.

여기에 이미지 설명을 입력하십시오.

XPath Extractor는 '정규 표현식 추출기를 사용하여 상관 관계 분석'에서 언급 한 몇 가지 공통 구성 요소를 포함합니다. 여기에는 이름, 적용 대상, 참조 이름, 일치 번호 (JMeter 3.2 이후) 및 기본값이 포함됩니다.

만들고 (처럼 만들어 XPath를 테스트하기 위해 온라인 치트 시트와 편집자와 웹 리소스가 많이있다 이 하나 ). 그러나 아래 예제를 기반으로 가장 일반적인 xpath 로케이터를 만드는 방법을 찾을 수 있습니다.

여기에 이미지 설명을 입력하십시오.

HTML을 XHTML로 구문 분석하려면 "깔끔한 사용"옵션을 선택해야합니다. "깔끔한 사용"상태를 결정한 후 추가 옵션이 있습니다.

'깔끔한 사용'을 선택한 경우 :

  • 조용한 - 깔끔한 조용한 깃발을 설정합니다.
  • 오류보고 - 깔끔한 오류가 발생하면 그에 따라 어설 션을 설정하십시오
  • Show Warnings - Tidy show warnings 옵션을 설정합니다.

'깔끔한 사용'이 선택 취소 된 경우 :

  • 네임 스페이스 사용 - 선택하면 XML 파서가 네임 스페이스 확인을 사용합니다.
  • XML 유효성 검사 - 지정된 스키마와 비교하여 문서를 확인합니다.
  • 공백 무시 - 공백을 무시합니다.
  • 외부 DTD 가져 오기 - 선택하면 외부 DTD를 가져옵니다.

'텍스트 내용 대신 전체 XPath 부분 반환'은 자기 설명 적이므로 xpath 값뿐만 아니라 xpath 로케이터 내의 값을 반환하려는 경우 사용해야합니다. 디버깅 요구에 유용 할 수 있습니다.

XPath 로케이터를 테스트하기위한 매우 편리한 브라우저 플러그인 목록도 있습니다. Firefox의 경우 ' Firebug '플러그인을 사용할 수 있으며 Chrome의 경우 ' XPath 도우미 '가 가장 편리한 도구입니다.

여기에 이미지 설명을 입력하십시오.

JMeter의 CSS / JQuery Extractor를 사용한 상관 관계

CSS / JQuery 추출기를 사용하면 CSS / JQuery 선택기 구문을 사용하여 서버 응답에서 값을 추출 할 수 있습니다. 정규 표현식을 사용하여 작성하기 어려울 수 있습니다. 후 처리기로서이 요소는 요청 샘플러로부터 요청 된 노드, 텍스트 또는 속성 값을 추출하고 결과를 주어진 변수에 저장하기 위해 실행되어야합니다. 이 구성 요소는 XPath 추출기와 매우 유사합니다. CSS, JQuery 또는 XPath 사이의 선택은 대개 사용자 환경 설정에 따라 다르지만, XPath 또는 JQuery는 DOM을 트래버스하고 트래버스 할 수 있지만 CSS는 DOM을 따라갈 수 없다는 점을 언급 할 필요가 있습니다. Java와 관련된 Stack Overflow 문서에서 모든 항목을 추출한다고 가정 해 봅시다. Firebug 플러그인을 사용하여 Firefox의 CSS / JQuery 선택기 또는 Chrome의 CSS 선택기 테스터 를 테스트 할 수 있습니다.

여기에 이미지 설명을 입력하십시오.

이 구성 요소를 사용하려면 JMeter 메뉴를 열고 추가 -> 포스트 프로세서 -> CSS / JQuery Extractor를 엽니 다.

여기에 이미지 설명을 입력하십시오.

거의 모든 추출기 필드는 정규 표현식 추출기 필드와 유사하므로 해당 예제에서 설명을 얻을 수 있습니다. 한 가지 차이점은 "CSS / JQuery Extractor 구현"필드입니다. JMeter 2.9부터 jsoup 구현 (구문에 대한 자세한 설명은 여기 ) 또는 JODD Lagarto (자세한 구문은 여기 에서 찾을 수 있음)의 두 가지 구현에 따라 CSS / JQuery 추출기를 사용할 수 있습니다. 두 가지 구현은 거의 동일하며 구문의 차이가 거의 없습니다. 이들 사이의 선택은 사용자의 취향에 따라 결정됩니다.

여기에 이미지 설명을 입력하십시오.

위에서 설명한 구성에 따라 요청한 페이지에서 모든 항목을 추출하고 "디버그 샘플러"및 "결과 트리보기"수신기를 사용하여 추출 된 결과를 확인할 수 있습니다.

JSON 추출기를 사용한 상관 관계

JSON은 웹 기반 응용 프로그램에서 일반적으로 사용되는 데이터 형식입니다. JMeter JSON Extractor는 JMeter의 JSON 기반 응답에서 값을 추출하기 위해 JSON Path 표현식을 사용하는 방법을 제공합니다. 이 포스트 프로세서는 HTTP 샘플러의 하위 또는 응답이있는 다른 샘플러에 배치해야합니다.

이 구성 요소를 사용하려면 JMeter 메뉴를 열고 Add -> Post Processors -> JSON Extractor를 엽니 다 .

여기에 이미지 설명을 입력하십시오.

JSON Extractor는 Regular Expression Extractor와 매우 유사합니다. 이 예제에서는 거의 모든 주요 필드를 언급합니다. 특정 JSON 추출기 매개 변수에는 'Compute concatenation var'매개 변수 하나만 있습니다. 많은 결과가 발견되는 경우이 추출기는 ','구분 기호를 사용하여 연결하고 _ALL이라는 var에 저장합니다.

이 서버가 JSON으로 응답한다고 가정 해 보겠습니다.

{ 
    "store": {
        "book": [ 
          { "category": "reference",
            "author": "Nigel Rees",
            "title": "Sayings of the Century",
            "price": 8.95
          },
          { "category": "fiction",
            "author": "Evelyn Waugh",
            "title": "Sword of Honour",
            "price": 12.99
          },
          { "category": "fiction",
            "author": "Herman Melville",
            "title": "Moby Dick",
            "isbn": "0-553-21311-3",
            "price": 8.99
          },
          { "category": "fiction",
            "author": "J. R. R. Tolkien",
            "title": "The Lord of the Rings",
            "isbn": "0-395-19395-8",
            "price": 22.99
          }
        ],
        "bicycle": {
        "color": "red",
        "price": 19.95
    }
  }
}

아래 표는 지정된 JSON에서 데이터를 추출하는 다양한 방법의 좋은 예입니다.

여기에 이미지 설명을 입력하십시오.

링크 를 통해 관련 예제와 함께 JSON 경로 형식에 대한 자세한 설명을 찾을 수 있습니다.

BlazeMeter의 'SmartJMX'를 사용하여 자동 상관 관계 분석

성능 스크립트를 수동으로 작성할 때 상관 관계를 직접 처리해야합니다. 그러나 스크립트를 작성하는 또 다른 옵션, 자동화 스크립트 기록이 있습니다. 한편으로 수동 접근 방식은 구조화 된 스크립트를 작성하는 데 도움이되며 필요한 모든 추출기를 동시에 추가 할 수 있습니다. 반면에,이 방법은 매우 많은 시간이 소요됩니다.

자동화 스크립트 기록은 매우 쉽고 똑같은 작업을 훨씬 빠르게 수행 할 수 있습니다. 그러나 일반적인 녹음 방법을 사용하는 경우 스크립트는 매우 체계적이지 않으며 일반적으로 추가 매개 변수를 추가해야합니다. Blazemeter 레코더의 "Smart JMX"기능은 두 가지 장점을 모두 가지고 있습니다. 이 링크에서 찾을 수 있습니다 : [ https://a.blazemeter.com/app/recorder/index.html] [1 ]

등록 후 "레코더"섹션으로 이동하십시오.

여기에 이미지 설명을 입력하십시오.

스크립트 기록을 시작하려면 먼저 브라우저의 프록시 ( 여기에서 다룹니다 )를 구성해야하지만 이번에는 BlazeMeter 레코더에서 제공하는 프록시 호스트와 포트를 얻어야합니다.

여기에 이미지 설명을 입력하십시오.

브라우저가 구성되면 하단의 빨간색 버튼을 눌러 스크립트 기록을 진행할 수 있습니다. 이제 테스트중인 애플리케이션으로 이동하여 레코딩 할 사용자 워크 플로를 수행 할 수 있습니다.

여기에 이미지 설명을 입력하십시오.

스크립트가 기록 된 후 결과를 "스마트"JMX 파일로 내보낼 수 있습니다. 내 보낸 jmx 파일에는 추가 작업없이 스크립트를 구성하고 매개 변수화 할 수있는 옵션 목록이 있습니다. 이러한 개선 사항 중 하나는 "스마트"JMX가 자동으로 상관 관계 후보를 찾아 적절한 추출기로 대체하고 추가 매개 변수화를위한 쉬운 방법을 제공한다는 것입니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow