Regular Expression Extractor ? HTTP Request Sampler로 웹 서버에서 받아온 결괏값을 정규식을 이용해 파싱 해서 값을 찾아내는 방법
검색 결과에서 URL 얻어오는 실습
저와 같이 완전 초심자가 Apache JMeter 책을 사용하면 설명이 부족할 경우가 있을 것입니다
이 게시물이 조금이라도 도움이 되길 바랍니다
class="url">( <a href="http://www.java.com/"와 같은 코드를 이용해 테스트
Test Plan에 Thread Group Add
Thread Group에 HTTP Request Sampler인 /jmeter/search/search Add
/jmeter/search/search에 CSV Data Set Config Add
CSV Data Set Config에는 검색할 키워드들이 담겨 있습니다
Browse...를 클릭하여 CSV 파일을 불러옵니다
jmeter/search/search에 Regular Expression Extractor Add
Name of created variable - 변수
Regular Expression - 원하는 문자열을 얻어올 때 사용할 정규표현식이다. 위 설명과 같이
class="url">( <a href="http://www.java.com/" 와 같은 코드를 이용할 것이므로 위와 같이 입력해줍니다
Match No. - 1개 이상의 문자열이 매칭 되었을 때 어떤 값을 설정할 것인지 정한다. 랜덤으로 할 것이므로 0
Regular Expression Extractor로 추출된 url을 요청하는 HTTP Request Sampler 추가
Name은 나중에 View Results Tree에서 보기 편하게 하기 위해 next - ${next_url}로 표현합니다
위에서 Regular Expression Extractor의 변수명을 next_url로 설정함으로 인해 View Results Tree 리스트에는
next - www.python.org와 같이 표시
http://www.embarcadero.com/products/interbase에서
http - protocol
www.emabarcadero.com - IP
products/interbase - Path
설정된 변수명 뒤에 추가로 붙는 _gNum은 N번째 그룹의 값이라는 것을 의미합니다
여태 설정한 것을 run 하면
위와 같은 결과를 얻을 수 있습니다
오류 하나는 /jmeter/search/search의 결과 중 CSV 파일에 정규식에 부합하는 문자열이 없기 때문입니다
간단히 말하면 검색 결과에 url이 존재하지 않는다는 의미입니다
정규표현식
JMeter의 정규표현식은 Perl의 문법과 유사하므로 perldoc.perl.org/perlretut
위 페이지를 참고해도 괜찮습니다
대신, Perl처럼 '//'로 감싸지 않아도 됩니다
간단히 요약하자면
Charater |
분류 |
설명 |
( ) |
grouping |
Group을 생성 |
[ ] |
character classes |
[0-9] : 숫자 [a-z] : 영문 소문자 [ab^c] : c를 포함하지 않는 a, b 문자 |
{ } |
repetition |
반복을 몇 번할지 [a-z]{4,5} : 영소문자가 4~5번 반복 |
* + ? |
repetition |
* : 0번 이상 반복 + : 1번 이상 반복 ? : 첫 번째 Match가 되면 검색 중지 |
. |
wild-card character |
모든 Charater |
\ |
escape character |
Meta Character에 해당하는 문자를 쓰려면 '\'로 escape 해야 한다 |
| |
alternatives |
선택적인 적용 |
^$ |
start and end of |
^는 라인의 시작, $는 라인의 끝 |
정규표현식을 정확히 작성했는지 확인하는 방법은 View Result Tree를 활용합니다
RegExp Tester를 보면 원하는 정규표현식을 입력하고 실제로 결과가 어떻게 나오는지 확인할 수 있습니다
'테스트툴 > JMeter' 카테고리의 다른 글
JMeter Logic Controller (0) | 2021.04.13 |
---|---|
JMeter Regular Expression 설정 레퍼런스 (0) | 2021.04.09 |
JMeter HTTP Cookie Manager (0) | 2021.03.18 |
JMeter를 이용한 간단한 test plan (0) | 2021.03.08 |
성능 테스트 (0) | 2021.03.04 |