我们已经进入了使用微服务(带有postgres的.net核心apis )的旅程,事情进展顺利,但我开始质疑我们的自动化测试策略,并想看看是否有人对我们如何改进有更好的想法/建议。顺便说一下,值得一提的是,我们还测试了所有的单元,但是这篇文章更关注自动化。假设我们有一个api网关和该网关下的两个服务(客户服务和发票服务)。不包括也是自动化的UI,我们的测试团队目前在每个微服务解决方案中创建Specflow项目,并为所有api方法编写测试。这种方法工作良好,我们得到了很好的独立服务测试,但是它有一些问题。
。
我正在考虑的方法是:
databases
。
我的问题是,随着这个项目的发展(计划在未来2-3年内提供20-30个服务),我认为测试将运行得太慢,项目变得如此庞大,以至于无法维护。其他人如何测试他们基于.net的微服务?
发布于 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文档,然后开发人员正在实现它。
它是可以维护的,但是,您确实需要花费大量的精力来更新所有的东西。在这里,文档是非常重要的,这样您就可以知道一切都是如何工作的,使用的是什么配置,以及整个系统是如何与一些东西交互的。
考虑到目前的情况,我们认为这是最好的方式,但是,我想还有其他的方法。
https://stackoverflow.com/questions/72316089
复制相似问题