If statement 如何查找URL是否包含特定格式,然后运行“执行当前事务”
我目前在If statement 如何查找URL是否包含特定格式,然后运行“执行当前事务”,if-statement,jmeter,If Statement,Jmeter,我目前在JMeter中有两个事务控制器。如果${url}末尾包含-1,我希望执行第一个事务,如果${url}末尾不包含-1,则执行第二个事务 ${url}是来自CSV数据集配置的变量。基本上,它是一个常规的HTTP URL 这就是我的JMeter测试计划的样子: Thread Group --CSV Data Set config --Transaction 1 --HTTP request which will execute ${URL} -- Transaction 2 ---
JMeter
中有两个事务控制器。如果${url}
末尾包含-1,我希望执行第一个事务,如果${url}
末尾不包含-1,则执行第二个事务
${url}
是来自CSV数据集配置的变量。基本上,它是一个常规的HTTP URL
这就是我的JMeter
测试计划的样子:
Thread Group
--CSV Data Set config
--Transaction 1
--HTTP request which will execute ${URL}
-- Transaction 2
----HTTP request which will execute ${URL}
现在我可以在每个事务上方添加If
,但我不确定应该将If
语句与什么进行比较
示例URL:
第一个URL-/test/user/editprofile/userid/1234-1
第二个URL-/test/user/viewprofile/userid/8975
第一个URL应在第一个事务下运行,第二个URL应在第二个事务下运行。在if控制器中,您可以设置以下条件:
"${__BeanShell('${URL}'.contains('-1'))}"
如果url为-1,则将执行if控制器的子级。
然后,您需要第二个if控制器,该控制器具有:
"${__BeanShell(!'${URL}'.contains('-1'))}"
对于第二个请求
另一种选择是使用交换机控制器,第一个请求作为第一个子项,第二个请求作为第二个子项。然后在后处理器中,需要根据结果将变量设置为0或1
var url = vars.get('URL');
var switch = 0;
if(!url.contains('-1'))
switch = 1;
vars.put('switch', switch.toString());
在开关控制器中使用${switch}作为条件变量。在if控制器中,可以将以下内容作为条件:
"${__BeanShell('${URL}'.contains('-1'))}"
如果url为-1,则将执行if控制器的子级。
然后,您需要第二个if控制器,该控制器具有:
"${__BeanShell(!'${URL}'.contains('-1'))}"
对于第二个请求
另一种选择是使用交换机控制器,第一个请求作为第一个子项,第二个请求作为第二个子项。然后在后处理器中,需要根据结果将变量设置为0或1
var url = vars.get('URL');
var switch = 0;
if(!url.contains('-1'))
switch = 1;
vars.put('switch', switch.toString());
在开关控制器中使用${switch}作为条件变量。在if控制器中,可以将以下内容作为条件:
"${__BeanShell('${URL}'.contains('-1'))}"
如果url为-1,则将执行if控制器的子级。
然后,您需要第二个if控制器,该控制器具有:
"${__BeanShell(!'${URL}'.contains('-1'))}"
对于第二个请求
另一种选择是使用交换机控制器,第一个请求作为第一个子项,第二个请求作为第二个子项。然后在后处理器中,需要根据结果将变量设置为0或1
var url = vars.get('URL');
var switch = 0;
if(!url.contains('-1'))
switch = 1;
vars.put('switch', switch.toString());
在开关控制器中使用${switch}作为条件变量。在if控制器中,可以将以下内容作为条件:
"${__BeanShell('${URL}'.contains('-1'))}"
如果url为-1,则将执行if控制器的子级。
然后,您需要第二个if控制器,该控制器具有:
"${__BeanShell(!'${URL}'.contains('-1'))}"
对于第二个请求
另一种选择是使用交换机控制器,第一个请求作为第一个子项,第二个请求作为第二个子项。然后在后处理器中,需要根据结果将变量设置为0或1
var url = vars.get('URL');
var switch = 0;
if(!url.contains('-1'))
switch = 1;
vars.put('switch', switch.toString());
使用${switch}作为交换机控制器中的条件变量。按如下方式构建您的测试计划:
- 螺纹组
- CSV数据集配置
- 如果控制器-condition
“${URL}”.indexOf(“-1”)>-1
- 如果URL包含“-1”,则要执行的采样器
- 如果控制器-condition
“${URL}”.indexOf(“-1”)==-1
- 如果URL不包含“-1”,则要执行的采样器
有关基于特定条件使用JMeter运行采样器的更多详细信息,请参阅指南 按如下方式构建您的测试计划:
- 螺纹组
- CSV数据集配置
- 如果控制器-condition
“${URL}”.indexOf(“-1”)>-1
- 如果URL包含“-1”,则要执行的采样器
- 如果控制器-condition
“${URL}”.indexOf(“-1”)==-1
- 如果URL不包含“-1”,则要执行的采样器
有关基于特定条件使用JMeter运行采样器的更多详细信息,请参阅指南 按如下方式构建您的测试计划:
- 螺纹组
- CSV数据集配置
- 如果控制器-condition
“${URL}”.indexOf(“-1”)>-1
- 如果URL包含“-1”,则要执行的采样器
- 如果控制器-condition
“${URL}”.indexOf(“-1”)==-1
- 如果URL不包含“-1”,则要执行的采样器
有关基于特定条件使用JMeter运行采样器的更多详细信息,请参阅指南 按如下方式构建您的测试计划:
- 螺纹组
- CSV数据集配置
- 如果控制器-condition
“${URL}”.indexOf(“-1”)>-1
- 如果URL包含“-1”,则要执行的采样器
- 如果控制器-condition
“${URL}”.indexOf(“-1”)==-1
- 如果URL不包含“-1”,则要执行的采样器
有关基于特定条件使用JMeter运行采样器的更多详细信息,请参阅指南 就我所知,JavaScript中没有“contains”函数,感谢您的帮助。开关控制器逻辑会工作吗?我将在周日试一试,并分享结果。同时,如果您有任何其他建议,请suggest@DmitriT你说得对,谢谢。我编辑了答案以使用BeanShell函数,这正是我想要的,我之前在大脑中有js。我已经测试过这个解决方案。@user1169236我一直在使用开关控制器。关键是,使用switch控制器时,您需要确保孩子们的顺序正确,与他们的条件相关。就我所知,JavaScript中没有“包含”函数感谢您的帮助。开关控制器逻辑会工作吗?我将在周日试一试,并分享结果。同时,如果您有任何其他建议,请suggest@DmitriT你说得对,谢谢。我编辑了答案以使用BeanShell函数,这正是我想要的