HTTP请求的JSON正文如下所示:
WHERE posn.position_contract_type = 'P' AND
posn.position_status <> 'T' AND
(posn.effective_date = (SELECT MAX(effective_date)
FROM employee_position_cunm p2
WHERE p2.person_uid = posn.person_uid
p2.position = posn.position AND
p2.job_suffix = posn.job_suffix AND
p2.effective_date <= '01-Nov-2014'
) OR
posn.effective_date = (SELECT MAX(effective_date)
FROM employee_position_cunm p2
WHERE p2.person_uid = posn.person_uid
p2.position = posn.position AND
p2.job_suffix = posn.job_suffix AND
p2.effective_date <= '01-Nov-2015'
)
)
我有一个看起来像这样的CSV文件:
{
"OrderId":"234",
"SupplierId":"JJ889",
"OrderedProducts": [
{
"ProductId":"123",
"Sku":"ABC123",
"Description":"Thing 1"
},
{
"ProductId":"435",
"Sku":"XYZ987",
"Description":"Thing 2"
}
]
}
但是当我在HTTP请求正文数据中替换ProductId,Sku,Description
123,ABC123,Thing 1
435,XYZ987,Thing 2
....
(以及sku和描述的其他变量)时,我最终得到:
"ProductId":"${ProductId}"
如何确保我的产品系列每个请求都是唯一的(即不同的CSV行)?
答案 0 :(得分:0)
如果每个请求总共有2个产品,只需按照这种方式组织您的CSV:
ProductId1,SKU1,内容描述,ProductId2,SKU2,内容描述
并使用新的变量名称。
答案 1 :(得分:0)
使用__StringFromFile()和__javaScript()功能的组合,例如:
{
"OrderId":"234",
"SupplierId":"JJ889",
"OrderedProducts": [
{
"ProductId":"${__javaScript("${__StringFromFile(file.csv,,,)}".split("\,")[0],)}",
"Sku":"${__javaScript("${__StringFromFile(file.csv,,,)}".split("\,")[1],)}",
"Description":"${__javaScript("${__StringFromFile(file.csv,,,)}".split("\,")[2],)}"
},
{
"ProductId":"${__javaScript("${__StringFromFile(file.csv,,,)}".split("\,")[0],)}",
"Sku":"${__javaScript("${__StringFromFile(file.csv,,,)}".split("\,")[1],)}",
"Description":"${__javaScript("${__StringFromFile(file.csv,,,)}".split("\,")[2],)}"
}
]
}
__StringFromFile()
函数在每次调用时都会从file.csv
读取下一行__javaScript()
函数允许执行任意JavaScript代码,在上面的案例split()函数中将行分为ProductId,Sku和Description。有关JMeter功能的更多信息,请参阅Functions and Variables用户手册章节和How to Use JMeter Functions帖子系列。