2017-10-31 1 views
1

웹 페이지에서 CSRF 토큰을 추출한 다음 BeanShell을 통해 기록해야합니다. 후자 부분은 내가 this thread에서받은 도움 덕분에 작동하지만 지금은 $ {token}을 올바른 데이터로 채우는 방법을 알아야합니다.JMeter : 정규식 추출기가 토큰을 가져 오지 않음

참고 : 정규 표현식 추출기가 선호되는 방법이 아니라는 것을 알고 있지만이 경우 연습 매개 변수 내에 있어야합니다.

먼저 HTTP 요청이 www.blazedemo.com/register에 대해 GET을 수행하도록 설정되어 있습니다.

<!-- CSRF Token --> 
<meta name="csrf-token" content="4ZCKKqQgwJH5lT5dQSeAwgeyOr7plAe7IOVRGmQm"> 

내가 그것을 잡기 위해 정규식 추출기 설정이 있습니다 :

둘째, 나는 CSRF 토큰을 찾을 응답 트리에 표시 응답 데이터를 확인할 경우

enter image description here

그렇게하지 않으면 "NOT_FOUND"로 설정된 기본값이 있습니다.

마지막으로, 나는 $ {token}에 주어진 값을 기록한 포스트 프로세서를 가지고 있습니다.

나는 내 로그에 다음과 발견 :

2017년 10월 31일 15 : 12 : 31,975 INFO oajuBeanShellTestElement : 토큰 은 다음과 같습니다 확인란 Response Headers에서 당신은 선택 NOT_FOUND

+0

입력란이 정확히 동일하다고 가정 할 때 왜 작동하지 않는지 잘 모르겠습니다. 좀 더 효과적이기 때문에'(. *?)'를'([^ "] *)'로 바꿀 것을 제안합니다. [this] (http://jmeter.apache.org/usermanual/regular_expressions.html#examples) 더 많은 정보를 위해서 – ctwheels

답변

2

it is not recommended to use regular expressions for parsing HTML을 기억하십시오. 대신 CSS/JQuery Extractor으로 들어가는 것이 좋습니다.

  1. 토큰이 CSRF이있는 요청의 자식으로 CSS/JQuery와 추출기를 추가
  2. 구성을 다음과 같이

    • 참조 이름 : 아무 의미, 즉token
    • CSS/JQuery와 표현 : meta[name=csrf-token]
    • 특성 : content

      JMeter CSS Jquery Extractor

데모 :

JMeter CSS Jquery Extractor Demo

더 많은 정보 : How to Use the CSS/JQuery Extractor in JMeter


여전히 정규 표현식을 위해 가고 싶은 경우 - 그러나 나는 그것이 HTML 응답 정규 표현식은 구문 분석에 관해서으로 이것을 권하고 싶지 않다, Body에 변화를 "확인 필드" 두통이 개발 및/또는 지원되며 마크 업 변경에 매우 민감합니다. 즉 속성 순서가 변경되거나 특성이 새 라인으로 이동하면 테스트가 망가질 수 있습니다.

+0

나는 그것이 내가 누락 된 단순한 무언가가 될 거라는 것을 알았다. "body"를 사용하지 마라. 충고를 많이 해줘서 고맙다. 나는 인정하고 싶다보다 오랫동안 이것에 매달렸다. 원래 게시물에서 언급했듯이 정규 표현식이 선호되는 방법이 아니라는 것을 알고있다. 운동의 매개 변수에 의해 제한됩니다. 말하자면, 일단이 작업을 마친 후에는 더 나은 방법을 올바르게 배울 수 있도록 제안을 사용하여 연습을 반복 할 것입니다. –

2

하는 요청의 헤더 내에서 표현식을 검색한다는 의미입니다.

귀하의 경우 HTML 태그 메타를 검색하려면 Body을 선택해야합니다.

+0

그건 정확히 그랬어. 평소처럼, 나는 가장 작은 명백한 세부 사항을 바로 봤어. :) 고마워! –

관련 문제