首页 > 解决方案 > JMeter:在 HTTP 请求中使用字符串数组的 props.get

问题描述

在我BeanShell PreProcessorPOST请求中,我有以下代码:

    String[] serversName = new String[]{"FrontEnd", "BackEnd"};
    props.put("serversName",serversName);

现在,在我的POST请求的正文数据中,我需要调用(假设我只需要第一个元素)。我试着这样称呼它:serverNames

{
    "properties": {
        "name": ${props.get(serversName[${serverIndex}])},
        "ram": 1024,
        "cores": 1,
        "cpuFamily": "AMD_OPTERON",
        "availabilityZone": "AUTO"
    }

使用${props.get(serversName[0])但它抱怨BAD Request 400

当我在侦听器中检查我的请求时,如下所示:

POST data:
{
    "properties": {
        "name": ${props.get(serversName[0])},
        "ram": 1024,
        "cores": 1,
        "cpuFamily": "AMD_OPTERON",
        "availabilityZone": "AUTO"
    }

如何在我的请求中访问 props 变量?

标签: jmeter

解决方案


您可以按照JMeter 的方式进行操作,方法是设置按顺序排列的字符串serversName_[sequence_number]

String[] serversName = new String[]{"FrontEnd", "BackEnd"};
for (int i=0; i < serversName.length; i++) {
    props.put("serversName_" + i, serversName[i]);
}

然后只是获得财产${__P

${__P(serversName_${serverIndex})}

推荐阅读