我正在尝试在本地设置pact python项目并面临问题。如果您能在这些问题上为我提供帮助
似乎我们必须从消费者方面使用localhost:1234? 。我们可以使用真实服务代替模拟服务吗?如果我使用localhost:1234,则会生成协定,但是如果我使用真实服务,则会出现错误,所以我的问题是,从消费者方创建协定时我们是否需要始终使用模拟服务((localhost:1234)
第二个问题:我来自质量检查小组,认为协议应由DEV小组而非质量检查小组撰写。我的假设正确吗?如果是,这些协议将如何帮助质量检查小组?
consumer.py
import requests
def callAPI(self,inputString,Url):
respone = requests.get(url+inputString).status_code
test_consumer.py:
pact = Consumer ( 'consumer' ).has_pact_with ( Provider ( 'provider' ) )
pact.start_service ()
atexit.register ( pact.stop_service )
def test_callAPI (self):
url = 'http://localhost:1234'
pact.given ( 'sending user name to Url'
).upon_receiving (
'once i get the respone from service'
).with_request (
'get', '/' ).will_respond_with ( 200)
with pact:
result = callAPI (url)
self.assertEqual ( result['status_code'], 200 )
先谢谢您
答案 0 :(得分:1)
是的,您的代码必须到达模拟服务器,否则我们无法确定您期望的是真的。合同测试使用它来保证它对提供者的要求。
您还可以告诉Pact使用任何端口,这只是默认端口。
开发人员应该编写它们吗?它将如何帮助质量检查小组?
简短的答案是肯定的,它们确实应该由编写代码的人来编写。那是一件坏事?作为质量检查人员,我想这将使您的工作更加轻松,因为质量会自动提高,并且您可以专注于更重要的活动,而不必编写自动化测试。