【发布时间】:2021-12-01 18:22:23
【问题描述】:
使用 Jmeter,我想在 JSR223 预处理器中组合一个动态大小的 XML 对象,该对象具有如下结构的动态生成内容:
<?xml version="1.0" encoding="UTF-8"?>
<aaa id1="TD00100" id2="005" date="2021-09-06T09:49:57.623Z" id3="Minoan007">
<p>
<pa outOfScope="false" inTransit="false" reqID="ID00001">
<location arrivalDate="2021-09-20" code="ASD" departureDatetime="2021-09-20T11:00:00.000Z" scheduleNo="AB123">
</location>
<docs dob="1960-09-02" expiryDate="2031-09-13" gen="f" givenName="Test1" anotherCode="AB" anotherCode2="ABC" surname="John" docNr="100000001" docType="J">
</docs>
</pa>
<pa eesetiasOutOfScope="false" inTransit="false" pReqID="ID00002">
<location arrivalDate="2021-09-20" code="ASD" departureDatetime="2021-09-20T11:00:00.000Z" scheduleNo="AB123">
</location>
<docs dob="1960-09-02" expiryDate="2031-09-13" gen="m" givenName="Test2" anotherCode="AB" anotherCode2="ABC" surname="John" docNr="100000002" docType="J">
</docs>
</pa>
<pa eesetiasOutOfScope="false" inTransit="false" pReqID="ID00003">
<location arrivalDate="2021-09-20" code="ASD" departureDatetime="2021-09-20T11:00:00.000Z" scheduleNo="AB123">
</location>
<docs dob="1960-09-02" expiryDate="2031-09-13" gen="f" givenName="Test3" anotherCode="AB" anotherCode2="ABC" surname="John" docNr="100000003" docType="J">
</docs>
</pa>
</p>
</aaa>
我想要一个带有静态主体的 HTTP 采样器,例如:
<?xml version="1.0" encoding="UTF-8"?>
<aaa id1="TD00100" id2="005" date="2021-09-06T09:49:57.623Z" id3="Minoan007">
<p>
${xmlObject}
</p>
</aaa>
在${xmlObject} 中,我想放置一个基于某个变量的自定义大小的XML 对象,并用不同的一小部分内容填充每个<pa> </pa> 对象(例如示例只是在每个子 xml 对象中将 id 增加 1),基于一些自定义的计数器。像这个例子。假设我定义了一个等于 100 的变量:当脚本运行时,它会生成一个具有 100 个具有这种结构的子对象的对象:
<pa .... reqID="ID00001">...</pa> objects
</pa>
<pa .... reqID="ID00002">...</pa> objects
</pa>
<pa .... reqID="ID00003">...</pa> objects
</pa>
....n
<pa .... reqID="n">...</pa> objects
</pa>
然后我只需要使用 vars.put 将其移动到 Jmeter 变量中,并在我的 HTTP 请求中使用它。
从逻辑角度来看,我使用 JSR223 预处理器中的 JsonSlurper 为 JSON 对象做了相同的事情。我只是不知道使用什么以及如何使用它来生成我的自定义 XML 对象。 任何帮助将不胜感激。
【问题讨论】:
标签: groovy jmeter xml-parsing jsr223 xmlslurper