我已经阅读了与我的问题相同的帖子,但是没有足够的细节让我弄清楚。所以我想知道是否有人能纠正我做错的事情。正如问题所述,我想使用CLI从测试计划中运行单个线程组。
我的测试计划包含4个线程组。每个线程组都完全相同,除了每个线程组中的Cookie Manager包含特定Cookie的不同值之外。因此,当我从命令行运行时,我想告诉JMeter仅执行线程组1或2或3等...到目前为止,我所读到的是您可以使用While控制器和变量来实现这一点,但我似乎无法使其工作。
我的测试计划如下:
+ 测试计划 - 登录 + 线程组 - 服务器1登录 - While控制器(*带有变量“server1ThreadActive”) - HTTP请求默认值 - Cookie管理器 + HTTP请求-加载主页 + HTTP请求-加载登录页面 + HTTP请求-登录表单 + HTTP请求-做某事 + HTTP请求-做其他事情 + HTTP请求-注销 + 线程组 - 服务器2登录 - While控制器(*带有变量“server2ThreadActive”) - HTTP请求默认值 - Cookie管理器 + HTTP请求-加载主页 + HTTP请求-加载登录页面 + HTTP请求-登录表单 + HTTP请求-做某事 + HTTP请求-做其他事情 + HTTP请求-注销
因此,以上测试计划还有2个完全相同的线程组用于服务器3和4...我是否已经在正确的位置配置了While循环?
第一次尝试:While控制器条件设置如下:
条件(函数或变量)= "${__P(server1ThreadActive)}" == "false"
然后为了仅执行Server 2的线程,我会在CLI上使用以下命令:
jmeter -n -t Server_Login.jmx -Jserver1ThreadActive=true 结果是当我只想运行Server 2线程时,所有4个线程都在执行。
第二次尝试:While控制器条件设置如下:
条件(函数或变量)= ${__P(server1ThreadActive)}
我的测试计划包含4个线程组。每个线程组都完全相同,除了每个线程组中的Cookie Manager包含特定Cookie的不同值之外。因此,当我从命令行运行时,我想告诉JMeter仅执行线程组1或2或3等...到目前为止,我所读到的是您可以使用While控制器和变量来实现这一点,但我似乎无法使其工作。
我的测试计划如下:
+ 测试计划 - 登录 + 线程组 - 服务器1登录 - While控制器(*带有变量“server1ThreadActive”) - HTTP请求默认值 - Cookie管理器 + HTTP请求-加载主页 + HTTP请求-加载登录页面 + HTTP请求-登录表单 + HTTP请求-做某事 + HTTP请求-做其他事情 + HTTP请求-注销 + 线程组 - 服务器2登录 - While控制器(*带有变量“server2ThreadActive”) - HTTP请求默认值 - Cookie管理器 + HTTP请求-加载主页 + HTTP请求-加载登录页面 + HTTP请求-登录表单 + HTTP请求-做某事 + HTTP请求-做其他事情 + HTTP请求-注销
因此,以上测试计划还有2个完全相同的线程组用于服务器3和4...我是否已经在正确的位置配置了While循环?
第一次尝试:While控制器条件设置如下:
条件(函数或变量)= "${__P(server1ThreadActive)}" == "false"
然后为了仅执行Server 2的线程,我会在CLI上使用以下命令:
jmeter -n -t Server_Login.jmx -Jserver1ThreadActive=true 结果是当我只想运行Server 2线程时,所有4个线程都在执行。
第二次尝试:While控制器条件设置如下:
条件(函数或变量)= ${__P(server1ThreadActive)}
命令行:想要只执行Server 2的线程,可以在CLI中使用以下命令。假设如果没有在while控制器中进行值赋值,则默认为true,因此将所有变量设置为false,除了要运行的变量:
jmeter -n -t Server_Login.jmx -Jserver1ThreadActive=false -Jserver3ThreadActive=false -Jserver4ThreadActive=false
结果:这会导致所有4个线程都被执行,而我只想运行Server 2的线程。
其他还有一些方法,但我认为它们也是错误的,因为结果相同。我尝试添加一个用户定义的变量部分并创建4个变量,但无法弄清楚...... 我甚至尝试创建一个名为“Server_Login.properties”的文件,并插入这些变量名称,每个变量一行,其值设置为false,然后使用-S选项将其包括在命令行中,但没有成功......
有人能告诉我我错在哪里吗? 如有任何想法或建议,将不胜感激!
提前感谢, Matt