课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
互联网的不断发展带动了软件编程行业的发展,同时也让软件测试得到了进一步的推广,而今天我们就通过案例分析来了解一下,微服务测试中的一些基础知识都有哪些。
1.桩(进程内或通过网络/远程)。
模拟使用特定于测试的对象替代微服务依赖的对象,该对象验证微服务是否正确地使用了它,而桩使用特定于测试的对象替代它,该对象为微服务提供测试数据。两者的取舍很是相似。
内部开发复杂依赖项的桩可能非常耗时和昂贵。建议选择现成的模拟、模拟器(simulators)或服务虚拟化工具,而不是桩。
2.模拟器(进程内或通过网络/远程)。
团队必须知道如何使用你选择的模拟器。模拟器通常为开发人员或测试人员提供个别的方式与它们进行交互。
组织通常为广泛使用的或稳定的API创建模拟器,你可以快速开始使用这些现成的模拟器。快速、早期的测试缩短了你投入市场的时间,并且使用现成的、稳定的模拟器可以节省成本。它们可以提供大量预定义的错误响应和假设场景,以提升测试覆盖率。
为复杂的依赖关系开发自己的内部模拟器可能非常耗时和昂贵。开发你自己的模拟器可能会引入模拟器与实际依赖之间的差异,并在测试套件中创建错误的信心。
然而,很容易用复杂的模拟器替换复杂的依赖项,并且忘记必须随着依赖项的演变使其保持新。应考虑持续维护的成本。
该技术使你可以模拟网络问题,这对于测试依赖于网络的微服务架构非常重要。
尽可能选择现成的模拟器。只有当你的团队对真正的依赖项和模拟有大量经验时,才能够构建内部模拟器。
3.服务虚拟化(通过网络/远程),也称为API模拟。
你的团队必须知道如何进行服务虚拟化,并且必须选择附带教程和其他材料的工具。
服务虚拟化工具有助于保持虚拟服务的新状态。项目需求的变化速度越快,就越需要防止虚拟服务过时。服务虚拟化工具提供了一些技术和组件,其中之一是“记录和回放”,这是一种使你可以快速为经常变化的API重新创建虚拟服务的技术。请参阅“契约测试”以了解其他降低这种风险的策略。
如果采用其内置的经过充分测试的模式,那么使用现成的服务虚拟化产品可以帮助你更快地进入市场。熟悉现成工具的顾问可以与开发人员和测试人员密切合作,基于许多项目的经验帮助你选择一个微服务的测试方法。
当团队刚开始接触微服务时,使用现成的工具可以节省成本,因为那些供应商可以帮助你避免常见的错误。然而,随着时间的推移,你对商业产品的使用可能会变得昂贵。建议根据ROI预测选择供应商。
使用没有支持合同的开源工具可能会导致你的开发人员和测试人员花费时间来修复bug并维护文档和培训材料。
服务虚拟化有助于降低被测系统的复杂性。这些工具可以帮助你管理你的假设。大多数服务虚拟化工具已经在市场上存在很多年了,它们的设计都考虑到了大型和独体集成系统。选择适合你的微服务架构的开源或商业工具——但是任何虚拟服务都可能过时,因此请参考你的供应商对于缓解策略的建议。
4.内存数据库。
团队必须了解切换为使用内存数据库进行测试的技术风险。
因为这种技术使用一个内存数据库,所以在此变更的速度影响很小。当为了开发或测试的目的做新数据库的供应存在问题时,它可以显著减少项目投入市场的时间。
许多内存数据库都是开源和免费的,这显然有助于降低许可成本。但是内存数据库在极端情况下的表现可能与实际数据库不同。应将对实际数据库执行测试作为测试策略的一部分,以便观察实际数据库和内存数据库之间的差异。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。