我可以 运行 在用户以 Gatling 错误结束后的一些代码吗?
Can I run some code after a user ends with error in Gatling?
我正在使用 Karate + Gatling 来测试一个异步后端系统。
测试中的用户
- 向后端提交工单
- 等待工单开始处理(最多 10 个工单并行处理,其余在队列中等待)
- 处理开始时,等待它完成(~ 1 分钟)
- 处理完成后,检查结果并结束测试
问题是,如果在步骤 2 或 3 中测试失败(GET 请求超时,随机流量失败),工单仍留在后端,需要时间处理,干扰以下用户。
如果第 2 步或第 3 步测试失败,我想手动删除票证。加特林机可以吗?如果用户以失败告终,有什么方法可以执行一些 after
挂钩吗?我可以知道测试失败的地方吗?
我建议您在这个领域进行一些研究,并将您的发现回馈给社区。
空手道有钩子的概念:
因此,如果您实施 RuntimeHook
,您应该可以完全控制检测错误和执行一些自定义逻辑。
也就是说,团队通常会进行预清理,因为正如您刚刚发现的那样,进行“post-清理”要困难得多 - 如果失败了会怎样.也许您应该只记录一些事务 ID 并手动进行清理。参考:
这个答案可能会给您一些创意。例如,您可以 运行 一个 Java 线程,该线程不断轮询数据库中的任何状态更改:
请注意,有 Gatling 特定方法可以解决此问题:
我正在使用 Karate + Gatling 来测试一个异步后端系统。
测试中的用户
- 向后端提交工单
- 等待工单开始处理(最多 10 个工单并行处理,其余在队列中等待)
- 处理开始时,等待它完成(~ 1 分钟)
- 处理完成后,检查结果并结束测试
问题是,如果在步骤 2 或 3 中测试失败(GET 请求超时,随机流量失败),工单仍留在后端,需要时间处理,干扰以下用户。
如果第 2 步或第 3 步测试失败,我想手动删除票证。加特林机可以吗?如果用户以失败告终,有什么方法可以执行一些 after
挂钩吗?我可以知道测试失败的地方吗?
我建议您在这个领域进行一些研究,并将您的发现回馈给社区。
空手道有钩子的概念:
因此,如果您实施 RuntimeHook
,您应该可以完全控制检测错误和执行一些自定义逻辑。
也就是说,团队通常会进行预清理,因为正如您刚刚发现的那样,进行“post-清理”要困难得多 - 如果失败了会怎样.也许您应该只记录一些事务 ID 并手动进行清理。参考:
这个答案可能会给您一些创意。例如,您可以 运行 一个 Java 线程,该线程不断轮询数据库中的任何状态更改:
请注意,有 Gatling 特定方法可以解决此问题: