消费者驱动的合同测试(使用协议)-最佳实践

时间:2020-07-02 05:44:14

标签: pact pact-python

我正在使用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')

1 个答案:

答案 0 :(得分:0)

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

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

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

契约代理程序允许您将契约构建到发布管道中。但是,如果您只是开始,请尝试使管道在没有管道的情况下正常工作,然后看看您如何进行。当您准备尝试更高级的东西时,请开始使用。

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