向所需的 Gatling 会话添加值的基本示例
Basic example for adding a value to the Gatling session needed
我希望能够 POST SOAP 请求,其中包含在我的 Gatling 源代码中找到的可配置值。所以,
我在文件 "request.xml"
中存储了以下 XML ELFileBody
...
<rec:cardNumber>${cardNumber}</rec:cardNumber>
...
我知道必须将变量 cardNumber 添加到会话中。有很多文档说明这是必要的。但是,我没有找到关于如何在执行上下文中正确完成此操作的完整示例。
给定以下 Gradle 2.1 代码:
class GetBlacklistStatus extends Simulation {
val cardNumber="12345"
object GetBlacklistStatus {
val soap = exec(http("SOAP Request")
.post("/myservice")
.body(ELFileBody("request.xml")).asXML
.basicAuth("testUSER", "testPASSWORD")
)
}
val httpConf = http
.baseURL("http://localhost:8080")
.proxy(Proxy("localhost", 8888))
.userAgentHeader("Gradle TEST")
val users= scenario("user").exec(GetBlacklistStatus.soap)
setUp(
users.inject(rampUsers(10) over (10 seconds))
).protocols(httpConf)
}
如何将声明值 cardNumber 放入 POST 之前的会话中?
我知道我可以使用馈送器等机制为我将值移动到会话中,但我想直接这样做并希望在此过程中学到一些东西。
.exec(_.set("cardNumber", "12345"))
会成功的。
感谢 Pierre 的回答,我拼凑了这个:
val soap =
exec(_.set("cardNumber","1001"))
.exec(http("SOAP Request")
.post("/pl4/pto/ws3/WSReconstructionService")
.body(ELFileBody("GetBlacklistStatus.xml")).asXML
.basicAuth("user2", "pwd2")
.check(status.is(200))
)
对于不熟悉下划线的 those like me,以下内容似乎也有效:
val soap =
exec{session =>session.set("cardNumber","1001")}
.exec(http("SOAP Request")
.post("/pl4/pto/ws3/WSReconstructionService")
.body(ELFileBody("GetBlacklistStatus.xml")).asXML
.basicAuth("user2", "pwd2")
.check(status.is(200))
)
我希望能够 POST SOAP 请求,其中包含在我的 Gatling 源代码中找到的可配置值。所以, 我在文件 "request.xml"
中存储了以下 XML ELFileBody...
<rec:cardNumber>${cardNumber}</rec:cardNumber>
...
我知道必须将变量 cardNumber 添加到会话中。有很多文档说明这是必要的。但是,我没有找到关于如何在执行上下文中正确完成此操作的完整示例。
给定以下 Gradle 2.1 代码:
class GetBlacklistStatus extends Simulation {
val cardNumber="12345"
object GetBlacklistStatus {
val soap = exec(http("SOAP Request")
.post("/myservice")
.body(ELFileBody("request.xml")).asXML
.basicAuth("testUSER", "testPASSWORD")
)
}
val httpConf = http
.baseURL("http://localhost:8080")
.proxy(Proxy("localhost", 8888))
.userAgentHeader("Gradle TEST")
val users= scenario("user").exec(GetBlacklistStatus.soap)
setUp(
users.inject(rampUsers(10) over (10 seconds))
).protocols(httpConf)
}
如何将声明值 cardNumber 放入 POST 之前的会话中?
我知道我可以使用馈送器等机制为我将值移动到会话中,但我想直接这样做并希望在此过程中学到一些东西。
.exec(_.set("cardNumber", "12345"))
会成功的。
感谢 Pierre 的回答,我拼凑了这个:
val soap =
exec(_.set("cardNumber","1001"))
.exec(http("SOAP Request")
.post("/pl4/pto/ws3/WSReconstructionService")
.body(ELFileBody("GetBlacklistStatus.xml")).asXML
.basicAuth("user2", "pwd2")
.check(status.is(200))
)
对于不熟悉下划线的 those like me,以下内容似乎也有效:
val soap =
exec{session =>session.set("cardNumber","1001")}
.exec(http("SOAP Request")
.post("/pl4/pto/ws3/WSReconstructionService")
.body(ELFileBody("GetBlacklistStatus.xml")).asXML
.basicAuth("user2", "pwd2")
.check(status.is(200))
)