基于jmeter中先前的响应数据范围发送条件变量

时间:2017-03-07 21:12:26

标签: variables jmeter

我尝试执行POST请求测试循环,并在请求中设置一个特定变量,该变量基于先前响应的结果(特别是最后一个200)。例如,如果X在最后200个响应中出现5次,则变量= 2.如果X在最后200个响应中出现10次,则变量= 6,依此类推。我已经使用RegEx提取器提取了X值,并将其导出为CSV数据文件,如果有帮助的话。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果你有一个包含5或10(或任何数字)行X的CSV文件,并希望有条件地设置另一个变量值,我建议使用以下代码的JSR223 Sampler:< / p>

def entries = 0

new File("/path/to/your/file.csv").eachLine {
    entries++
}

switch (entries) {
    case 5:
        vars.put("myVar", "2")
        break;
    case 10:
        vars.put("myVar", "6")
        break;
    //etc.
    default:
        vars.put("myVar", "0")
}

它将计算csv文件中的行数,并根据它设置${myVar}变量值。

  • vars代表JMeterVariables类实例,它提供对JMeter变量的编程读/写访问
  • File.eachLine()是一个针对普通JDK文件类的Groovy增强
  • switch声明应该是不言自明的

有关JMeter中Groovy脚本的更多信息,请参阅Groovy Is the New Black guile。