我是Jmeter的新手,需要一些帮助来创建一个动态的Soap消息。我正在尝试在Jmeter中将下面的XML正文作为HTTP请求发布-
<soap:Envelope xmlns:soap="http://XXXXXsoap-envelope" xmlns:tem="http://XXXXX/“>
<soap:Header/>
<soap:Body>
<tem:ProcessMessage>
<tem:message>
<![CDATA[
<LoyaltyMessages xmlns:xsi="http://www.w3.org/XXXX/XMLSchema-instance" xmlns:xsd="hXXXX/XMLSchema" XID="4" YYY="4186" ZZZ="998" PPP="1" LLLL="2" DateTime="2022-09-13T13:30:12" LLL="1">
<TransactionRequests>
<TransactionRequest Type="0">
<Request JJJ="0" SSS="1">
<Items>
<Item SeqID="1" ItemCode="1145677" DepCode="105" SaleType="0" QtyType="1" Qty="2" NetPrice="1400" NetAmount="2800"/>
<Item SeqID="2" ItemCode="1145677" DepCode="105" SaleType="0" QtyType="1" Qty="2" NetPrice="1400" NetAmount="2800"/>
</Items>
<Total TotalAmount="28.00" TotalNumberOfItems="2"/>
</Request>
</TransactionRequest>
</TransactionRequests>
</LoyaltyMessages>
]]>
</tem:message>
</tem:ProcessMessage>
</soap:Body>
</soap:Envelope>
我想用一个动态主体来替换Items字段中的标记,该动态主体最多可以包含50-100个具有递增SeqID的项目,这样看起来就像-
<Items>
<Item SeqID="1" ItemCode="${ItemCode}" DepCode="${DepCode}" SaleType="${SaleType}" QtyType="${QtyType}" Qty="${Qty}" NetPrice="${NetPrice}" NetAmount="${NetAmount}"/>
<Item SeqID="2" ItemCode="${ItemCode}" DepCode="${DepCode}" SaleType="${SaleType}" QtyType="${QtyType}" Qty="${Qty}" NetPrice="${NetPrice}" NetAmount="${NetAmount}"/>
<Item SeqID="3" ItemCode="${ItemCode}" DepCode="${DepCode}" SaleType="${SaleType}" QtyType="${QtyType}" Qty="${Qty}" NetPrice="${NetPrice}" NetAmount="${NetAmount}"/>
</Items>
我正在使用CSV数据集配置,但它为所有项目列表添加了相同的值,因为它是同一个请求。也不知道如何实现项目标记内的多个标记块。
1条答案
按热度按时间2izufjch1#
您可以使用JSR223预处理器和Groovy code生成
Items
的动态块,如:1.将请求正文更改为:
1.添加JSR223预处理器作为HTTP请求采样器的子级,并将以下代码放入“脚本”区域