契约测试(四)-- 代码实现篇(下)

背景:网上有不少介绍这种测试方法的概念和原理的文章,但实现的比较少。本文通过自己的方法从零开始搭建工程,实现了一个例子。在此也感谢朋友的帮助,是参考了TA的代码才能入了这道门。

环境:JDK1.8 + Gradle4.6 + Postgres9.6 + pact_broker

步骤:
1. 根据契约测试的原理:来自两个服务之间的“契约”。因此,首先需要做的是,启动Provider端的服务。

1)方法一:作者用的IDEA,这里,在Terminal中执行:gradle bootRun

2)方法二:在Provider->Application.java中,右键Run

3)方法三:在IDEA的Gradle中,双击Provdier->Task->application->bootRun

注:这里可能会有部分读者误解(作者本人也曾经误解),先启动Provider端是不是也是与集成测试一样,需要等待Provider端的API编写好的意思。这里,需要将Provider端提供API看做一个动态的开发过程。因为,在契约测试(二)--代码实现篇(上)中有提供的接口可能只是其中一个,并且随时可能会有所改变。Provider端始终是基于业务在不断地更新。所以,启动Provider仅仅是启动这个工程而已。

启动完毕后,可以通过其他接口工具或者浏览器,输入URL。如,http://localhost:8080/api/v1/test。检查是否有接口返回。这里8080为默认端口。

2.在Consumer端执行Pact的生成。

1)方法一:在Terminal中执行:gradle clean test

2)方法二:双击Consumer->Gradle->Tasks->build->Clean;然后双击Consumer->Gradle->Tasks->verification->test

此时,在契约测试(三)--代码实现篇(中)的配置的pact目录中生成Consumer-Provider.json文件。

3.一个比较Low的方法就是,将这个.json文件copy到Provider工程中。当然,这里,因为都是我自己的工程,所以Provider和Consumer是在同一工程下的。那只要目录位置正确,Provider就可以访问到的。另一个方法是通过pact_broker来存放契约文件,这个我们先放一放,继续下面的内容。Consumer端的工作已经完成了,下面就交给Provider了。

4.Provider端进行测试。

1)方法一:在Terminal中执行:gradle pactVerify

2)方法二:双击Provider->Gradle->pact->pactVerify。

总结:整个契约测试的大体过程就是这样了。下一篇会介绍这其中的大坑、小坑。

 

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值