2013-02-28 1 views
6

JMeter를 사용하여 JSF 응용 프로그램에서 일부로드 테스트를 수행하고 페이지를 따라 ViewState를 전달하는 데 문제가 있습니다. ViewState 변수는 전혀 추출되지 않거나 페이지를 따라 전달되지 않습니다.JMeter를 사용하여 JSF를 테스트 할 때 ViewState 추출

나는 프록시 서버 내 테스트 단계를 기록했는데이는 모습입니다 :

First GET Request

는 내가 처음 GET 요청에 정규식 추출기를 추가했습니다. 정규식을 테스트했는데 정확합니다. 모든 POST 요청에서

First POST Request

나는 내 변수와 함께 하드 와이어드 뷰 ID를 교체합니다.

그리고 제가 요청을 보낼 때 내가 할 것은 다음과 같다 :이 변수의 이름을 전송로

Request sent

포스트 매개 변수가 올바르지 않습니다.

POST 데이터 :

loginForm % 3ArequestToken = & loginForm % 3Ausername = & 헬러 loginForm % 3Apassword = % 21QAYxsw2 % & A7EDC loginForm % 3AloginButton Anmelden = & com.sun.faces.VIEW = 24 % % 7BjsfViewState % 7D & loginForm = loginForm

당신은 내가 잘못 여기서 뭘하는지 알 수 있을까요?
감사합니다.

답변

2

내 문제를 발견 : 정규식이 잘못되어 응답에서 아무것도 찾을 수 없습니다. 나는 정규 표현식을 바꾸어야했다. "NOT FOUND"라는 기본값을 추가 한 후이를 발견했습니다.

2

ViewState 매개 변수는 인코딩 된 값 (Base64입니다.)이 있으며 URL을 통해 GET 요청에 전달되면 부적절한 값을 포함 할 수 있습니다. 일반적으로 URL 매개 변수는 요청이 서버에 도달 할 때 특수 값 (예 : 공백 -> % 20)을 표시하고 디코딩 할 수 있도록 인코딩됩니다.

다음과 같은 요청은 매개 변수가 URL로 인코딩 될 필요가 없음을 의미하는 POST입니다.

com.sun.faces.VIEW % = 24 % 7BjsfViewState % & 7D loginForm = loginForm

JMeter를 위 또는 몇몇 다른 프로세스가 잘못된 요청에 viewstate가 URL을 인코딩임을 나타낸다 . ViewState의 값은 그대로 보내야합니다.

+0

POST 요청은 urlencoded로 보내집니다. 이것이 사실입니다. 그러나 나는 문제가 있다고 생각합니다. 추출 된 값은 요청에서 설정되지 않습니다. 변수의 이름이 com.sun.faces.VIEW의 값으로 표시되고 일부 실제 값은 응답에서 추출되지 않기 때문입니다. 이전 요청 –

관련 문제