使用没有响应的 http 请求编写测试

Writing tests with http request without response

我需要准备一个 Java 测试(柑橘框架),初始步骤是发送 http 请求。不幸的是,我的测试应用程序没有回复这个 http 请求,而我的测试框架希望有一个响应,否则会产生错误。我想到的处理这种情况的最佳方法是在我的测试框架和实际应用程序之间使用某种代理,它将测试请求转发给实际应用程序并以 OK 状态回复测试框架等待应用程序的响应。 这有意义吗?假设我的测试是 运行 maven 调用,我该如何准备这样的代理?

我看到以下选项:

  • 即发即弃:发送 Http 请求(在 Citrus 中使用 fork 模式发送操作)并且根本不关心响应。只需省略接收消息操作即可忽略 Citrus 中的响应。
  • 预期超时:发送 Http 请求并使用接收超时操作来验证客户端在给定时间内没有收到响应
  • Assert/catch超时异常:使用Citrus中的assert或catch动作处理发送http请求时的超时异常

就我个人而言,我会选择选项 #2,您可以在其中发送 Http 请求并验证在给定的时间内没有响应。这确保您的应用程序不发送任何响应的实际行为不会随时间改变。