当前位置: 首页 > 知识库问答 >
问题:

使用pact-python在provider端验证pact用于POST API

吴鸿禧
2023-03-14

我正在尝试在一个POST API(微服务)上应用契约测试。我已经编写了消费者端的测试用例,并且生成了协议,现在我正在尝试使用pact-python在提供者端验证协议。但我看不出有任何选项可以为API的POST调用输入输入体负载。到目前为止我有这个

共有1个答案

符畅
2023-03-14

您应该已经创建了消费者测试。使用者测试定义了提供者应该实现的交互。当您编写使用者测试时,Pact站在(模拟)提供者中。使用者和模拟之间的所有交互都被记录到一个协议文件中。

当您运行提供程序测试时,Pact将代表使用者--因此它将读取Pact文件的内容,并针对您正在运行的提供程序发出其中定义的请求。

因此,为了回答您的问题,您不需要“为对API的POST调用输入输入体有效载荷”--Pact将为您发出请求(假设它首先是在消费者测试中定义的)。

在此阅读更多内容:

  • https://docs.pact.io/how-pact-works
  • https://docs.pact.io/getting_started/how_pact_works
  • https://docs.pact.io/5-minute-gett-start-guide
 类似资料:
  • 使用pact-jvm-consumer-junit主体可以具有 从而生成合同文件: 使用pact-net或pact-provider-verifier验证合同显示以下消息:warn:忽略路径$['body']['x']的不受支持的匹配规则{“match”=>“integer”} 当前的pact-provider-verifier是否能够读取包含“match”:“integer”的契约。pact-p

  • 使用者是基于Java的API,提供者是基于Python的API。 手工将协议规范版本更改为2.0.0也不能按要求工作。 谁能给我提点建议吗?

  • 我正在使用Pact进行消费者驱动的合同测试。在我的usecase中,我的消费者“some-market-service-consumer”正在使用提供者“market-service”。在某个市场服务消费者处“产生”的合同如下所示: 在provider-site上,我正在使用Pact-Provider-Verifier-Docker'。以下是我的测试结果: 看起来,好像测试工作良好-“电话”被测试

  • pact-jvm可以将结果发布回pact代理。但是,我似乎找不到使用标记发布的选项或方法,就像pact Broker的例子:

  • 我正在使用Pact JS进行合同测试。我已经编写了提供者和消费者部分,并将它们上传到协议经纪人。合同URL指向我的QA环境。我想创建一个每天运行的Slack webhook,并验证合同是否仍然通过。有没有办法让我按需运行契约验证,而不上传新合同?如果我只是想检查一下是否没有变化,为什么我需要更改合同?这似乎是一个每个人都应该使用的基本功能,但为了我的爱,我无法在文档中找到它

  • 我能够得到一个Spring Boot项目的测试运行,但在@state测试上总是得到404。 奇怪的是,我可以通过打印出请求信息和授权头来判断它到达了正确的endpoint。我放入了一个debug语句,并验证了我可以使用与测试相同的凭据和endpoint进行调用。然而,测试总是失败的404。是不是我的设置中缺少了什么?