【发布时间】:2020-04-22 19:35:31
【问题描述】:
我尝试使用 Karate 设置集成/API 测试套件,并考虑使用 Karate Netty 来模拟所需的服务。对于测试设置,被测系统 A(一个 Spring Boot 应用程序)完全启动。然后空手道测试由针对该实例运行的 Maven 测试执行。
服务 A 依赖于多个其他服务,这些服务需要被模拟出来以进行测试。为此,我的想法是将一个正在运行的 Karate Netty 独立实例配置为 HTTP 代理(由服务 A 的 JVM args 完成)。
现在我的想法是创建一个测试功能文件:xyz-test.feature
此文件所需的模拟在关联的模拟功能文件中定义:xyz-mock.feature
(测试场景相当复杂,外部服务的响应可能会有所不同)
这意味着对于完整的测试运行,我需要加载几个模拟功能文件。所以:
多个模拟特征文件的匹配策略是什么?可以这么说,哪种情况会胜出。
有什么方法可以确保相关的测试文件使用了正确的模拟文件?
(显然,我可以重新配置正在运行的独立实例并建议它接下来使用 xyz-mock.feature。
但这会阻止我对我的 API 测试使用并行执行,对吗?)
我已经考虑过重用Correlation-Id,我可以为每个测试发送它,然后在模拟文件中匹配它(它也发送到所有调用的服务)。但是:
- 有没有办法为每个模拟文件定义一个全局匹配器?
【问题讨论】:
标签: karate