在软件开发过程中,接口自动化测试是确保应用程序质量和稳定性的重要环节。为了实现持续集成和持续部署(CI/CD),我们可以将Yapi和Jenkins两个工具进行集成,从而实现自动化测试流程和提高开发效率。
一、Yapi 简介
Yapi是一个强大的API管理平台,它支持接口的定义、维护、测试以及文档自动生成。它提供了测试用例的编写和自动化测试的执行,能够生成多种类型的Mock数据,使前后端能够并行开发。
二、Jenkins 简介
Jenkins则是一个开源的自动化服务器,它可以用于自动执行各种任务,包括构建、测试和部署应用程序,例如自动化测试、打包以及部署同时也易于安装、配置,并拥有大量的插件,可扩展其功能。
三、将Yapi与Jenkins集成的意义
1、自动化接口测试:通过Yapi与Jenkins集成,可以在每次代码构建过程中自动执行接口测试。这能够帮助团队及时发现接口问题和异常,提高软件质量和稳定性。
2、持续集成与持续部署:通过集成Yapi和Jenkins,可以实现持续集成(CI)和持续部署(CD)的目标。每当满足触发条件时,Jenkins会自动拉取代码、构建项目、执行接口测试等操作,从而加速开发流程并保证代码的可靠性。
3、接口文档管理与共享:Yapi作为一款可视化的接口管理工具,可以方便地管理和共享接口文档。与Jenkins集成后,团队成员可以在Jenkins界面直接查看和访问接口文档,减少了团队成员之间的沟通成本。
4、Mock数据生成:Yapi支持生成接口的Mock数据,帮助前端和后端开发人员在接口未完成的情况下进行开发和调试。通过与Jenkins集成,可以在代码构建过程中自动生成Mock数据,提高开发效率。
5、测试报告和监控:集成Yapi和Jenkins后,可以从Jenkins的监控界面查看每次构建的状态和结果。同时,可以配置邮件通知或集成第三方工具,及时获取接口测试报告和异常信息,便于团队分析和修复问题。
四、集成步骤
(一)Yapi的准备工作
在Yapi中创建好项目和接口,并确保接口的正确性和完整性。
设置Yapi项目,确保能够通过命令行触发测试用例的执行。
Yapi维护好测试集合后,通过配置jenkins任务可定时执行接口自动化测试。
具体步骤如下:
1、进入Yapi系统->左侧分组列表选择某个分组->右侧项目列表选择某个具体项目->接口列表显示swagger导入的接口,测试集合显示已编写的接口测试用例。
左侧界面选择某个测试集合,右侧界面点击“服务端测试”。
![](https://tech.qimao.com/content/images/2023/12/image-3.png)
2、选择测试环境:
编辑请求参数(Mock参数、变量参数)、编写断言脚本
3、调整测试集内接口执行顺序
4、运行自动化测试
在测试列表可以看到每个测试用例的key,开始测试、报告等功能
点击开始测试会安照case定义的参数从上往下一个一个进行测试,可以拖动调整顺序
测试完成之后,点击报告查看该次请求的结果
(二)Jenkins的配置
1、安装并配置Jenkins。
在Jenkins中安装必要的插件,例如Git、Pipeline和任何与Yapi交互所需的插件。
配置Jenkins Job,以便在特定事件(如代码提交到仓库)时触发。
2、编写Jenkins Pipeline脚本
使用Groovy语言编写Jenkinsfile
在适当的阶段添加Shell脚本或Pipeline步骤来运行Yapi测试。
测试与调试
运行Pipeline,监控执行情况,确保测试按预期触发。
调试任何可能出现的问题,例如网络问题、权限问题或脚本错误。
3、结果反馈
设置Jenkins Job。
增加构建项目->Execute shell
jenkins设置定时任务:
构建触发器->Bulid periodically
测试结果反馈:
配置企业邮箱地址,每次测试结束后发送邮件到制定邮箱中。
五、纵横接口测试实践
(一)在Yapi上建立接口集合
1、在Yapi上添加API1接口测试集合
![](https://tech.qimao.com/content/images/2023/12/image-4.png)
2、导入测试接口后,在测试集合右面点击“开始测试”
API1接口运行完成后会产生测试报告
![](https://tech.qimao.com/content/images/2023/12/image-5.png)
点击每一个接口后的测试报告,可以看见request、response和验证结果
![](https://tech.qimao.com/content/images/2023/12/image-6.png)
![](https://tech.qimao.com/content/images/2023/12/image-7.png)
![](https://tech.qimao.com/content/images/2023/12/image-8.png)
3、点击服务端测试,选择测试环境:
![](https://tech.qimao.com/content/images/2023/12/image-9.png)
复制此网址:
id是测试用例集合的id
mode是测试报告的格式
emai指是否发送邮件
download为false时直接展示测试报告,为true时会以文件形式下载下来
将URL地址复制到浏览器中直接执行,便可生成测试报告。
(二)Jenkins新建项目
1、在Jenkins上新建一个项目
![](https://tech.qimao.com/content/images/2023/12/image-10.png)
2、保存成功
![](https://tech.qimao.com/content/images/2023/12/image-11.png)
3、设置定时执行
Build Triggers ——勾选 build periodically
可设置多个时间,取并集。
![](https://tech.qimao.com/content/images/2023/12/image-12.png)
H 9 * * * // 代表每天9点运行
H 17 * * * //代表每周一到周五,17点运行
4、执行命令
Build Steps -> 增加构建步骤
![](https://tech.qimao.com/content/images/2023/12/image-13.png)
![](https://tech.qimao.com/content/images/2023/12/image-14.png)
![](https://tech.qimao.com/content/images/2023/12/image-15.png)
为了报告不覆盖和可识别性,每次构建号作为报告名后缀。
curl -o order_auto$BULLD_NUMBER.html
加上在yapi上复制的地址作为后缀
5、case运行结果校验
Jenkins构建本身的结果,并不包含case运行结果。所以不论我们的case执行情况如何,只要本次构建成功,就会判断为成功,所以我们要从测试报告中,读取是否有关键字“未通过”。如果有,则本轮case运行失败。
6、结果通知
获取一个机器人地址后,在Jenkins上填写如下代码,结果会自动发送到邮箱
![](https://tech.qimao.com/content/images/2023/12/image-17.png)
7、美化报告
安装插件Groocy
填写代码:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
![](https://tech.qimao.com/content/images/2023/12/image-18.png)
最后,要定期审查和更新测试用例,以匹配API的最新变化。
8、返回到项目首页,执行
六、结论
利用Jenkins和Yapi的日志和报告功能,进行详尽的测试结果分析。通过Yapi与Jenkins集成可以提升团队的开发效率、确保API的稳定性和一致性。自动化接口测试、持续集成与部署以及接口文档管理的共享等功能,能够极大地简化开发流程,并帮助团队快速交付高质量的软件产品。