yichichuchen 2024-07-03 16:00 采纳率: 0%
浏览 2

jmeter压测一次跳转后同时请求多个接口

最近在公司进行压测试,登录后进入首页,进入首页会同时去调用4个接口,现在要对这进行并发负载测试,应该是怎么设置脚本呢,
1、创建3个线程组,每个线程组下放一个接口请求。
2、创建一个线程组,3个请求都放在下面。
3、创建1个线程组,下面加个事物控制器,然后把3个请求放在控制器下。
使用3的话 聚合报告中的时间为所有接口响应时间之和,这样统计合理吗?

问题二,在执行测试的过程中 如果设置为 100个线程, 登录->首页, 我看了下执行的时候是需要所有线程的登录执行完成了之后才会执行首页, 可以处理成 一个线程登录成功了之后就处理首页,不用管其他线程的登录是否完成这样吗?

希望有老大佬们可以解惑一下,万分感谢!

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-07-03 16:00
    关注

    引自免费微信小程序:皆我百晓生

    针对你的问题,我将尝试解答并提供相应的指导。我会尽量使用简单的语言和模拟图来解释。

    问题一:关于压测时如何设置脚本以同时请求多个接口

    方案一和方案二在JMeter中的设置相对简单。你可以按照你的需求选择其中一个进行设置。这里我们重点讲一下方案三,因为关于如何在JMeter中使用事务控制器(Transaction Controller)来实现并发请求可能有一些不清晰的地方。

    方案三的具体设置如下:

    1. 创建一个线程组。
    2. 在线程组下添加一个事务控制器。
    3. 在事务控制器下放置你的三个接口请求。

    关于你提到的聚合报告中时间的统计问题:如果使用事务控制器,聚合报告中的时间应该是三个接口中最慢的响应时间,而不是总和。这是JMeter中事务控制器的默认行为。如果你想统计总和,你可能需要编写自定义的JMeter插件或使用其他后处理工具来完成。

    问题二:关于线程的执行顺序

    在JMeter中,线程是并行执行的,不是串行执行的。这意味着当你的压测计划中涉及到登录和首页的请求时,JMeter会尝试同时启动所有线程进行登录,而不是等待所有线程完成登录后再执行首页的请求。这是JMeter的默认行为。

    关于你提到的“一个线程登录成功后立即处理首页,而无需等待其他线程的登录完成情况”,这种需求在JMeter中可以通过使用同步机制来实现。你可以使用JMeter的内置同步机制来确保所有或特定数量的线程完成登录后,再一起发起首页的请求。具体实现方式可以通过使用JMeter的“同步定时器”或“通过正则表达式断言同步”来完成。

    为了更好地帮助你理解和实现上述解决方案,我可以为你提供简单的模拟图和代码示例(如果需要的话)。但请注意,具体的实现细节可能会根据你的JMeter版本和具体需求有所不同。

    最后,建议你在进行压测时,详细阅读JMeter的官方文档和教程,这可以帮助你更深入地理解JMeter的功能和使用方法。希望这些解答能帮到你!

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月3日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见