当前位置: 首页 > 知识库问答 >
问题:

JMeter和Jenkins:当不满足断言时,使Jenkins状态变为红色

卜高超
2023-03-14

我对JMeter还是一个新手,但我的问题是:

在将我的JMeter API测试计划检查到Jenkins之后,当Jenkins运行测试(通过.bat文件)并且断言失败(预期=200,但实际!=200),测试知道退出html" target="_blank">线程组并进入下一个线程。当测试完成运行时,Jenkins显示一个绿色状态表示成功,即使理论上测试失败。(也许是我处理错误太优雅了?)下面显示在Jenkins控制台窗口上,该窗口显示测试的绿色状态。

Creating summariser <summary>
Created the tree successfully using API Test Plan.jmx
Starting the test @ Thu Feb 18 09:09:41 EST 2016 (1455804581076)
Waiting for possible shutdown message on port 4445
summary +      1 in     1s =    1.0/s Avg:     7 Min:     7 Max:     7 Err:     1 (100.00%) Active: 1 Started: 1 Finished: 0
summary +      2 in   0.1s =   16.3/s Avg:     1 Min:     1 Max:     2 Err:     2 (100.00%) Active: 0 Started: 1 Finished: 1
summary =      3 in   1.1s =    2.7/s Avg:     3 Min:     1 Max:     7 Err:     3 (100.00%)
Tidying up ...    @ Thu Feb 18 09:09:42 EST 2016 (1455804582362)
... end of run

我被要求让詹金斯的状态在发生这种情况时变成红色。我想到的一种方法是让.bat文件调用JMeter测试计划,即让一个断言写一个错误文件,然后在.bat文件状态下,如果该文件存在,设置errorlevel=1并退出。然而,我没有成功地生成错误文件。

任何洞察力如何修复我的文件生成和想法如何处理詹金斯的地位问题是非常(非常)赞赏。

下面是一个线程组的轮廓

Thread Group 1
    Properties:
        Number of Thread (users) = 1
        Ramp-Up Period (in seconds) = 5
        Loop Count = 10
        Delay Thread creation until needed = enabled
        Scheduler = disabled

        Loop Controller 1
        Loop Counter 1              
            HTTP Request: CREATE new database record
                RegEx: (RefName = newRequest)
                Response Assertion
                    Main:Response Code:Equals:200
                BeanShell Assertion
                    Param: ${__setProperty(newRequest,${newRequest},)}
                    Script:
                        if (ResponseCode.equals("200") == true) {
                            SampleResult.setResponseOK();  
                        }
                        else if (ResponseCode != null && ResponseCode.equals ("200") == false ) { 
                            Failure = true;
                            FailureMessage ="Response code was not a 200 response code it was " + ResponseCode + "." ; // displays in Results Tree
                            print ( "Creation of a new record failed: the return code is " + ResponseCode + ".");   // goes to stdout
                            log.warn( "the return code is " + ResponseCode); // this goes to the JMeter log file but i want it to go to an error.log file
                        }

共有1个答案

长孙玉泽
2023-03-14

我可以建议您使用Jenkins性能插件,并通过ant而不是.bat文件运行您的测试。这个插件知道如何在不同的情况下将你的工作标记为失败。例如,可以将作业配置为红色,以防出现任何错误。

 类似资料:
  • 问题内容: 我知道不可变对象始终具有相同的状态,即它们实际创建时的状态。它们的不变量由构造函数建立,并且由于它们的状态在构造后不会更改,因此这些不变量始终保持良好状态,这就是为什么可以在多线程环境中安全发布它们的原因。很好,但是由于我们生活在一个动态的世界中,程序的状态不断变化,如果通过不可变的对象构造程序的状态,那么这些对象会给我们带来什么好处? 问题答案: 您已经回答了“这些物品能给我们带来什

  • 我试图通过将线程数作为参数传递给Jenkins来运行jmeter(.jmx)文件。建立成功,但是。jmx文件未运行。并且在控制台中也没有显示任何错误。以下是我的设置 > 以下是Jenkins控制台输出 詹金斯控制台输出 不知道我哪里做错了。 注意:不使用Ant/Maven运行jmx文件。

  • 问题内容: 我有一个Jenkins作业,它通过Nightwatch.js框架在Browserstack上运行Selenium测试。我们有一套完整的测试程序,可以让守夜人在不同的进程中运行,并且我们需要一种在所有测试运行后将通过/失败值返回给Jenkins的方法。 我一直在尝试使用Nightwatch挂钩在每个模块的末尾运行一段代码,但是我无法弄清楚需要采取什么措施才能使Jenkins作业可以访问该

  • 我有一个类型为的变量 在一个函数中,我检查它是否为,并希望以后使用它,而不必每次调用都必须。例如,在Kotlin中,IDE识别这样的检查,并在之后断言变量不能为。在C#中有这样的方法吗? 编辑:

  • 我正在尝试使用BitBucket GIT存储库设置Jenkins,但Jenkins控制台总是给我以下错误代码: 我尝试过很多不同的方法,但总是失败。我的服务器上允许9418端口上的通信量。服务器处于1 Gbps连接上。