来自csv的Jmeter读数参数,其中参数数量不固定

时间:2018-06-08 11:13:55

标签: csv jmeter

我是jMeter的新手。我需要将参数作为键值对的数组传递。示例参数如下所示:

a:3:{i:2925107;i:1389339;i:2778927;i:1317197;i:2880395;i:1389407;}

这里值2925107,2778927,2880395代表键和 1389339,1317197和1389407表示其对应的值。

此外,它将出现在下一行参数中,如下所示:

lease_ids[2925107]  1389339 
lease_ids[2778927]  1317197 
lease_ids[2880395]  1389407 

除此之外,我还需要在csv上存储更多参数。

我不确定如何将其保存在csv文件中,我应该如何阅读。

Sample image of the problem

1 个答案:

答案 0 :(得分:0)

  1. CSV Data Set Config设置为以下列形式提供这些租借ID:

    a:3:{i:2925107;i:1389339;i:2778927;i:1317197;i:2880395;i:1389407;}
    a:3:{i:2925108;i:1389340;i:2778928;i:1317198;i:2880396;i:1389408;}
    

    即。每个条目在单独的行上。使用id作为“变量名称”

    JMeter CSV Data Set Config

  2. HTTP Request采样器中删除所有lease_ids[xxxxxxx]个参数

  3. JSR223 PreProcessor添加为HTTP请求采样器的子级

  4. 将以下代码放入“脚本”区域:

    def matches = (vars.get('id') =~ 'i:(\\d+)').findAll()
    
    for (int i = 0; i < matches.size() - 1; i++) {
        sampler.addArgument('lease_ids[' + matches.get(i).get(1) + ']', matches.get(i + 1).get(1))
    }
    
  5. 就是这样,JSR223 PreProcessor将自动解析id变量并将相关的lease_ids参数添加到请求中。

  6. 更多信息:Apache Groovy - Why and How You Should Use It