В моих тестах производительности в 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
}
}