首页 文章

使用JMeter模拟数百万用户

提问于
浏览
1

我有一个应该能够同时处理数百万用户请求的系统 . 为了检查系统如何处理负载,我设置了一组JMeter服务器(从属服务器)和一个控制器(客户端) .

我有一个所有用户的数据库(~10M),我需要发送的每个请求来自不同的用户 .

我想知道如何在JMeter中实现这样的东西 . 基本上,我考虑过为每个从站划分一系列用户(比如100,000),然后在给定的从站内,每个请求应从本地100,000列表中读取一个新用户,然后将其删除 . 因此,我最终将向每个用户发送请求 .

事情是这个想法在理论上听起来合乎逻辑,我不知道如何使用JMeter术语来实现它 . 另外,我不确定如何在测试中从数据库中读取,虽然理论上我可以事先将其读入文本文件,并让每个从属文件包含其100,000个用户部分的文本文件 .

我可以设置一个非常大的机器集群,因此这里的规模不会成为问题 . 只是如何设置它 .

2 回答

  • 1

    为Jmeter提供参数列表的最佳方法是使用CSV文件:http://jmeter.apache.org/usermanual/component_reference.html#CSV_Data_Set_Config您可以配置CSV数据集配置,以使每个线程在CSV中使用不同的行 . 每个引擎都需要拥有自己独特的CSV文件,因为共享模式不能在分布式测试的引擎之间工作(你可以尝试自动化这个部分,这可能很有趣:)) .

    这就是你的脚本应该是这样的:
    1.线程组
    1.1 HTTP采样器(登录)
    1.1.1 CSV数据集配置
    1.2秒http采样器
    等等...

    登录采样器将使用CSV文件中加载的参数,因此对于每个“登录”,它将使用不同的行 .

    分布式测试非常简单:http://jmeter.apache.org/usermanual/remote-test.html请记住,在单个Jmeter加载引擎上运行100K并发用户将很困难(Jmeter消耗服务器上的资源,因此您将需要大量的CPU和内存) . 所以你也应该监控引擎 . 此外,1M用户将导致引擎将大量数据发送回控制台,因此您可能需要并行启动一堆分布式测试,最后聚合结果 .

    干杯,

  • 0

    这可以通过执行以下步骤来实现:

    • 获取用户凭据转储并将其保存到csv文件

    • 拆分csv文件 . 将1个文件复制到每个Jmeter从站,在所有机器上的相同位置,例如"C:\Loadtest"
      从控制器

    • ,在"CSV Data Set Config"中给出csv文件的路径 .

    • 运行测试 .

    通过执行上述步骤,Jmeter控制器将通过指向所有Jmeter Slave节点以在同一位置“C:\ Loadtest \”中使用CSV文件来开始执行测试 . 但这里的诀窍是所有机器都将使用不同的用户组 .

    希望这会有所帮助 .

相关问题