我已经创建了一个用于创建用户配置文件的测试计划。我想为100个用户运行我的测试计划,但当我为10个用户运行它时,它成功运行,rump up
时间为2 sec
;但是当我为100个用户试用时&更重要的是,它正在失败,我为100个用户提供40 sec
中的rump uptime
。我不明白它可能出了什么问题。
在我的测试计划中,线程用户使用id 进行区分
提前感谢。
这是一个广泛的问题,这种行为可能是由引起的
- 测试中的应用程序无法处理100个线程的负载。检查日志中的错误,并确保应用程序/web服务器和/或数据库配置允许100多个并发连接。此外,您还可以检查"延迟"度量,以查看基础结构或应用程序本身是否存在问题
- 您的load generator计算机无法创建100个并发线程。如果是这样,您需要考虑JMeter分布式测试
- 您的脚本未优化。即使用消耗内存的监听器,如"查看结果树"、任何图形监听器、正则表达式提取器。请尝试以下JMeter性能和调整提示指南,看看它是否解决了您的问题
同意德米特里的观点,原因可能是以上三种之一。
还有一件事你可以试试。
您可以在ui模式下运行jmeter以验证脚本,验证后可以在非ui模式下进行运行,这将节省大量内存和cpu处理(基本上ui是jmeter中最重要的部分)。
你可以在非ui模式下运行jmeter脚本,比如
Jmeter-n-t-H代理-p端口
通常在具有2GB ram的单双核机器上(在您的情况下为Load Generator)可以成功进行100用户测试。
你可以查看更多的东西来找出实际的瓶颈
1.检查应用程序服务器日志(您的应用程序所在的服务器)
如果其中有任何故障,请查看服务器上的性能计数器(CPU、内存、网络等),以查看是否有任何过载。(如果服务器是windows,则使用perfmon进行检查;如果是linux,则尝试sar)
如果有些东西过载,则原因是您的应用服务器无法承载100个用户可能会尝试对其进行更多调整。
2.检查负载生成器系统性能计数器(JVM堆使用率、CPU、内存等)
如果JVM堆大小足够小,请尝试增加它,但如果其他计数器过载,则尝试分布式负载测试。
3.从脚本中删除不需要的/繁重的侦听器、断言。
也许这会有所帮助:)