jmeter使用中最佳实践方法

Posted yy-cola

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jmeter使用中最佳实践方法相关的知识,希望对你有一定的参考价值。

官方文档(Best Practices-最佳实践部分摘选):https://jmeter.apache.org/usermanual/best-practices.html

一、线程组

Use the correct Number of Threads(使用正确的线程数)

硬件能力以及测试计划设计都将影响使用JMeter有效运行的线程数量,这个数字还取决于服务器的速度(更快的服务器使JMeter工作更努力,因为它返回响应更快),与任何负载测试工具一样,如果不正确地调整线程的数量,您将面临“Coordinated Omission”问题,这会导致错误或不准确的结果。如果需要大规模负载测试,请考虑使用分布式模式(或不使用分布式模式)在多台机器上运行多个非GUI JMeter实例。当使用分布式模式时,结果文件将在Controller节点上组合,如果使用多个自治实例,则示例结果文件可以组合用于后续分析。为了测试jmeter在给定的平台表现如何,可以使用JavaTest取取器,它不需要任何网络访问,因此可以给出关于可达到的最大吞吐量的一些想法。

JMeter有一个选项可以延迟线程创建,直到线程开始采样,即在任何线程组延迟和线程本身的ramp-up time之后。这允许一个非常大的线程总数,前提是没有太多同时活动的线程。

 

                                                                                                                                                                ------来自官方文档:https://jmeter.apache.org/usermanual/best-practices.html 

每个线程均独立运行测试计划。因此, 线程组常用来模拟并发用户访问。假如客户机没有足够的能力来模拟较重的负载,可以使用Jmeter的分布式测试功能来通过一个Jmeter控制台来远程控制多个Jmeter引擎完成测试。

 

在“测试计划”上右键 【添加】-->【Threads(Users)】-->【线程组】

 技术分享图片

 

 二、避免人为的压测服务器资源浪费

Reducing resource requirements(减少资源需求)

关于减少资源使用的一些建议:

  • 使用非GUI模式:jmeter -n -t test.jmx -l test.jtl
  • 使用尽可能少的Listeners; 如果使用上面-l选项,可以删除或禁用它们。
  • 在加载测试期间,请勿使用"View Results Tree" 或者"View Results in Table" 侦听器,仅在脚本编写阶段使用它们来调试脚本。
  • 在循环中使用相同的采样器,而不是使用大量类似的采样器,并使用变量(CSV数据集)来改变样本。[Include Controller在这里没有帮助,因为它将文件中的所有测试元素添加到测试计划中。]
  • 不要使用functional模式
  • 使用CSV输出而不是XML
  • 仅保存您需要的数据
  • 使用尽可能少的断言
  • 使用性能最佳的脚本语言(参见JSR223部分)

如果您的测试需要大量数据 - 特别是如果需要随机化 - 请在可以使用CSV数据集读取的文件中创建测试数据。这可以避免在运行时浪费资源

三、开发脚本函数(TODO)

     等实践后更新

以上是关于jmeter使用中最佳实践方法的主要内容,如果未能解决你的问题,请参考以下文章

JMeter 十四:最佳实践

在 .Net 中使用扩展方法的最佳实践是啥?

Helm(三)—最佳实践

使用视图模型中的属性值实现方法的最佳实践是啥?

angular中订阅方法的最佳实践是啥?

哈希密码的最佳实践