昨天我问了一个关于在 JMeter 上使用预处理器创建动态请求正文的问题。感谢 Dmitri T,我几乎得到了我想要的东西。
这里的老问题:JMeter Creating a Pre-Processor that will generate a request body based on a user defined variable
但是现在,我无法将 CSV 文件中的动态值放入请求正文中。
我的 CSV 文件示例数据:
Reading CSV successfully finished, 20 records found:
${id} = 1000011
${email} = a1000011@smartmessage.com
------------
${id} = 1000012
${email} = a1000012@smartmessage.com
------------
${id} = 1000013
${email} = a1000013@smartmessage.com
我的生成请求正文的预处理器:
import groovy.json.JsonBuilder;
def payload = [:]
def X = 10 // read user input here somehow
payload.put('message_job_id', '28b0a005-9ef1-475c-b33c-ade900f19e4c')
payload.put('campaign_group', 'Entegrasyon')
payload.put('template_id', 'cf585c8c-c675-40d2-b88a-ade900c898d5')
def recipient_list = []
1.upto(X, { x ->
def recipient = [:]
recipient.put('customer_id', vars.get('id') + x)
def target = [:]
def address = ['address': vars.get('email' + x)]
target.put('target', address)
recipient.put('target', target)
recipient_list.add(recipient)
})
payload.put('recipient_list', recipient_list)
vars.put('payload', new groovy.json.JsonBuilder(payload).toPrettyString())
我在查看结果树中生成的请求正文:
{
"message_job_id": "28b0a005-9ef1-475c-b33c-ade900f19e4c",
"campaign_group": "Entegrasyon",
"template_id": "cf585c8c-c675-40d2-b88a-ade900c898d5",
"recipient_list": [
{
"customer_id": "10000111",
"target": {
"target": {
"address": null
}
}
},
{
"customer_id": "10000112",
"target": {
"target": {
"address": null
}
}
},
{
"customer_id": "10000113",
"target": {
"target": {
"address": null
}
}
},
{
"customer_id": "10000114",
"target": {
"target": {
"address": null
}
}
},
{
"customer_id": "10000115",
"target": {
"target": {
"address": null
}
}
},
{
"customer_id": "10000116",
"target": {
"target": {
"address": null
}
}
},
{
"customer_id": "10000117",
"target": {
"target": {
"address": null
}
}
},
{
"customer_id": "10000118",
"target": {
"target": {
"address": null
}
}
},
{
"customer_id": "10000119",
"target": {
"target": {
"address": null
}
}
},
{
"customer_id": "100001110",
"target": {
"target": {
"address": null
}
}
}
]
}
如您所见,地址键始终具有空值,但我想用 CSV 文件中的电子邮件变量填充此键。