在 Jmeter 负载测试的 5 页应用程序上,100 个并发用户发出了多少请求

how much requests are made for 100 concurrent users on 5 page application on Jmeter load test

我正在 运行成功地对 100 到 1k 用户进行了 jmeter 测试, 但我怀疑响应时间是否高于预期。

我的测试计划包括:获取登录和 post 登录、获取测试页面、post 测试页面、获取搜索页面、post 搜索页面....

总共有 5 个 get 和 5 个 post 表格。

对于相同数量的用户,如果我减少页面数量,整体响应时间会减少

所以我应该 运行 单独测试页面吗?

为了性能测试,我是否应该减少实际用户数(5 页*20 个用户=100 个并发用户)?

或者我应该使用分布式系统?

最佳做法是什么?

当前设置:i5、8GB Ram、一台 windows 机器和 Jmeter 3.1

有 N 个因素会影响总体响应时间。用户/页面数量等也很少。您对性能测试有什么具体要求吗?如果您不确定非功能性需求,那么我想您的所有问题都会在这些帖子中得到澄清 -

http://www.testautomationguru.com/jmeter-performance-testing-application-of-littles-law-to-workload-models/

http://www.testautomationguru.com/jmeter-tips-tricks-for-beginners/

你的负载测试应该是现实的,否则没有意义。您需要尽可能地模拟预期的用户行为,只有这样您才能获得真实的生活画面。

因此您需要实现您的测试场景以匹配方式,您的网站将在现实世界中使用。如果它已经存在,您可以使用 Access Log Sampler 重放流量。如果不是,可以考虑"user groups",比如:

  • 50% 的未通过身份验证的用户将浏览网站
  • 20% 的经过身份验证的用户将浏览网站
  • 5% 的用户将处于登录过程
  • 3% 的用户会搜索某些东西

您可以使用不同的 Thread Groups to represent different groups of users and Throughput Controller to control the frequency of samplers execution inside the Thread Group. See Running JMeter Samplers with Defined Percentage Probability 文章来了解有关如何以实际方式分配负载的更多信息。

我认为您可能 运行 遇到 jmeter 问题。您使用的 JVM 堆和 GC 算法是什么?您如何衡量每个页面的性能?如果您使用 "Transaction Controller" 来衡量性能,jmeter 中的任何缓慢都会影响您的事务控制器值。

您是否与应用程序日志相关联以真正了解当您减少页面数量时应用程序确实在变慢?如果您的应用程序响应时间是恒定的,我认为 jmeter 是这里的罪魁祸首。将所有测量移动到采样器级别而不是事务控制器并更新结果