본문으로 바로가기

Regular Expression Extractor

category JMeter 2020. 6. 11. 16:35

HTTP Request Sampler로 웹 서버에서 받아온 결과값을 파싱해서 그 내용 중 의미 있는 값을 찾아낸다.

정규표현식으로 특정 문자열을 추출한다.

Post Processors에 해당하며, Sampler가 요청을 보내고 받은 후 다음 Sampler로 진행하기 전에 실행된다.

Sampler의 결과값을 이용해서 특정 정보를 변수에 저장하거나 해당 Thread를 종료할 수 있다.

검색 결과에서 URL 얻어오기

  • <A> 태그의 href 값에 해당하는 URL에서 무작위로 하나의 URL을 선택하여 next_url 변수에 저장하고 이동하는 테스트를 만든다.

  • 사용자가 웹 화면에서 여러 개의 링크 중 하나를 무작위로 선택해서 클릭하는 것과 같은 효과를 줄 수 있다.

  • HTTP Request에서는 IP, Port, Path, Protocol을 별도로 입력해야 한다.

  • 정규식으로 분리해서 각 그룹으로 추출하여 보자.

  • Regular Expression Extractor 추가

  • 설정
Name of created variable : next_url
Regular Expression : class="url">\( <a href="(.+?)://([^:]+?):*([0-9]*?)/(.*?)"
Template ($i$ ...) : $2$
Match No. : 0
Default Value

  • Apply : Main sample은 HTTP Request 자체를 의미하며 Sub-sample은 HTTP Request에서 "Embedded Resources from HTML Files" 옵션을 설정 했을 때 추가로 받아 오는 자료를 의미한다.
  • Field to check
    • Body : header를 제외한 웹 페이지 내용
    • Body(unescaped) : header를 제외한 웹 페이지 내용의 HTML escape 코드를 모두 변환한 것을 의미한다(테스트 성능에 영향을 줄 수 있으므로 주의해서 사용한다.)
    • Body as a Document : Apache Tika를 이용해서 파싱된 내용이다(테스트 성능에 영향을 줄 수 있으므로 주의해서 사용한다.)
    • Responses Headers, Request Headers, URL, Response Code, Response message
  • Name of created variable : 정규표현식으로 선택된 문자열이 저장될 변수명이다.
  • Regular Expression : 정규표현식이다.
  • Template : 정규표현식에 여러 Group이 존재할 때 Reference Name 변수를 사용할 경우 보여지는 내용을 설정한다.
    • $0$ : 정규표현식에 의해 선택된 문자열 전체를 의미한다.
    • $n$ : n번째 Group의 내용을 나타낸다.
  • Match : 정규표현식으로 문서의 Match를 검사하면 여러 개의 Match가 나올 수 있다. 이럴 때 몇번째 문자열을 선택할지에 대한 설정이다.
    • 0 : Match된 여러 case 중 하나를 무작위로 골라서 Reference Name에 설정한다.
    • n > 0 : n번째 Match된 case를 Name of created variable에 설정한다.
    • n < 0 : 모든 Match된 Case에 접근할 수 있다.

RegExp Tester를 이용한 테스트

정규표현식을 정확히 작성했는지 확인하기 위해 View Result Tree의 "RegExp Tester"를 이용하면 된다.

  • RegExp Tester를 이용하려는 Sampler를 결과 리스트에서 선택한다.
  • 내용 보기 포멧 선택에서 RegExp Tester를 선택한다.
  • 원하는 정규표현식을 입력하고 실제로 결과가 어떻게 나오는지 확인한다.


댓글을 달아 주세요

대마도사 블로그
블로그 이미지 대마도사 님의 블로그
MENU
VISITOR 오늘3 / 전체17,682