Jmeter - 如何在每个控制器的a下重置计数器?

时间:2018-02-21 15:59:53

标签: jmeter

我的jmeter测试如下 - 我有一个针对每个控制器,在其下面有一个JDBC请求&一个豆壳断言。

我的beanshell声明代码是这样的 -

String value1 = "${__V(statusapi_${__counter(,)})}"; 
String value2 = vars.get("status_db_1"); 
String value9 = vars.get("tenant"); 
print(value1); 
if(value1 != null) {
    if(!value1.equals(value2)) {
                   Failure = true;
                              FailureMessage = value9 + ":  status name doesnt match, api: "+ value1 + "   db: "+ value2;
                              print(FailureMessage);
               } }  else {
    if(value2 != null) {
                   Failure = true;
                              FailureMessage = value9 + ":  status name doesnt match, api: "+ value1 + "   db: "+ value2;
                              print(FailureMessage);
               } }

我正在使用value1的计数器功能。我想知道如何重置此计数器以从1开始为每个请求添加新计数器?

1 个答案:

答案 0 :(得分:0)

如果您需要statusapi_

我的期望是你使用了错误的测试元素,每次调用__counter()函数时都会递增。所以我相信你应该切换到Counter test元素并根据你的场景进行配置。

计数器测试元素产生"正常" JMeter变量,您可以使用Beanshell PreProcesssor中的vars.put("your_counter_reference_name", "1");重置。

另请注意starting from JMeter version 3.1 it is recommended to use JSR223 Test Elements and Groovy language脚本编写,因此请尽快考虑迁移到JSR223 Assertion。更多信息:Apache Groovy - Why and How You Should Use It了解更多详情。