【问题标题】:TeamCity results don't match JMeter'sTeamCity 结果与 JMeter 的不匹配
【发布时间】:2018-10-23 01:50:13
【问题描述】:

我目前正在使用 JMeter 对某些应用程序进行负载测试,我使用了持续时间断言并将其设置为,假设为 200,当加载时间超过 200 时,结果树中的请求变为红色,因为这是一个错误.

问题是,当我使用 TeamCity 运行相同的测试时,它始终标记为 success,即使所有请求都有 failed

【问题讨论】:

    标签: jmeter teamcity


    【解决方案1】:

    您正在查看的是摘要。 您需要在项目中添加一个侦听器,将结果保存到文件中。 然后您需要让 Teamcity 读取该文件并断言结果。

    Teamcity 只是在告诉您“嗯,您希望我运行的脚本有效”。

    以下是有关操作方法的小指南: https://devblog.xero.com/run-jmeter-performance-tests-on-teamcity-8315f7ccffc1#.8ga4jso7k

    【讨论】:

      【解决方案2】:

      查看 Team City 项目中构建功能下的性能指标计算。您需要确保检查断言以使构建在断言上失败。

      除此之外,较新版本的 JMeter 和 Team City 向输出的 .jtl 文件添加了更多列,因此您需要确保您的“成功”列位于文件的第 5 位。我在 TeamCity JMeter Plugin git repo 中看到这篇文章后发现了这一点:https://github.com/jtorgan/jmeter_plugin/issues/24#issuecomment-421016226

      我没有创建脚本,而是确保删除 TeamCity 服务器上 JMeter user.properties 设置中的一些列,以确保成功列位于第 5 位。

      这是我必须在 user.properties 下为 JMeter 关闭的列:

      jmeter.save.saveservice.response_message=false
      jmeter.save.saveservice.thread_name=false
      jmeter.save.saveservice.data_type=false
      

      【讨论】:

        【解决方案3】:

        您并没有真正指定很多信息。你如何运行应用程序?你有可用的 TeamCity JMeter 插件吗?

        我用jmeter-maven-plugin 运行一个maven 项目,用JMeter-plugin 运行teamcity。现在您可以在 pom.xml 中指定如果您希望测试在测试失败时失败:

        <ignoreResultFailures>false</ignoreResultFailures>
        

        还请阅读有关 TeamCity 插件的信息,因为它使用特定(非标准)jtl 格式:

            <propertiesJMeter>
              <jmeter.save.saveservice.default_delimiter>\t</jmeter.save.saveservice.default_delimiter>
              <jmeter.save.saveservice.print_field_names>true</jmeter.save.saveservice.print_field_names>
            </propertiesJMeter>
        

        欲了解更多信息,请参阅此页面,其中解释了 TeamCity JMeter 插件的配置:https://www.blazemeter.com/blog/how-run-jmeter-tests-teamcity-continuous-integration

        作为奖励:我花了一些时间来了解如何从 maven 构建将参数传递给 JMeter 脚本。我得出的结论是 maven 插件不支持正常的 -J JMeter 参数,您应该使用 -D 代替:

            <jMeterProcessJVMSettings>
              <arguments>
                <argument>-Dimage_path=${teamcity.build.workingDir}/src/test/resources/images</argument>
                <argument>-Denvironment=TEST</argument>
              </arguments>
            </jMeterProcessJVMSettings>
        

        现在在 JMeter 中,您可以使用以下变量值来获取 pom.xml 中指定的值:

        ${__groovy(System.getProperty("image_path"\,"/some/default/dir"))}
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-11
          • 2011-09-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-12
          • 2013-02-25
          相关资源
          最近更新 更多