如何针对损坏的服务器测试客户端实现?

时间:2013-06-04 11:33:55

标签: java testing client-server

我正在开发一个连接外部服务的Java HTTP客户端类(使用Apache HttpComponents)。我需要确保我的客户端实现在服务器端意外启动时会以可预测的方式运行,例如突然断开连接,格式错误的响应,不一致的标头,超时等。

如何在运行测试时可靠地模拟这些条件?我不介意连接到故障的远程服务器,但最好使用本地解决方案。

3 个答案:

答案 0 :(得分:1)

  1. 您可以使用java Socket和ServerSocket类来模拟服务器行为,但我认为编码太繁琐了。
  2. 你可以使用像apache mina框架这样的成熟框架,请参考http://mina.apache.org/
  3. 你可以配置apache http服务器让你的客户端访问不同的美德目录。 apache http服务器能够根据您的URL路径响应不同的http代码。
  4. 你可以安装简单的apache tomcat servlet容器并编写一些JSP。在这些JSP中,您可以定义response.setHeader或其他一些http响应代码。

答案 1 :(得分:0)

我建议创建一个模拟器,它将模拟与服务器相同的行为。对它进行编码,使其能够针对同一请求逐个发送上述响应,以便您能够测试所有响应消息。如果您知道实际服务器可以针对所有这些条件发送哪些响应,您还可以在模拟器中对响应进行硬编码。

答案 2 :(得分:0)

尝试Arquillian(http://arquillian.org/)框架。可能适合您的需求。

以下是功能列表:http://arquillian.org/features/