저는 작은 회사의 시스템 관리자이고 웹 앱 중 하나에 대한 첫 번째 테스트를 설정하려고합니다. 나는 C와 Java Syntax와 Regexes를 약간 알고 있지만 Scala는 전혀 없다.URL에서 가져온 JSessionID
테스트하려는 앱에 URL에 jsessionid (jvmRoute 포함)가 있고 쿠키에 설정되어 있지 않습니다. Stéphane Landelle wrote here에 따르면 Gatling은 사용자 세션 당 jsessionid를 자동으로 기록하여 재생하지만 jsessionid가 쿠키로 설정된 경우에만 작동하는 것처럼 보입니다.
테스트 케이스의 URL에서 실제 기록 된 jsessionid를 삭제 했으므로 나중에 시도 할 때 유효하지 않습니다. 테스트를 실행하면 Appserver는 새로운 jsessionid를 생성합니다.이 jsessionid는 향후 호출에 포함되지 않습니다.
이 때문에 나는 초기 리디렉션에서 jsessionid를 긁어내어 향후 URL에 포함하려고합니다.
Location https://URL/welcome.do;jsessionid=F97250BDC1576B5766CEFA56645EA3F4.node1
코드는 현재 다음과 같습니다 :이 다음과 같습니다 첫 번째 응답의 위치 헤더입니다
.exec(http("Open Page")
.get("""/?code=abcdef""")
.headers(headers_0)
// Test extract jsessionid from URL
.check(headerRegex("Location", "jsessionid=(.*)")).saveAs("jsess")
.exec(http("welcome.do")
.post("""/welcome.do;jsessionid=${jsess}""")
는 ... 그리고 그것은 컴파일되지 않습니다.
12:15:14.198 [ERROR] i.g.a.ZincCompiler$ - FirstTest.scala:53: value saveAs is not a member of io.gatling.http.request.builder.HttpRequestBuilder
12:15:14.199 [ERROR] i.g.a.ZincCompiler$ - .check(headerRegex("Location", "jsessionid=(.*)")).saveAs("jsess")
12:15:14.200 [ERROR] i.g.a.ZincCompiler$ - ^
12:15:14.261 [ERROR] i.g.a.ZincCompiler$ - one error found
내가 말 한 닫는 대괄호를 이동하는 경우 :
.check(headerRegex("Location", "jsessionid=(.*)").saveAs("jsess"))
가 컴파일하지만, 원하는 무엇을하지 않습니다 그래서
---- Errors --------------------------------------------------------------------
> No attribute named 'jsess' is defined 11 (78.57%)
> status.in(200,304,201,202,203,204,205,206,207,208,209), but ac 2 (14.29%)
tually found 404
> headerRegex((Location,jsessionid=(.*))).exists, found nothing 1 (7.14%)
================================================================================
, 내가 어떻게 순서로 JSESSIONID를 기록 할 다시 사용 하시겠습니까? 아니면 여기서 완전히 잘못하고있는 것입니까? 어떤 도움을 주셔서 감사합니다.
게시물에 동일한 URL을 두 번 포함했습니다. 또한 앱이 작동하는 방식을 제어 할 수 없습니다. 쿠키로 전환 할 수는 없지만 쿠키를 선호합니다. 마지막으로, 예, jsessionid는 뒤 따르는 모든 요청의 URL에 있습니다. –
그냥 고정 링크 –
그 기능 (currentLocationRegex)을 얻으려면 2.0.0-RC2에서 2.0.0-RC5로 업그레이드해야했지만 이제는 작동합니다. 고마워, 스테판! –