无论如何,使用Jmeter在线程中同时运行不同的用户

时间:2019-05-02 16:37:17

标签: performance jmeter performance-testing jmeter-plugins jmeter-4.0

我想创建一个JMX脚本,管理员用户可以在其中登录并为30个客户创建登录名,然后前10个客户应使用这些登录详细信息登录,并同时执行少量交易,所有30个操作均应在3次迭代。我想要这样的东西

ThreadGRoup
->Admin log in request
->Generate user logins->extract the logins from response
-> While controller (count<=3)
  -> user login using extracted logins(10 users logins concurrently)
  -> user perform action 1
  -> user perform action 2

任何帮助将不胜感激....

我的脚本目前正在执行以下操作

ThreadGRoup
->Admin log in request
->Generate user logins->extract the logins from response
-> While controller (count<=30)
   -> user login using extracted logins (one user login)
   -> user perform action 1
   -> user perform action 2

2 个答案:

答案 0 :(得分:0)

您可以使用“ CSV数据集配置”配置元素。在csv文件中,您可以将用户名设置为第一列,将密码设置为第二列,然后在后续步骤中恢复变量,例如$ {username} $ {password}

以下是官方文档:
https://jmeter.apache.org/usermanual/component_reference.html#CSV_Data_Set_Config

答案 1 :(得分:0)

测试建模似乎不正确。我想不出一个场景,其中所有用户都在等待创建凭据,而当Admin创建凭据时,所有(十个用户)都开始执行自己的工作/操作。

理想情况下,这些应该是两个单独的脚本,其中管理员创建一些登录凭据,并且可能会有一些现有用户登录并执行其操作。不必成为新用户。如果是这种情况,那么您可以拥有一个现有用户的CSV文件,其中已有用户在执行其操作,而Admin用户正在为将来/新用户创建凭据。

例如

  • 脚本1:创建凭据(管理员)
  • 脚本2:登录并执行某些操作(用户)

但是,如果您对用例或测试建模有所了解,则可以使用10个线程执行测试,并在“-> Admin登录请求”中添加具有大量等待时间的计时器,以匹配点击/就像您正在用1个线程打一样。现在,在“使用提取的登录名登录用户(同时登录10个用户)”中使用“同步计时器”,这将使执行等待10个线程累积的时间然后执行。

enter image description here