如何测试RestTemplate的线程安全性?

时间:2019-03-30 17:21:48

标签: java resttemplate

我知道RestTempalte一旦构建便是线程安全的,这在StackOverflow Is RestTemplate thread safe?上的这篇帖子中也有介绍

但是我希望能够测试它确实是线程安全的,我不知道如何处理它,因为restTempate将用于调用服务,而我不这样做可以控制要调用的服务,因此我无法暂停请求,然后同时发送另一个请求进行测试。我还能看到哪些其他选择?

我只想使用单例restTemplate实例进行2次调用并成功。这样做的要求是因为我希望这是可证明的。我可以使用任何内置的RestTemplate实用程序方法来演示这一点吗?

1 个答案:

答案 0 :(得分:1)

首先,没有必要调用实际服务。您可以编写自己的服务并同时调用它,然后暂停它或任何计划。

第二个-在代码库之外测试代码没有意义。 RestTemplate是线程安全的-无需证明。

话虽如此-您可以创建一堆线程,在其中调用对单个restTemplate实例的相同调用。您可以将线程休眠几秒钟,以“确保” restTemplates调用将同时被触发。

将抽象级别提高一个并使用ExecutorService(例如Executors.newFixedThreadPool(N);)并向其提交可调用对象(调用相同的restTemplate实例)。

JDK选项之外还有JMeterconcurrent-junit