背景
我们写完了业务接口,一般都要自验一下,看下通没通。虽然可以写单元测试,但实施起来没有那么简单。我们第一时间想到了Postman,它的出现不就是为了解决API测试问题的吗?我们要做的是把要测试的API录入到Postman,然后写验证返回结果的测试脚本。每次改完代码,都可以手动跑一下所有API,如果返回结果都是我们想要的,那证明这个接口通了。除了手动触发执行以外,我们还可以用做成自动化,做CI持续集成。
实战
先编写好一个API,我这里以Postman提供的示例API为例,请求地址是https://postman-echo.com/get?foo1=bar1&foo2=bar2。点击选项卡
Tests
,在这里写我们的测试脚本。与上一节Pre-request Script
一样,在这里可以写JavaScript代码,不同的是,Tests是在请求结束后执行的。在面板右侧,Postman提供了超全面的示例代码。我们根据该请求的返回结果,简单写两个test,第一个是校验请求返回码是200,第二个是校验args字段。
写完脚本,我们再发送一下请求。发现
Test Results
里面有东西,而且是绿色,证明我们的测试通过。当然我们可以把一些通用一点的test(例如请求码返回200)写在收藏夹或文件夹里,这样里面所有的请求都能被执行到,然后在每个请求里面写跟该请求特定的test(具体业务相关的)。
利用
Runner
功能批量执行请求。点击最顶部的Runner打开Runner面板,选择一个收藏夹或文件夹
(我这里选择了一个收藏夹,里面只有一个刚才写好的请求)。简单说下这里的设置,Environment
是选择环境,Iterations
是执行次数(这里填10次),Delay是每个请求执行的间隔(这里填100ms),Data可以选择一个数据文件,然后在请求中设置占位符{{xxx}},就可以用文件中的数据来替换,一个请求一个数据,这里不作介绍,详情看官方文档。
运行结果
虽然Runner功能已经很方便,但每次写完代码都要手动点一下还是很麻烦。其实postman可以用命令行来运行,我们自己写脚本基本也可以实现自动化测试。另外,postman可以集成到Jenkins和Travis CI上,在每次部署前或者把代码合并到主干分支前都进行一次接口测试,以保证系统服务可用。大家结合项目和团队实际需求来选择,这里不作深入介绍,用到的话在官方文档看下如何配置。