我有大约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行。我希望它只运行一次,遍历测试文件中的所有行,然后退出并将控制权移交给下一个线程。
我该怎么做?
答案 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可以帮助您调用测试计划的一部分,就像用常规编程语言调用函数一样。更重要的是,您可以使用变量对这些调用进行参数化。