2014-04-22 2 views
-1

세션을 스칼라로 기록했습니다. 해당 태그가 View sourceInspect Element인데도 한 요청이 실패합니다. 다른 숨겨진 필드는 모두 시도했지만이 필드는 발견되지 않았습니다.스칼라에 있어도 검사에 실패합니다.

val scn = scenario("Scenario Name") 
.feed(csv("user_credentials.csv")) 
.exec(http("request_1") 
.get("/userLogin") 
.headers(headers_1) 
.check(regex("""<input id="javax.faces.ViewState" """).saveAs("ViewState_id")) 

).pause(1) 
.exec(http("request_999") 
.post("/userLogin") 
.headers(headers_1) 
.param("""loginForm""", """loginForm""") 
.param("""errorMsg""", """""") 
.param("""c_username""", "${username}") 
.param("""javax.faces.ViewState""", "${ViewState_id}") 
.param("""goButton""", """goButton""") 

) 

나는이지고있어 오류,

c.e.e.g.h.a.GatlingAsyncHandlerActor - Request 'request_1' 
failed : Check 'exists' failed, found None 

내가 소스 태그 <input id="javax.faces.ViewState" ..../>을 찾았지만이 스크립트를 찾을 수 없습니다 : 여기에 스크립트입니다. 나는 다른 필드와 일부 숨겨진 필드로 테스트를 시도했지만,이 외의 다른 모든 구성 요소는 찾을 수 없습니다. 이 문제를 해결하는 방법? namejavax.faces.ViewState 수 있지만 내가 본 JSF 구현에, ID는 j_id1:javax.faces.ViewState:0 같은입니다 -

+0

그냥 "$ {username}"대신'$ {username} "''이 (가) 있어야하지 않습니까? 스칼라는 문자열 리터럴 앞에's'를두면'$ {...} '사이의 표현식 만 대체합니다. – Jesper

+0

그럴 수도 있겠지만 그 전에 문제가오고 있습니다. 제가 질문에 표시 한대로 검사가 실패합니다. 그 진술을 통과하면 내가 말하는 내용을 확인할 수 있습니다. –

+0

''$ {username} ''은 Gatling-ism입니다 (내장 표현 언어를 가지고 있습니다). 시작시 's'가 부족한 것은 정상입니다. –

답변

1

나는 문제가 당신의 ViewState 개체의 id 실제로 javax.faces.ViewState되지 않는 것입니다 생각한다.

가장 간단한 해결 방법은 Gatling의 JSF 처리에 대한 https://github.com/excilys/gatling/wiki/Handling-JSF의 지침을 따르는 것입니다. 또는 id가 아닌 이름으로 ViewState 요소를 검색 할 수 있습니다.

.check(css("""input[name="javax.faces.ViewState"]""", "value").saveAs("ViewState_id")) 

트릭을해야합니다.

관련 문제