无法在Jmeter中将变量传递给采样器的断言 - Groovy

时间:2017-10-29 14:16:53

标签: groovy jmeter

我尝试进行从DB读取的测试并断言数据 我创建了一个JDBC请求和JSR223 sampler + Jsr223断言。 在采样器中,我创建了一个名为sensativity_results的变量。 我想将它传递给断言。 我用了

vars.putObject("sensativity_results", sensativity_results);

然后在断言中我试着调用它并打印出来, 问题是Jmeter只是没有认出断言, 此外,我创建了另一个名为test的采样器来打印“sensativity_results”的结果,Jmeter只是通过它而不执行它

int actual_sensativity ()
{
    float Actual_sensativity;
    int loop_num = vars.get("Loop_Number") as int; 
    int conversion_sense = vars.get("Conv_sens") as int;
    int actual_conversion = vars.get("Conv_numbers_1") as int;
    Actual_sensativity = (float) (actual_conversion/loop_num)*100;
    System.out.println("************** Actual_sensativity  in %:  " + Actual_sensativity);
    System.out.println("**conversion_sensativity:  " + conversion_sense);
    System.out.println("**actual_conversion:  " + actual_conversion);
    System.out.println("**loop number:  " + loop_num);
    return Actual_sensativity;

}




int sensativity_results;
sensativity_results = actual_sensativity();
vars.putObject("sensativity_results", sensativity_results);
System.out.println("sensativity_results:  " + sensativity_results);

测试计划按预期运行直到此步骤并且在没有任何错误的情况下停止,它会在第一个采样器处打印出灵敏度结果,并且只是不继续,有人可以建议吗?

enter image description here enter image description here

enter image description here

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

只需输入vars.put(“sensativity_results”,sensativity_results); 它解决了这个问题

答案 1 :(得分:0)

假设您稍后将此sensativity_results变量用作String,我建议将其存储为:

vars.put("sensativity_results", String.valueOf(sensativity_results))

否则,尝试使用ClassCastException: java.lang.Integer cannot be cast to java.lang.String

时会出现${sensativity_results}错误

访问非String变量的另一种方法是使用__groovy()函数(自JMeter 3.1起可用),如:

${__groovy(String.valueOf(vars.getObject('foo')),)}