备注:serverspec测试套件旨在在单台计算机(或docker容器)上运行。换句话说,您不应尝试发出单个rspec命令,该命令将针对多台计算机或容器收集和运行测试。您需要为每个命令发出一个rspec命令。
所以我可以对每个服务器进行测试,这在某些情况下非常有用。但是问题如下:我的微服务体系结构具有自动发现服务,因此在查询它后便知道一些服务。是否有任何项目可以表达这一点?我知道我可以使用ruby(如果选择testinfra或其他工具,也可以使用python)解决问题
与Consul与serverspec或类似功能集成的东西会很棒,在2014年人们一直在寻找它,有人知道吗解决这个问题的任何项目?
#1 楼
如果没有任何东西可以轻松模拟Consul,您是否考虑过将Consul服务与其他微服务一起拆分? Consul可以在Docker中运行,因此,如果您使用docker-compose,并且您的应用可以配置为指向不同的Consul端点,那么这应该非常简单。测试所需的所有基础架构/微服务,您将能够使用熟悉的任何工具来测试微服务,例如硒。评论
OP在谈论的是VM,而不是docker。
–软件工程师
7小时前
#2 楼
我喜欢SaltStack,因为如果要在每个节点的状态下,配置管理都提供节点测试,并且结果在作业状态中合并在一起,并在返回者中充分考虑。SaltStack状态还允许您生成有关成功或失败的事件,它允许节点通告(挖掘)任意端点数据(即正在侦听哪个ip:port),这些数据可用于其他节点的配置状态。
两者的结合使您可以从领事那里得到想要的东西。
评论
在服务可用性方面,它与领事相比如何?如果从属服务的一个节点在盐作业返回3小时后陷入OOM,您将如何从服务群集中删除该节点并避免部署作业对其进行调用?我认为最后一行绝对超出范围。
–滕西拜
17-10-26在9:07
#3 楼
在本地,您可以针对种类(docker中的kubernetes)集群或docker中很小的k3s集群k3d进行测试。只需旋转集群,在其中安装微服务捆绑并运行测试即可。
https://github.com/AbsaOSS/k3d-action演示了如何旋转此类集群。
评论
OP在谈论的是VM,甚至不是docker,更不用说K8S了。
–软件工程师
7小时前
评论
我认为您在单个实例(无论外部需求如何)上运行时误解了,因为在同一运行中测试多个实例。您的微服务如何托管? Docker容器?
我的微服务在虚拟机中运行,其中一些在物理机中运行(我们做遗传学,因此序列发生器旁边有一些本地集群)
如果有人有时间使用本文,我发现本文很有帮助。 toptal.com/nodejs/nodejs-guide-integration-tests
请说明您要寻找的测试类型,有多种方法可以使用ServerSpec或KitchenCI来解决服务器配置的系统/集成测试,也可以使用每个微服务都应实现的简单HTTP请求来测试微服务是否已启动并正在运行,和本质上不同的端到端应用程序测试可以是使用例如BDD自动化测试框架或Selenium的白盒/黑盒。