我希望能够使用我的Gatling源中的可配置值发布SOAP请求.因此,我将以下XML ELFileBody存储在文件"request.xml"中
...
<rec:cardNumber>${cardNumber}</rec:cardNumber>
...
Run Code Online (Sandbox Code Playgroud)
我知道必须将变量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)
}
Run Code Online (Sandbox Code Playgroud)
如何在POST之前将声明的值cardNumber放入会话中?
我知道我可以使用诸如馈线之类的机制将值移动到会话中,但我想直接这样做,并希望在此过程中学到一些东西.
小智 14
从文档:
.exec(_.set("cardNumber", "12345"))
Run Code Online (Sandbox Code Playgroud)
会做的.
感谢皮埃尔的回答,我把它拼凑在一起:
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))
)
Run Code Online (Sandbox Code Playgroud)
对于像我这样不熟悉下划线的人,以下似乎也有效:
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))
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16076 次 |
| 最近记录: |