在 JMeter 中使用 CSV 的替代方法(用于生成用户名)
Alternatives to using CSV in JMeter (for generating usernames)
我有一个具有以下结构的 JMeter 测试计划
Test Plan
**ThreadGroup1**
--CSV Data Config-001
----SimpleController
--------------LoginRequest
--------------Action-abc-Request
**ThreadGroup2**
--CSV Data Config-002
----SimpleController
--------------LoginRequest
--------------Action-xyz-Request
我有两个 CSV 文件,其中包含这样的用户列表..
**CSV-001**
Username1
Username2
.. ..
Username50
**CSV-002**
Username51
Username52
.. ..
Username100
在我的场景中,我需要 运行 对 100 个用户进行负载测试。 50 个用户从 ThreadGroup1 登录,另外 50 个用户从 ThreadGroup2 登录。来自两个线程组的用户同时登录。
目前,每当我更改总用户数时,我都必须手动 creating/editing 这些 CSV 文件。
如果有任何替代的省时且高效的方法可以满足我的场景要求(不使用 CSV 文件),请提出建议。
如果您能详细解释替代解决方案,我将不胜感激,因为我对 JMeter 的东西还很陌生。谢谢
您可以在每个线程中使用一个计数器。第一个线程中计数器的起始值为 1,第二个线程中为 51。确保未选中 'Track counter independently for each user' 复选框。
如果将引用名称分别设置为 thread1Count 和 thread2Count,则可以使用
Username${thread1Count}
第一个线程和
用户名${thread2Count}
第二次。
另一个想法是使用
Username${__threadNum}
第一个线程组和
Username${__BeanShell(ctx.getThreadNum()+Z+1)}
第二个,其中 Z 等于线程组 1 中的线程总数。您还需要加 1,因为 ctx.getThreadNum() returns 线程编号使用基于 0 的索引,而 __threadNum 函数是基于 1 的。
我有一个具有以下结构的 JMeter 测试计划
Test Plan
**ThreadGroup1**
--CSV Data Config-001
----SimpleController
--------------LoginRequest
--------------Action-abc-Request
**ThreadGroup2**
--CSV Data Config-002
----SimpleController
--------------LoginRequest
--------------Action-xyz-Request
我有两个 CSV 文件,其中包含这样的用户列表..
**CSV-001**
Username1
Username2
.. ..
Username50
**CSV-002**
Username51
Username52
.. ..
Username100
在我的场景中,我需要 运行 对 100 个用户进行负载测试。 50 个用户从 ThreadGroup1 登录,另外 50 个用户从 ThreadGroup2 登录。来自两个线程组的用户同时登录。
目前,每当我更改总用户数时,我都必须手动 creating/editing 这些 CSV 文件。
如果有任何替代的省时且高效的方法可以满足我的场景要求(不使用 CSV 文件),请提出建议。
如果您能详细解释替代解决方案,我将不胜感激,因为我对 JMeter 的东西还很陌生。谢谢
您可以在每个线程中使用一个计数器。第一个线程中计数器的起始值为 1,第二个线程中为 51。确保未选中 'Track counter independently for each user' 复选框。
如果将引用名称分别设置为 thread1Count 和 thread2Count,则可以使用
Username${thread1Count}
第一个线程和
用户名${thread2Count}
第二次。
另一个想法是使用
Username${__threadNum}
第一个线程组和
Username${__BeanShell(ctx.getThreadNum()+Z+1)}
第二个,其中 Z 等于线程组 1 中的线程总数。您还需要加 1,因为 ctx.getThreadNum() returns 线程编号使用基于 0 的索引,而 __threadNum 函数是基于 1 的。