JMeter JDBC数据库测试 - 最大等待(ms)

时间:2016-11-06 12:13:22

标签: jmeter database-testing

JDBC连接配置中Max Wait(ms)值的最佳实践是什么? JDBC

我正在执行两种类型的测试:

  1. 每个线程数20个循环 - 获得最大Thr​​oupught
  2. 每个线程数30min运行时间 - 获取响应时间
  3. 使用Max Wait = 10000ms我可以使用10,20,30,40,60和80个线程执行JDBC请求而不会出错。使用Max Wait = 20000ms我可以更高并执行100,120,140个线程而不会出错。这似乎是合乎逻辑的行为。

    现在提问。 我可以根据需要增加Max Wait值吗?如何获得更多测试结果是否正确? 如果在某些报告中发生错误,我是否应该停止测试并且不增加线程数?我得到了10000个样本的误差为0.06%。这是我的测试停止吗? 感谢。

2 个答案:

答案 0 :(得分:1)

Everything depends on what your requirements are and how you defined performance baseline.

我可以根据需要增加Max Wait值吗?如何获得更多测试结果是否正确?

  • 如果您的响应时间较长且功能正常,那么您可以根据需要保留最长时间。但是,实际上,响应时间的阈值(例如,执行登录事务的时间为2秒),您将其定义为性能SLA或性能基准的一部分。因此,尽管您通过增加最大时间来使请求成功,但由于响应时间过长(通过超过阈值),最终会将其视为失败请求。

注意:数据库操作的响应时间越长,最终会导致Web应用程序(或最终用户)的响应时间更长

如果在某些报告中发生错误,我是否应该停止测试并且不增加线程数?

  • 同样适用于错误率。如果SLA说,某些%错误率已达成一致,那么如果实际错误率低于此值,则可以认为测试符合SLA或性能基准。例如:如果要求表示0%错误率,则0.1%也被视为失败

我的测试停止了吗?

  • 您可以在任何您想要的点停止测试。它完全基于您要捕获的指标。据我所知,建议继续测试,直到达到无法继续测试的程度,如错误率达到99%等。如果误差率为0.6%,那么我建议继续通过测试,了解系统的突破点,如服务器崩溃,响应时间达到不可接受的值,内存问题等。

以下是一些很好的参考资料:

  1. https://www.nngroup.com/articles/response-times-3-important-limits/
  2. http://calendar.perfplanet.com/2011/how-response-times-impact-business/
  3. difference between baseline and benchmark in performance of an application
  4. https://msdn.microsoft.com/en-us/library/ms190943.aspx
  5. https://msdn.microsoft.com/en-us/library/bb924375.aspx
  6. http://searchitchannel.techtarget.com/definition/service-level-agreement

答案 1 :(得分:1)

根据文档

,此设置映射到DBCP -> BasicDataSource -> maxWaitMillis parameter
  

在抛出异常之前,池将等待(没有可用连接时)连接的最大毫秒数,或者-1无限期等待

它应与应用程序数据库配置的相关设置匹配。如果您的目标是确定最高性能 - 只需将-1放在那里,就会禁用超时。

关于我的测试停止了吗? - 它取决于多种因素,例如应用程序正在做什么,您要实现的目标以及正在进行的测试类型。如果你测试数据库哪个协调核电站运行比零误差阈值是唯一可接受的。如果这是猫的图片库,这个错误级别可以被认为是可接受的。

在大多数情况下,性能测试分为几个测试执行,如:

  1. Load Testing - 将系统置于预期负载之下,看看它是否能够处理预测的用户量
  2. Soak Testing - 与负载测试基本相同,但保持负载的时间较长。这允许检测例如内存泄漏
  3. Stress testing - 确定应用程序的边界,饱和点,瓶颈等。从零负载开始逐渐增加它,直到它突破提及最大用户数量,其他指标的相关性,如响应时间,吞吐量,错误率等,随着用户数量的增加,检查应用程序在负载恢复正常时是否恢复等。
  4. 有关详细描述的上述测试类型,请参阅Why ‘Normal’ Load Testing Isn’t Enough文章。