JMeter:在文件中运行所有测试

时间:2012-07-25 10:35:06

标签: jmeter stress-testing

我有大约4个名为的文件:

Test_1.csv
Test_2.csv
...

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

method;request

其中,method是我调用的网址,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从Test_1.csv运行前20行,然后步骤2开始,运行20次测试并继续。然后,在完成所有步骤后,步骤1再次运行并从Test1.csv运行相同的20行。我希望它只运行一次,遍历测试文件中的所有行,然后退出并将控制权移交给下一个线程。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

尝试使用以下架构:

Test Plan
    Thread Group #1
    Number of Threads: N
        . . .
        While Controller
        Condition: ${__javaScript("${request}"!="<EOF>",)} - until the EOF
            CSV Data Set Config
            Filename: [path to your file with test-data] - Test_1.csv in this case
            Variable Names: method,request
            HTTP Request
                Uniform Random Timer
            . . .           
    Thread Group #2
        . . .
        [same for Test_2.csv]
    Thread Group #3
        . . .
        [same for Test_3.csv]

答案 1 :(得分:0)

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