我对涉及登录Java Web应用程序的 Gatling 模拟进行了询问。
我设置了以下模拟,尽管我没有明确检索并在请求之间设置JSESSIONID
cookie,但我惊讶地注意到它有效。
我本来希望使用//AUTHENTICATED REQUEST HERE
进行评论会失败...。
有人可以提供见解吗?
class SigninAndAct extends Simulation {
val baseURL = "http://localhost:8080"
val httpConf = httpConfig
.baseURL(baseURL)
.acceptHeader("*/*")
.acceptEncodingHeader("gzip, deflate")
.acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3")
.connection("keep-alive")
.userAgentHeader("Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.0")
val headers_1 = Map(
"Accept" -> """text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"""
)
val headers_2 = Map(
"Accept" -> """text/css,*/*;q=0.1"""
)
val headers_31 = Map(
"Accept" -> """text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8""",
"Content-Type" -> """application/x-www-form-urlencoded"""
)
val scn = scenario("Signin-scn")
.exec(http("open-signin-page")
.get("/bignibou/signin")
.headers(headers_1)
.check(regex("""<input type="hidden" name="_csrf" value="(.*)" />""")
.saveAs("_csrf")))
.exec(http("signin")
.post("/bignibou/signin")
.headers(headers_1)
.param("_csrf", "${_csrf}")
.param("username","[email protected]")
.param("password","------")
.check(currentLocation.is(baseURL+"/bignibou/dashboard")))
.exec(http("open-edit-add-page")
.get("/bignibou/advertisement/childminder/edit/32768")//AUTHENTICATED REQUEST HERE
.headers(headers_1)
.check(currentLocation.is(baseURL+"/bignibou/advertisement/childminder/edit/32768")))
setUp(scn.users(1).protocolConfig(httpConf))
}
最佳答案
那是因为加特林(Gatling)会为您解决这个问题。它将它们自动存储在用户的会话中,并将其传递到下一个请求。
关于cookies - 使用Gatling工具管理jsessionid cookie,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23572239/