2

我有大约 4 个文件名为:

Test_1.csv
Test_2.csv
...

每个测试文件中的每一行都具有以下格式:

method;request

在哪里,method是我调用的 URL,request是我向它发出的请求。一切都配置为获取这些值并形成 URL。

但是,首先Test_1.csv必须运行,然后Test_2.csv必须运行等等。为此,我在以下层次结构中创建了 5 个线程组:

Test Plan
 |
 +- Step 1
     |
     +- HTTP request
     +- CSV Data Set Config <- Reads from Test_1.csv
     +- Uniform Random Timer
 +- Step 2
     |
     +- HTTP request
     +- CSV Data Set Config <- Reads from Test_2.csv
     +- Uniform Random Timer

而且我还在Run thread groups consecutively我的测试计划中选择了该选项。每个线程组配置为 20 个线程。现在,我想要它做的是,第 1 步应该运行中的每个测试Test_1.csv,然后第 2 步应该执行并运行中的每一行Test_2.csv。但是,发生的情况是,第 1 步运行前 20 行Test_1.csv,然后第 2 步开始,运行 20 次测试并继续。然后,在完成所有步骤后,第 1 步再次运行并从Test1.csv. 我希望它只运行一次,遍历测试文件中的所有行,然后退出并将控制权交给下一个线程。

我该怎么做?

4

2 回答 2

0

jMeter Plugins 的ParameterizedController可以帮助您调用部分测试计划,就像调用常规编程语言中的函数一样。更重要的是,您可以使用变量对这些调用进行参数化。

于 2012-07-26T23:16:21.607 回答
0

尝试使用以下架构:

测试计划
    线程组 #1
    线程数:N
        . . .
        而控制器
        条件:${__javaScript("${request}"!="<EOF>",)} - 直到 EOF
             CSV 数据集配置
            文件名:[包含测试数据的文件的路径] - Test_1.csv 在此case
            变量名:method,request 
            HTTP 请求
                统一随机定时器
            . . .           
    线程组 #2
        . . .
        [与 Test_2.csv 相同]
    线程组 #3
        . . .
        [与 Test_3.csv 相同]
于 2012-07-25T15:39:00.453 回答