我创建了一个 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 方法。