此文已由作者赵慧莉授权网易云社区发布。
欢迎访问网易云社区,了解更多网易技术产品运营经验。
一、前言
最近在做内容分发网络(Content Delivery Network,简称 CDN)CDN的后端线上回归集监控时,常常出现连续执行多个用例时会报“org.apache.http.NoHttpResponseException”错误,而单个执行一个用例就不会报这种错误。经过分析为什么接口测试时不会出现这种问题,而线上回归的时候就会触发这种错误呢?原因是由于线上的回归集是为了验证实际的情况要检查CDN是否部署成功,所以线上一个用例的执行时间是30分钟之上,而线下接口测试只需要毫秒级别。接下来我将介绍下为什么会出现“org.apache.http.NoHttpResponseException”,以及如何解决这种问题。
二、出现“org.apache.http.NoHttpResponseException”的原因
HttpClient的实现类为CloseableHttpClient。创建CloseableHttpClient实例有两种方式: (1)使用CloseableHttpClient的工厂类HttpClients的方法来创建实例。HttpClients提供了根据各种默认配置来创建CloseableHttpClient实例的快捷方法。最简单的实例化方式是调用HttpClients.createDefault()。 (2)使用CloseableHttpClient的builder类HttpClientBuilder,先对一些属性进行配置,再调用build方法来创建实例。上面的H