在 Apache JMeter 中,模拟高并发用户访问并统计其运行情况,你可以按照以下步骤操作,并使用同步定时器(Synchronizing Timer)来控制并发用户数。以下是详细的操作步骤:
1、模拟100个用户同时访问百度首页,统计各种高并发情况下运行情况
操作步骤:

  1. 添加线程组,设置线程数=100
  2. 添加HTTP请求
  3. 添加同步定时器,并发数可分别设置20/30人
  4. 添加查看结果树
  5. 添加监听器-聚合报告
    黑马程序员-软件测试

1. 添加线程组

  1. 打开 JMeter。
  2. 在测试计划(Test Plan)中,右键点击“线程组(Thread Group)”并选择“添加(Add)” -> “线程(Threads)” -> “线程组(Thread Group)”。
  3. 在线程组配置中,设置“线程数(Number of Threads)”为 100,表示模拟 100 个用户。
  4. 设置“循环次数(Loop Count)”为你想要执行的循环数,或者选择“永远(forever)”来持续运行直到手动停止。

2. 添加 HTTP 请求

  1. 在线程组内,右键点击并选择“添加(Add)” -> “Sampler” -> “HTTP 请求(HTTP Request)”。
  2. 配置 HTTP 请求,设置“服务器名称或 IP(Server Name or IP)”为 www.baidu.com,并将“路径(Path)”设置为 /(百度首页的路径)。

3. 添加同步定时器

  1. 在线程组内,右键点击并选择“添加(Add)” -> “Timer” -> “同步定时器(Synchronizing Timer)”。
  2. 在同步定时器配置中,设置“线程数(Number of Threads to Group by)”为你想要同时启动的并发用户数。例如,你可以先设置为 20,然后运行测试,之后再设置为 30 来比较不同并发数下的性能。
  3. 保留“超时(Timeout)”字段为空或设置为一个合理的值(以毫秒为单位),这表示如果无法在指定时间内集齐指定数量的线程,定时器将不会等待并继续执行。但通常在高并发测试中,我们会让这个字段为空,以便所有线程都能同步。

4. 添加查看结果树(可选)

  1. 在线程组内,右键点击并选择“添加(Add)” -> “监听器(Listener)” -> “查看结果树(View Results Tree)”。
  2. 这将允许你在测试运行时实时查看每个请求的详细响应。但请注意,在高并发测试中,查看结果树可能会产生大量的日志数据,并可能影响 JMeter 的性能。

5. 添加监听器-聚合报告

  1. 在线程组内(或测试计划级别,取决于你的需求),右键点击并选择“添加(Add)” -> “监听器(Listener)” -> “聚合报告(Aggregate Report)”。
  2. 聚合报告将提供关于整个测试运行期间所有请求的汇总统计数据,包括平均响应时间、吞吐量、错误率等。

运行测试

  1. 配置完成后,点击 JMeter 工具栏上的绿色三角形按钮来运行测试计划。
  2. 观察聚合报告中的统计数据,以了解不同并发数下的性能表现。
  3. 你可以通过更改同步定时器的“线程数”字段来测试不同的并发用户数,并比较结果。

注意事项

  • 同步定时器可能会导致线程等待,直到达到指定的并发数。如果超时设置得太短,可能会导致一些线程在未达到指定并发数时就继续执行,从而影响测试结果的准确性。
  • 在高并发测试中,JMeter 和被测系统都可能受到资源限制(如 CPU、内存、网络带宽等)。因此,在测试之前,请确保你的测试环境具有足够的资源来支持预期的并发用户数。
  • 监控被测系统的性能指标(如 CPU 使用率、内存使用率、数据库连接数等)也是非常重要的,以便更全面地了解系统在高并发下的表现。
    在 Apache JMeter 中,你可以设置同步定时器(Synchronizing Timer)的并发数为 100,以模拟 100 个用户同时访问的场景。实际上,设置同步定时器的并发数与你模拟的总用户数(即线程数)之间并没有严格的限制或冲突。

然而,有几个因素可能会影响你是否能够将并发数设置为 100:

  1. 资源限制:首先,你需要确保你的测试环境(包括 JMeter 所在的机器和被测服务器)有足够的资源来处理 100 个并发用户的请求。这包括 CPU、内存、网络带宽等。如果资源不足,即使你设置了 100 个并发用户,实际可能无法达到这个并发级别,或者测试过程中会出现性能问题。

  2. 同步定时器的行为:同步定时器会使 JMeter 等待直到达到指定的并发用户数后才允许线程继续执行。如果由于某种原因(如资源限制、网络延迟等)导致某些线程无法及时到达同步点,它们可能会超时并被允许继续执行,但这可能不是在完全同步的情况下。此外,如果设置的并发数过高,而系统的处理能力有限,可能会导致大量的线程等待,从而增加测试的总时间。

  3. 测试目标:你需要明确你的测试目标。如果你的目标是模拟 100 个用户同时访问的场景,并且你确信系统能够处理这个级别的并发请求,那么你可以将同步定时器的并发数设置为 100。但是,如果你的目标是评估系统在不同负载下的性能,并且你想逐步增加负载以观察系统的响应,那么你可能需要从较低的并发数开始,并逐步增加。

  4. JMeter 配置:确保你的 JMeter 配置是正确的,包括线程组的设置、HTTP 请求的配置等。错误的配置可能会导致测试不准确或失败。

  5. 被测系统的稳定性:在进行高并发测试之前,确保被测系统是稳定的,并且没有已知的性能问题。否则,测试结果可能会受到系统不稳定性的影响。

综上所述,你可以将同步定时器的并发数设置为 100,但你需要确保你的测试环境和被测系统都准备好处理这个级别的并发请求。同时,你也需要明确你的测试目标,并根据需要调整并发数。如果你不确定如何设置或解释测试结果,建议咨询具有相关经验的性能测试专家。

Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐