JMeter BeanShell断言自定义输出消息

时间:2016-02-17 16:35:38

标签: jmeter

我被要求增强我的断言,以便在我的JMeter测试计划中提供更好的日志消息,该计划使用基本的CRUD方法测试API。测试计划正在检查Jenkins并自动运行。当出现问题时,支持团队的消息传递水平不足。

在第一个线程组中,我有一个HTTP请求,用于根据传入的有效负载在数据库中创建新记录。在此请求下,我有一个BeanShell断言,如下所示:

if (ResponseCode.equals("200") == true) 
{ 
    SampleResult.setResponseOK();  
}

我现在正在努力增强这个以解决409和500个回复。

我试过了,但它似乎不起作用:

if (ResponseCode.equals("200") == true) 
{ 
    SampleResult.setResponseOK();  
}

else if (ResponseCode.equals("409") == true) 
{ 
    FailureMessage = "Creation of a new CAE record failed: Attempting to create a duplicate record.";
}

else (ResponseCode.equals("500") == true) 
{ 
   FailureMessage = "Creation of a new CAE record failed: Unable to connect to server";
}

此外,如果ResponseCode不是200,那么我需要退出整个线程组并转到下一个线程组。

我在这个网站上已经阅读了几个问题,以及 How to Use BeanShell: JMeter's Favorite Built-in Component How to Use JMeter Assertions in Three Easy Steps ,但我仍然感到困惑。不是开发人员,而且还是JMeter的新手,我需要指导。

非常感谢任何和所有帮助。

1 个答案:

答案 0 :(得分:1)

选择'停止线程'在线程组中将帮助您在出现任何错误时停止线程组 - 假设您有其他线程组连续执行。如果没有,测试将停止。

在beanshell中包括

var app = angular.module('myApp', []);
app.controller('myCtrl',['$scope', function($scope) {        
    $scope.changeAxis1 = function() {                   
            if ($scope.thirtyDay) {
                    alert("checked 30");
                    $scope.wholeTimeline = false;
                }                
    };   
     $scope.changeAxis2 = function() {                  
            if($scope.wholeTimeline) {
                    alert("checked whole");
                    $scope.thirtyDay = false;
                }           
    };   
}]);

enter image description here