如何在加特林发送请求之前将主体读取为字符串

时间:2019-06-19 09:27:27

标签: scala gatling scala-gatling

在性能测试中,我使用ElFileBody读取xml,其中seqNumber将用于其中一个标记,以便每个文档都是唯一的

<document>
<id>${seqNumber}</id>
</document>

我想要签名的每个唯一文档,然后得到:

<document>
<id>1</id>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo>...</ds:Signature>
</document>

我尝试使用processRequestBody,但是在processRequestBody中打印body.toString会给我“”,因此我不确定如何获取xml的字符串值并将其转换为添加签名标记的方法。

during(100 seconds) {
                forever("seqNumber") {
                    exec(http("Post New Document")
                      .post("/document")
                      .body(ElFileBody("bodies/document.xml"))
                        .processRequestBody
                        ({ body => {
                          print(body.toString)
                          val xml = signatureHelper.sign(body.toString);
                          StringBody(xml)
                        }})
                      .processRequestBody(gzipBody)
                      .header("Content-Type", "application/xml")
                      .header("Content-Encoding", 
        "gzip").check(status.not(400),status.not(500))).exitHereIfFailed
                }
            }

0 个答案:

没有答案