【问题标题】:Consumer Driven Contract testing (using Pact)- Best Practise消费者驱动的合同测试(使用 Pact)- 最佳实践
【发布时间】:2020-10-22 15:55:53
【问题描述】:

我正在使用 Pactman 和 pact-python 为 CDC 测试做 POC。我能够生成协议文件并使用提供者 Base url 验证协议,而无需注册到协议代理,我正在使用以下方法。它将检查任何失败,这是最佳实践还是我需要使用代理?

import re
result = []
win_cmd = 'pact-verifier --provider-base-url=https://jsonplaceholder.typicode.com --pact-url=./src/Consumer-Provider-pact.json'
process = subprocess.Popen(win_cmd,
shell=False,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE )
for line in process.stdout:
    #print(line)
    result.append(line)

status = re.split('failure|failures',str(result))[-2].split(',')[-1]
if int(status) == 0:
    print('success')

【问题讨论】:

    标签: pact pact-python


    【解决方案1】:

    见https://docs.pact.io/pact_broker/#why-do-i-need-one

    您可以在没有 Pact 代理的情况下完成协议生成和验证步骤,但是,如果没有代理,您将无法实现使用 Pact 进行合约测试的全部好处。您将错过的主要两件事是:

    • 在部署应用程序之前确保合约测试通过的能力
    • 使用合同确保服务之间的向后兼容性
    • 能够在协议更改时触发验证

    Pact Broker 允许您将 Pact 构建到您的发布管道中。但是,如果您刚刚开始,请尝试让管道在没有管道的情况下工作,然后看看您的进展如何。当您准备好尝试更高级的东西时,请开始使用。

    阅读Effective Pact set up guide,了解如何逐步将 Pact 添加到您的 CI/CD 管道中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多