【发布时间】:2018-10-23 01:50:13
【问题描述】:
我目前正在使用 JMeter 对某些应用程序进行负载测试,我使用了持续时间断言并将其设置为,假设为 200,当加载时间超过 200 时,结果树中的请求变为红色,因为这是一个错误.
【问题讨论】:
我目前正在使用 JMeter 对某些应用程序进行负载测试,我使用了持续时间断言并将其设置为,假设为 200,当加载时间超过 200 时,结果树中的请求变为红色,因为这是一个错误.
【问题讨论】:
您正在查看的是摘要。 您需要在项目中添加一个侦听器,将结果保存到文件中。 然后您需要让 Teamcity 读取该文件并断言结果。
Teamcity 只是在告诉您“嗯,您希望我运行的脚本有效”。
以下是有关操作方法的小指南: https://devblog.xero.com/run-jmeter-performance-tests-on-teamcity-8315f7ccffc1#.8ga4jso7k
【讨论】:
查看 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
【讨论】:
您并没有真正指定很多信息。你如何运行应用程序?你有可用的 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"))}
【讨论】: