首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.Net核心微业务测试自动化

.Net核心微业务测试自动化
EN

Stack Overflow用户
提问于 2022-05-20 08:50:08
回答 1查看 66关注 0票数 0

我们已经进入了使用微服务(带有postgres的.net核心apis )的旅程,事情进展顺利,但我开始质疑我们的自动化测试策略,并想看看是否有人对我们如何改进有更好的想法/建议。顺便说一下,值得一提的是,我们还测试了所有的单元,但是这篇文章更关注自动化。假设我们有一个api网关和该网关下的两个服务(客户服务和发票服务)。不包括也是自动化的UI,我们的测试团队目前在每个微服务解决方案中创建Specflow项目,并为所有api方法编写测试。这种方法工作良好,我们得到了很好的独立服务测试,但是它有一些问题。

  1. 做了很多工作。在许多情况下,我们的测试人员编写的代码比developers
  2. We're双测试要多得多,因为我们正在测试网关--这是很多情况下,只是将请求转发给服务,并返回响应
  3. ,因为测试在每个服务中都是作为构建管道的一部分运行的,并且常常会导致有趣的场景,在构建(罕见但正在发生)
  4. 时,每个服务都有自己的数据存储,而当一些测试调用其他服务时,我希望在任何测试运行
  5. 之前先从干净的数据集开始。为每个测试人员提供2名开发人员的比率,没有增加更多测试人员的范围。编写自动化测试是我们过程中最大的瓶颈,因为需要编写大量的代码(以及修复数据等)

我正在考虑的方法是:

databases

  • Containerize
  1. 创建一个测试套件,该套件独立于逐个测试所有服务的项目,以便在还原所有服务
  2. 之后依次运行一个空白环境,运行测试并关闭
  3. ,将其添加到每个服务的构建管道中,这样我们就可以知道什么时候会出现早期的

我的问题是,随着这个项目的发展(计划在未来2-3年内提供20-30个服务),我认为测试将运行得太慢,项目变得如此庞大,以至于无法维护。其他人如何测试他们基于.net的微服务?

EN

回答 1

Stack Overflow用户

发布于 2022-05-20 14:46:06

那么,让我告诉你们我们正在做的15种微型服务,从Apis到工人服务,再到一个网关Api。

在每个Microservice解决方案中,我们都有单元测试。由于每个微服务基本上是一个crud服务,几乎99%的内容,我们正在与数据库互动,甚至在测试。因此,对于每个测试套件(xUnit),我们正在旋转新的数据库(运行迁移等)。在测试服务器(MSSQL,Redis)上为RabbitMQ创建拓扑,在外部服务上创建所有配置。然后测试运行,对于每个方法我们都这样做。我们创造一切,然后放弃一切。

这就是单元测试。然后对Apis进行隔离的集成测试。这意味着,对于每个Api,我们都有一个IntegrationTest项目,它将使用我们为每个Api创建的ApiClient来验证它们是否都正常工作。

这一切都包括微观服务。

然后,我们有了Front Api (网关Api,有人喜欢这样称呼它),它实际上是与微服务通信的。对于这一种,我们有两种类型的测试,它们都是集成的,但是,一种是用xUnit编写的,另一种是用Specflow编写的。

对于集成测试,开发人员编写这些测试是为了测试不同的场景。

对于specflow,基本上,我们有成千上万种场景,业务人员正在编写specflow文档,然后开发人员正在实现它。

它是可以维护的,但是,您确实需要花费大量的精力来更新所有的东西。在这里,文档是非常重要的,这样您就可以知道一切都是如何工作的,使用的是什么配置,以及整个系统是如何与一些东西交互的。

考虑到目前的情况,我们认为这是最好的方式,但是,我想还有其他的方法。

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

https://stackoverflow.com/questions/72316089

复制
相关文章

相似问题

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