testing - 使用 CSV 数据集配置时强制线程使用相同的输入行

标签 testing jmeter

我正在尝试构建一个可以对服务器进行 http 调用的 Jmeter 测试计划。线程组中的每个线程将从 CSV 文件中读取 2 个参数,并使用参数进行 http 调用,并继续使用相同的参数进行相同的调用,假设 1000 次,每个线程执行之间有 10 秒的延迟。

http调用看起来像

/service/method?param1=${param1}&param2=${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/

相关文章:

JMeter - 为 JMeter 贡献新功能

ssh - 从 Jmeter 运行 SSH 命令和 shell 脚本

java - 如何在 Apache Beam Java 中将 TestStreams 与多输出类一起使用

testing - 您如何针对 Iñtërnâtiônàlizætiøn 测试您的应用程序? (国际化?)

javascript - JMeter 警告 : Nashorn engine is planned to be removed from a future JDK release

jmeter - Apache JMeter 4 - 我可以获得负载测试的文本摘要吗?

java - JMeter - 在变量/属性中存储/更新 HashMap 对象

testing - 在 Dynamics 365 中进行应用测试的用户模拟

reactjs - 使用 jest-each 进行动态数据测试

Scalatest "At least one"代替 Forall