JMeter 在生产服务器中用于健全性测试

JMeter use in sanity testing in production servers

我在开发环境中使用 JMeter,我想在生产服务器上执行健全性测试。

网站登录和其他操作的完整性。

在生产服务器上使用 JMeter 合理吗?如何限制 JMeter 使其不会影响真实用户?我只找到 tutorial 不建议它。

Do not run these tests against your production servers unless you know they can handle the load, or you may negatively impact your server's performance.

作为一名工程经理,我会说:这不是我有生之年 ;-)

那么您想听到什么:这不是问题? 如果某些行为与您的预期不同,只有您可以判断这是否会成为问题。 我的建议与您所引用的相同:不要这样做。除非你知道自己在做什么,即使那样...

从 JMeter 的角度来看,您 运行 在何处进行测试并不重要。 运行针对生产环境进行负载测试非常有用,因为通过这种方式您可以发现 "real" 限制、瓶颈、集成和互操作性问题,这与在您只能猜测或计算预期的缩小环境中进行负载测试相反生产指标。

理想情况下,您应该拥有某种形式的 "staging environment",它是生产环境在硬件、软件和数据方面的精确复制品。

如果您负担不起 "staging" 环境,您可以 运行 在生产环境中进行测试,但是您需要牢记几个重要的限制条件以避免 "surprises"

  1. 运行 您在 "dead" 应用程序实际使用量最少的时间进行测试,即在夜间或周末进行。
  2. 确保 JMeter 测试使系统保持与测试前相同的状态,即如果您创建用户、内容、数据等 - 确保在测试后清理它,以免系统被填满"junk" 数据用于负载测试。所以考虑使用 setUp Thread Group for setting up all the necessary test data and tearDown Thread Group 来清理自己
  3. 确保监控服务器的运行状况,以便在(如果)系统过载时收到通知。您可以为此使用 JMeter PerfMon Plugin
  4. 启用 AutoStop Listener 也很好,这样 JMeter 测试就会自动停止
  5. 考虑将 SMTP Sampler 添加到您的测试计划中,以便在出现意外错误时通知您。