使用者是基于Java的API,提供者是基于Python的API。
"body": {
"$.num_issues": {
"matchers": [
{
"match": "integer"
}
],
"combine": "AND"
},
"$.error": {
"matchers": [
{
"match": "type"
}
],
"combine": "AND"
},
"$.response[0].issue_id": {
"matchers": [
{
"match": "type"
}
],
"combine": "AND"
},
"$.response[0].msg": {
"matchers": [
{
"match": "type"
}
],
"combine": "AND"
},
"$.response[0].similar_fix_found": {
"matchers": [
{
"match": "type"
}
],
"combine": "AND"
},
"$.response[1].issue_id": {
"matchers": [
{
"match": "type"
}
],
"combine": "AND"
},
"$.response[1].msg": {
"matchers": [
{
"match": "type"
}
],
"combine": "AND"
},
"$.response[1].similar_fix_found": {
"matchers": [
{
"match": "type"
}
],
"combine": "AND"
}
}
}
}
}
],
"metadata": {
"pact-specification": {
"version": "3.0.0"
}
}
手工将协议规范版本更改为2.0.0也不能按要求工作。
谁能给我提点建议吗?
您需要在Java消费者测试中显式设置规范版本。
例如,在JUnit测试中,您可以这样做:
@PactTestFor(providerName = "pactflow-example-provider-java-kafka", providerType = ProviderType.ASYNCH, pactVersion = PactSpecVersion.V2)
协议文件的匹配器和结构根据版本不同而不同,所以仅仅在协议之后更改版本是没有帮助的。
我使用的是PACT JVM https://github.com/dius/pact-jvm/tree/master/provider/pact-jvm-provider-junit我不知道为什么我的联系人中的匹配规则被忽略了。我的HTTP测试 还有我的合同档案 并在运行后显示错误 请帮忙把我的观点说错。 谢谢,
我正在尝试在一个POST API(微服务)上应用契约测试。我已经编写了消费者端的测试用例,并且生成了协议,现在我正在尝试使用pact-python在提供者端验证协议。但我看不出有任何选项可以为API的POST调用输入输入体负载。到目前为止我有这个
我使用JUnit生成协议和Pacts maven插件将协议发布到协议代理中。我正在使用下面的插件配置 当Consumenr协议在broker中上传时,我只能看到2.0版的consumer协议的单个条目。Eirlier我已经上传了1.0版本Eirlier,它没有出现在UI中。有没有办法在HAL浏览器中看到多个版本的同一提供者协议,并通过Https get请求获得不同版本的协议?目前,我只得到最新的消
使用pact-jvm-consumer-junit主体可以具有 从而生成合同文件: 使用pact-net或pact-provider-verifier验证合同显示以下消息:warn:忽略路径$['body']['x']的不受支持的匹配规则{“match”=>“integer”} 当前的pact-provider-verifier是否能够读取包含“match”:“integer”的契约。pact-p
我正在使用Pact进行消费者驱动的合同测试。在我的usecase中,我的消费者“some-market-service-consumer”正在使用提供者“market-service”。在某个市场服务消费者处“产生”的合同如下所示: 在provider-site上,我正在使用Pact-Provider-Verifier-Docker'。以下是我的测试结果: 看起来,好像测试工作良好-“电话”被测试
pact-jvm可以将结果发布回pact代理。但是,我似乎找不到使用标记发布的选项或方法,就像pact Broker的例子: