jmeter - 如何并行运行线程
问题描述
压力测试计划包含 5 个线程,见下文。
让我们考虑一个食品预订应用程序:
- 线程 0 包含先决条件,例如提取将由剩余线程 (1,2,3,4) 使用的令牌。
- 线程 1 与食物菜单有关。
- 线程 2 涉及向菜单添加项目并计算订单价格。
- 线程 3 创建订单。
- 线程 4 确认订单。
每个线程都需要执行前一个线程,因为它使用前一个线程的响应,并且我被要求同时运行线程 1、2、3、4,但事实是它们不能同时运行,因为线程 3 无法执行没有实际执行线程 2 等等。7.
让我添加一个真实的用例:
- 用户正在查看菜单项
- 同时,另一个用户正在确认订单
- 另一个用户正在将商品添加到购物车
实际上,所有的操作都是同时发生的,但是跳过之前的线程是不能进行任何操作的。
如何更改我的脚本以适应这种类型的并行压力测试?
解决方案
不得不重新阅读你的问题几次......我想你要问的是你能运行多个“线程组”......答案是肯定的,在你的测试计划中你右键单击并添加多个线程组,每个线程组都有自己的用户旅程脚本。
至于线程组之间的依赖关系,有共享变量的选项。但是您可能需要制定逻辑并编写一些常规代码以确保数据正确流动。
您还可以查看 BlazeMeter 网站上的“如何在 JMeter 中使用线程间通信插件”:https ://www.blazemeter.com/blog/how-to-use-the-inter-thread-communication-plugin -in-jmeter
更新:在克里斯蒂安对问题进行格式化之后,似乎“线程 0-4”正在描述用户旅程。例如; 用户登录,单击菜单,添加项目 x,去结帐等。
这将记录在一个线程组中。每个调用都将提供一个服务器响应,然后可以对其进行参数化和关联,从而确保正确传递数据。“并发”将来自增加多个用户“线程”。
例如; 在此屏幕截图中,我添加了一个具有 4 个 HTTP 采样器(用户旅程)的线程组。然后将线程组设置为运行 10 个用户,在 5 分钟(300 秒)内加速,并运行 3600 秒(又名 1 小时)的持续时间。
推荐阅读
- javascript - 从 SignalR OnConnected 方法手动返回访问被拒绝错误
- sql - REPLACE 和 REPLACE_REGEX SQL
- python - 将正则表达式模式与后面的否定外观匹配
- python - 使用选择/忽略特定键展平字典
- python - 在第 i 列中找到具有最大元素的矩阵的行
- javascript - Wat 是类组件和函数组件之间的区别
- java - 如何在方法中使用另一种方法?
- c# - 将二进制文件提取到的位置,在一个自包含的可执行文件中
- python - Matplotlib x-ticks 来自 Jan-Jan 而不是 Jan-Dec
- angular - mattlewis angular- calendar 没有显示正确的时间,它增加了 5:30 小时