问题标签 [pact-broker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
107 浏览

unit-testing - 如何仅将 pact-jvm 提供程序与 json 文件集成

我想使用提供的 pact json 文件来测试我的 spring-boot Rest API。事情是互联网上的所有资源都指向使用契约经纪人进行验证。我会到达那里,但目前,为此开发 POC 非常困难。

无论 pom 配置如何,它都会尝试连接到 localhost。

这是我的 pom.xml

请注意,json 实际位于提供的路径上/Usr/Pact-JVM-Example/pacts/。另外,我故意删除pactBrokerUrl,因为我不打算连接到远程协议 json。

/Usr/Pact-JVM-Example/pacts/最后,我希望测试在运行时基于 json 文件通过/失败./mvnw pact:verify

0 投票
0 回答
44 浏览

pact-broker - 上传到契约经纪人的契约文件缺少某些细节

我有一个用 Junit5 编写的契约消费者测试。

它会生成一个像这样的协议文件

但是当使用我推送到协议代理时,我在协议代理中mvn pact:publish只看到了其中的一部分。

我在 pactbroker 上看到的 pact 文件中的 mySettings 数组完全为空。这里可能是什么问题?

0 投票
0 回答
33 浏览

pact-broker - swagger-mock-validator 和 pactflow.io

我试图在使用 swagger-mock-validator 工具时指定一个托管在 pactflow.io 上的提供程序,但我无法进行身份验证,因为该工具只有 user:password 作为身份验证,而 pactflow.io 使用 API 令牌。知道我怎样才能完成这项工作吗?

0 投票
0 回答
85 浏览

pact - PACT 节点 - ConsumerVersionSelector - 参与者和版本未兑现

  • 操作系统:Mac OSX 10.15.7_
  • 契约:9.15.5
  • 契约节点版本:10.12.2
  • 节点版本:12.13.0

我确定我做错了什么,但我不知道如何让它工作。

我有 2 个客户 (ClientAClientB) 与 provider 有合同(每个都标记为“master”)发布到协议代理(版本 2.79.1)DemoService

契约经纪人矩阵(简化):

消费者 版本 标签 提供者 版本 已验证
客户A 1.0.1-2726fe4 掌握 - 演示服务 1.0.0-a6b2678
客户A 1.0.0-12ab763 掌握 - 演示服务 1.0.0-a6b2678
客户B 1.0.1-6fe3cb5 掌握 - 演示服务 1.0.0-a6b2678
客户B 1.0.0-ec71b62 掌握 - 演示服务 1.0.0-a6b2678

我尝试设置一个来验证与提供商ConsumerVersionSelector签订的合同的特定版本。ClientA

它看起来像versionpacticipant没有兑现。两个消费者的合同都是从契约经纪人那里提取的。日志有以下语句:

谢谢你的评论。

0 投票
0 回答
33 浏览

pact-broker - 如何为自托管的契约代理创建 webhook?

我已经成功设置了一个契约代理,但我不确定应该在此处添加什么以将 webhook 集成到现有的 Gitlab CI 中?

非常感谢任何有关如何设置它的想法。谢谢!

0 投票
1 回答
61 浏览

webhooks - 即使合同没有更改,也会触发合同内容更改

我已经使用 docker image dius/pact-broker:2.40.0-1 设置了协议代理,我的参与者被标记为“master”并由提交 SHA 进行版本控制。在代理上建立 Webhook '合同内容已更改'。即使没有更改协议,该事件也会在每个 jenkins 构建时触发。消费者詹金斯文件:

消费者 Maven 插件:

没有添加标签时不会发生。我该如何解决?先感谢您

0 投票
1 回答
205 浏览

postgresql - 如何将 Pact Broker 连接到 PostgreSQL 的本地或云实例?

我正在努力让 Pact Broker 在 docker 容器中运行以连接到我在 Windows 上安装的本地 PostgreSQL。

这就是我的 docker run 命令的样子...

返回以下错误...

这是我在 pgAdmin 4 中的数据库和用户

在此处输入图像描述

这是我用来测试连接的命令

它返回以下...

我也尝试过运行以下返回相同错误的命令

我的postgres.conf文件包含listen_addresses = '*'并且我pg_hba.conf的包含以下内容

我在使用 Azure Database for PostgreSQL 托管的实例时遇到了类似问题

我的连接字符串如下所示...

我试图通过本地协议代理连接到...

它返回完全相同的错误。

这里可能有什么问题?

在此处输入图像描述

0 投票
1 回答
72 浏览

versioning - 协议的向后兼容性

如何针对所有不同的消费者版本验证协议。每当我尝试测试协议时,它只会验证最新的协议。有没有办法验证旧的消费者版本。

表视图

我还尝试了 ConsumerVersionSelector 选项。但是生产版本似乎没有经过验证

任何帮助,将不胜感激!

0 投票
2 回答
127 浏览

node.js - pact.io:为提供者测试选择特定端点

我们正在运行一个微服务架构,并希望在我们的项目中设置合约测试。我们的消费者不知道哪个请求由哪个微服务处理。我们希望我们的微服务从他们应该参与的契约中选择交互。

例子:

  • 消费者 A 编写了一个正在测试的测试POST /users
  • POST /users消费者 A使用不同的参数编写第二个测试。
  • 消费者 A 为GET /users/$userId.
  • 消费者 A 为GET /articles/$articleId.
  • 微服务 A 处理所有POST /users请求。
  • 微服务 B 处理所有GET /users/$userId请求。
  • 微服务 C 处理所有GET /articles/$articleId请求。
  • 所有的消费者测试在他们的交互中只有一个请求。

我们希望将提供者测试放在微服务旁边。每个微服务应该只测试它能够处理的端点。在这种情况下,微服务 A 将测试所有POST /users合约。微服务 B 会选择GET /users/$userId合约等等。

有没有办法使用 pactflow.io 和 nodejs 绑定 pact ?

编辑:添加了架构图: 架构图

0 投票
0 回答
67 浏览

pact - 使用 pact maven 为消费者运行特定的提供者测试

我有一个网络挂钩 Jenkins 作业,当消费者发布协议时会触发该作业。但现在它为所有消费者运行所有提供者测试。当消费者发布协议时,我想运行我为消费者编写的特定提供者测试。我知道过滤器,即 -Dpact.filter.consumers 和 -Dpact.filter.pacturl 但即使我在运行以执行测试的 mvn 命令中添加它们,它仍然运行所有提供程序测试。任何帮助,将不胜感激。

我对消费者的所有提供者测试都有类名,如 *ProviderTest。

Maven命令: