问题陈述。 一组事务(1000+),需要通过从 Beanshell 或 JSR233 调用来调用或重用(无需在不同的 if/switch 控制器中重复)。
在 SoapUI 中,我们有 groovy 脚本选项来中断顺序执行并将控制转移到使用以下命令的任何请求。
if( Math.random() > 0.5 )
testRunner.runTestStepByName( "Request 1")
else
testRunner.runTestStepByName( "Request 2")
// do something else
....
Loadrunner(具有不同操作的运行时间设置)和 neoload 中提供相同的功能。
我们是否有任何内置对象或函数可以通过 JSR223/BeanShell 中的事务或采样器名称执行而不使用 if/while/switch 控制器?
例如:
在脚本中存在 10 个事务,并通过在执行期间通过 Jenkins 或命令提示符设置 JMeter 属性来为不同的场景使用相同的脚本。
__P(Flow,RoomBooking)
然后从 JSR233 /beanshell 采样器
if(Flow=="RoomBooking"){
invoke Login
invoke BookRoom
invoke Logout
} else if(Flow=="RoomBookingNBookItinerary")
invoke Login
invoke BookRoom
invoke BookItinerary
invoke Logout
}else if(Flow=="RoomBookingNcancel")
invoke Login
invoke BookRoom
Invoke ParkTicket
invoke CancelRoom
invoke Logout
}Like different flows with different thread and throughput
在这种情况下,我可以混合和匹配不同的流程,并为不同的流程重用相同的脚本。这将有助于减少应用程序更改期间的脚本返工工作。