在下面的示例中,我需要随机发送1到10个<ACCOUNT>
有效载荷块(该示例显示4个<ACCOUNT>
有效载荷块),而元素{{ 1}},<ACCOUNT_TYPE_CODE>
和<OPEN_DATE>
需要从CSV文件中顺序或随机选择值。即使是同一线程,也需要为<MEMBER_ID>
有效负载的每个块选择不同的值。我如何在JMeter中做到这一点?谢谢。
<ACCOUNT>
答案 0 :(得分:0)
如果您的XML文件如下所示:
CD,2019-10-06,68768789799
Checking,2019-10-05,45667568797
Saving,2019-10-04,24535456677
Money Market,2019-10-03,898977867554
将以下代码放入“脚本”区域:
import groovy.xml.MarkupBuilder
import org.apache.commons.lang3.RandomUtils
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
def csvFileLines = new File('test.csv').readLines()
def lineCounter = 0
xml.IN("xmlns:ns3": "http://schema.example.com/queryparam", "xmlns:ns2": "http://schema.example.com/header", "xmlns": "http://schema.example.com/Account/CreateAC") {
"ns2:HEADER"() {
ns2:
TRANID("hgjhkjhjkhjg")
ns2:
TIMESTAMP("2019-10-06T15:32:470Z")
}
"ns3:QUERY"() {
"ns3:PARAM"() {
"ns3:ITEM"("OPERATOR")
"ns3:VALUE "("CREATEAC")
}
}
xml.ACCOUNT_SPECIFIC() {
1.upto(RandomUtils.nextInt(1, 11), {
def line = csvFileLines.get(lineCounter)
def entries = line.split(",")
ACCOUNT() {
ACCOUNT_TYPE_CODE(entries[0].trim())
OPEN_DATE(entries[1].trim())
MEMBER_ID(entries[2].trim())
}
lineCounter++
})
}
}
sampler.addNonEncodedArgument('', writer.toString(), '')
sampler.setPostBodyRaw(true)
就是这样,上面的代码将生成1到10个ACCOUNT
块,并将生成的数据设置为HTTP Request采样器主体数据。总体测试计划应类似于:
参考文献: