起因
- 工作中遇到期望做接口自动化,之前公司跟着团队做过python+request搭建的自动化框架,逐步完善框架本身,与接口测试用例本身,都是需要代码编写能力较强,能保证框架本身没问题,也要保证接口用例本身没问题。
- 领导期望接口自动化能做到闭环,从代码产生开始到接口测试结果结束,都可以圈入一个闭环。
- 没有足够的代码能力,去维护一个全新的框架或工具,只能在现有工具的功能上做相应的优化与耦合。
工具准备与环境前提
- 当前公司现有工具流程已集成:
- 代码gitlab管理;
- 后端服务集成rancher管理;
- 客户端代码通过jenkins构建打包;
- 接口文档完善,通过IDEA插件自动导入到yapi管理,yapi可做接口自动化,接口变更时,测试集合也会自动更新;
- 团队使用飞书,创建了群组后有群组机器人概念,可用作接口测试结果通知。
- 以上平台和工具有相应权限的账号
解决的问题
- yapi接口测试:参考官方文档:插件安装、登录后配置全局token、服务端测试、断言;
- 飞书机器人:参考官方文档:创建机器人、postman组装调用机器人模拟发消息的post请求接口、从postman获得相应的curl;
- Jenkins:配置构建执行curl、拿到自己账号的token;
- gitlab:web hook 功能,配置触发条件下,执行某post类型的请求接口;yapi服务端测试的URL是get类型,不能直接放到web hook里;飞书机器人的接口是post,但是web hook里无法添加传参,所以也无法直接添加进去web hook;Jenkins某项目配置构建,拿到账号A:token后,可组装post请求的接口,可直接放到web hook,模拟账号A手动点了立即构建的操作。
- 综上,可实现在gitlab代码有变动时,触发jenkins对应项目自动构建,构建通过shell方式,执行相应脚本,完成请求yapi接口测试-服务端测试的curl,并请求飞书机器人发送相关信息到群组的curl
待解决的问题
- yapi新增测试集合时,自动同步到Jenkins构建执行的脚本里
- yapi测试集合里编写断言时,部分判断条件无法满足等。
正文
参考资料
飞书官方文档:机器人操作使用
yapi官方文档:接口自动化测试
yapi配置token:
先登录获取token,设置传参
storage的使用
gitlab配置web hook :Gitlab 利用 Webhook+jenkins 实现自动构建与部署
jenkins配置构建执行:Yapi在Jenkins中配置服务端测试