先说说为什么叫做 “探索之路”,在 yapi 的官方使用文档中有这么一段话:
就这么简单的一句话,未给出具体的集成方法。
所以就有了一番探索之路。
先说说如何在 yapi 上进行接口自动化测试,比较简单,官方文档中有。在准备好测试用例集合后,点击右上角的 “服务端测试”,会生成一串 url,
url 的格式如:https://<接口地址>/api/open/run_auto_test?id=146&token=4893f9f55d13af57f545acc2f2ee223fe99e84d9704134926174c55505d65615&mode=html&email=false&download=true
id 是你的测试用例集合的 id,mode、email、download 这 3 项是点生成前选择的,mode 是测试报告的格式,email 指是否发送邮件,download 为 false 时直接展示测试报告,为 true 时会以文件形式下载下来。
把这传 url 放在浏览器中直接执行,便可生成测试报告,如果选择输出格式为 HTML,测试报告如下图的样子:
注意:要在测试用例集合中开启结果校验,这样才有意义,就是加上 assert 断言,这个在官方文档有详细描述,不再啰嗦。
本地自动化跑通后,就可开始集成 jenkins 啦!jenkins 的基本使用方法不再赘述。
在这之前需要确认:yapi 的服务器和你的接口地址是通的。可以在部署 yapi 的服务器上先 ping 下请求的域名或者 ip。
在 jenkins 中新建 job,因为 yapi 生成的是一串 url,能想到的在 jenkins 中执行的 shell 命令就是用 curl,curl 请求那串 url 并且保存为 html 格式的测试报告。
在 “ADD BUILD STEP” 中选择 “执行 shell”,执行如下命令:
curl -o XXXReport.html "yapi 服务端测试生成的那串 url"
然后就可以构建啦,如果配置都正确的话,会比较幸运的成功啦,生成了 html 的报告。但是你会发现这个 html 并不美观,且不直观。
搜了下解决方法,在 job 的 Post-build Actions 项选择 “groovy postbuild”,然后加上一句脚本:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
再次构建,你会发现测试报告和在浏览器中直接执行生成的报告是一样的格式。 开心。
如果在 jenkins 执行失败,可以先在 yapi 服务上直接执行 curl 命令,如果能成功,就说明 jenkins 的 job 配置有问题。
到这里的时候,我还是挺开心的,挺有成就感的,哈哈哈
不过,又面临了一个问题,怎么判断接口有失败呢。因为需要监控接口运行情况,失败时邮件通知。
自己一顿搜索,能想到的办法就是从 html 的测试报告中获取是否有 “全部通过” 的字样来判断,在 jenkins job 的 “ADD BUILD STEP” 中再加一句 shell,我用的是 grep -c 来判定测试报告中关键字。grep 的用法就不再赘述。大家有什么别的好的判定方法,也可在帖子下面回复。
jenkins 发送失败邮件也不再赘述,网上都可以查到。
到此,yapi 与 jenkins 集成就完成啦!