我创建了一个Gatling模拟脚本,它首先执行由记录器生成的一些请求。在此之后,它执行自定义操作,启动另一个线程,因为涉及阻塞方法。
我现在的问题是模拟没有终止。即使请求在开始时只执行一次,我仍然会收到状态报告,说有一个活动用户。此外,如果我在自定义操作后添加更多请求,则无法执行。
我该如何解决这个问题?
修改
这是我的自定义操作:
class RegisterAction extends Action {
override def execute(session: Session): Unit = CustomInboxRunner.startInboxRunner("usermail", "pw")
override def name: String = "RegisterAction"
}
这是模拟脚本的相关摘录:
object ClickConfirmationLink {
val action = new ActionBuilder {
override def build(ctx: ScenarioContext, next: Action): Action = new RegisterAction
}
val pause = new PauseBuilder(1000 millis, None)
val confirm = new ChainBuilder(List(action, pause))
}
val scn = scenario("UserRegistration").exec(Register.register, ClickConfirmationLink.confirm)
setUp(scn.inject(atOnceUsers(1))).protocols(httpProtocol)
CustomInboxRunner.startInboxRunner(...)
是一个启动新线程的Java方法。