我的jmx文件中有很多HTTP请求,我想一次打一个HTTP请求,而不管所有线程都没有设置

时间:2019-03-20 06:31:31

标签: jmeter

我的情况是- 我必须登录一个网站,然后必须填写数据。 为此,我创建了一个线程组并创建了两个HTTP请求,一个用于登录,另一个用于获取数据。 但是我想一次向HIt登录HTTP请求,并吸引许多虚拟用户的数据获取。 但是两者都有一个共同的线程组。 请帮我如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

如果您需要在并行登录后运行所有请求,则可以使用Parallel Controller插件:

  1. 安装JMeter Plugin Manager:下载plugins-manager.jar并将其放入lib/ext目录,然后重新启动JMeter。
  2. 打开菜单选项->插件管理器
  3. 安装Parallel Controller & Sampler插件。
  4. Parallel Controller添加到测试计划:右键单击线程组->添加->逻辑控制器-> bzm-并行控制器
  5. 在Parallel Controller中添加您的请求采样器。

选择您的Thread Group并设置线程数(用户)和循环数。

  

每个线程将完整地执行测试计划,并且完全独立于其他测试线程。多个线程用于模拟与服务器应用程序的并发连接。

因此,如果您只想运行一次登录采样器,请设置:

  • Number of Threads (users)至1
  • Loop Count至1

Number of Threads (users)

也有不同类型的线程组。检查official documentation了解更多信息

答案 1 :(得分:0)

JMeter线程(虚拟用户)彼此完全独立,它们使用Thread Local Storage模式来存储会话信息和变量,因此,如果您以一个用户身份登录-它将能够获取数据,第二个用户如果他未登录,将无法获取数据。

如果您完全确定要在多个虚拟用户之间共享同一登录会话,并且仅执行一次登录,请考虑以下测试设置:

  1. setUp Thread Group,其中有1个虚拟用户和1个循环来执行登录
  2. Inter-Thread Communication Plugin来存储会话信息(即Cookies)并将其传递给普通的线程组
  3. 普通Thread Group,使用setUp线程组中的数据时,您需要的用户数尽可能多

签出SynchronizationPluginsExample.jmx测试计划以参考实施。