首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何强调测试反应性Web?

如何强调测试反应性Web?
EN

Stack Overflow用户
提问于 2021-04-23 06:10:58
回答 2查看 392关注 0票数 0

我们已经将一个微服务从每个线程模型(同步)迁移/重构到了反应性(异步)。开发已经完成,并开始对反应性服务进行压力测试。我们正在寻找有关如何为反应性APIs执行活动的帮助。

我们做了什么?

我们的服务对外部服务进行HTTP调用。在我们的压力测试中,我们嘲笑了外部服务电话。我们没有进行网络调用,而是引入了使用Thread.sleep()方法的延迟,并在服务组件中返回模拟响应(在该组件中,我们对外部服务进行实际的HTTP调用)。

使用这种方法,我们正在观察我们的反应性服务正在使崩溃的,即使是非常小的请求量。只是为了添加,我们在测试其他同步服务(每个线程模型的请求)时采用了类似的方法。

接下来我们可以试试什么?

EN

回答 2

Stack Overflow用户

发布于 2021-04-23 09:15:15

为了使基础设施更接近活动环境,我建议运行单独的模拟服务器,最好是在单独的机器上运行,这样它就不会从您的服务中窃取资源。

您可以轻松地使用威瑞克 --参见以独立方式运行页面。

当您作为代理运行wiremock时,您可以记录和回放来自服务的实际请求。

为了使这个模拟更真实,您可以使用增加模拟响应的延迟 -它将模拟外部服务的“处理时间”。

票数 1
EN

Stack Overflow用户

发布于 2021-04-23 06:50:13

反应性服务有一个非常小的线程池,可以在100%的情况下进行优化。

如果引入像Thread.sleep()这样的阻塞功能,基本上就是删除了这种功能。什么是反应,“反应”是它的能力,切换执行线程,如果有什么东西是阻塞的。

Thread.sleep()将线程保存在它所在的位置,它不能切换到其他的事情上,基本上破坏了它的整个功能。

您不应该在反应性应用程序中使用Thread.sleep(),除非您正在使用OnSubscribe并将每个调用放在一个单独的调度器上,这反过来又使您的反应性应用程序“非反应性”,而是倒退到默认的标准servlet应用程序行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67224785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档