我正在尝试构建一个可以对服务器进行 http 调用的 Jmeter 测试计划。线程组中的每个线程将从 CSV 文件中读取 2 个参数,并使用参数进行 http 调用,并继续使用相同的参数进行相同的调用,假设 1000 次,每个线程执行之间有 10 秒的延迟。
http调用看起来像
/service/method?param1=${param1}¶m2=${param2}
CSV 是这样的:
1,2 3,4 5,6 7,8
除了单个问题,我已经设置了大部分工作的测试计划。我希望每个线程在执行时都使用相同的参数(相同的输入行)。目前唯一的方法是设置 Recycle on EOF = true
,但线程会随机选择值。 Param1 和 Param2 可以是随机生成的值,只要它们在整个执行过程中坚持使用同一线程即可。
无论如何我可以做到这一点吗?
谢谢!
最佳答案
我不太确定我是否正确理解您的问题(您可以更明确地描述它或使用示例)但下面的架构应该实现您的测试计划描述:
Test Plan Thread Group Number of Threads: N . . . While Controller Condition: ${__javaScript("${param2"!="<EOF>",)} - read csv-file until the EOF CSV Data Set Config Filename: [path to your file with test-data] Variable Names: param1,param2 Recycle on EOF? False Stop thread on EOF? True Sharing mode: Current thread group Loop Controller Loop Count = 1000 - number of loops for each thread, with the same params HTTP Request - your http call Test Action Target = Current Thread Action = Pause Duration (ms) = 10000 - pause between calls . . .
如果您需要 N 个线程中的每一个都读取并使用来自 csv 文件的单一且唯一行,您必须为 CSV 设置 Sharing mode: Current thread group
数据集配置(在这种情况下,csv 条目的数量应与线程数相同,否则应设置 Recycle on EOF? False
)。
如果您需要 N 个线程中的每一个都读取和使用 csv 文件中的所有行,您必须为 CSV 数据集配置设置共享模式:当前线程
。
如果这不是您想要的,请更清楚地描述您的问题。
关于testing - 使用 CSV 数据集配置时强制线程使用相同的输入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12205371/