Как прочитать тело как строку перед отправкой запроса в gatling - PullRequest
0 голосов
/ 19 июня 2019

В моих тестах производительности в 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, однако печать body.toString внутри processRequestBody дает мне "", поэтому я не уверен, как получить строковое значение 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
                }
            }
...