Yapi与Jenkins集成实现接口自动化测试的持续集成和持续部署

在软件开发过程中,接口自动化测试是确保应用程序质量和稳定性的重要环节。为了实现持续集成和持续部署(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导入的接口,测试集合显示已编写的接口测试用例。

左侧界面选择某个测试集合,右侧界面点击“服务端测试”。

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接口测试集合

2、导入测试接口后,在测试集合右面点击“开始测试”

API1接口运行完成后会产生测试报告

点击每一个接口后的测试报告,可以看见request、response和验证结果

3、点击服务端测试,选择测试环境:

复制此网址:

URL地址:http://api2.****.cn/api/open/run_auto_test?id=204&token=2d1d3ad9d580034b3e9e98573051d9e88378f311ce2d0877bd574b853d763660&env_181=local&mode=html&email=false&download=false

id是测试用例集合的id

mode是测试报告的格式

emai指是否发送邮件

download为false时直接展示测试报告,为true时会以文件形式下载下来

将URL地址复制到浏览器中直接执行,便可生成测试报告。

(二)Jenkins新建项目

1、在Jenkins上新建一个项目

2、保存成功

3、设置定时执行

Build Triggers ——勾选 build periodically

可设置多个时间,取并集。

H 9 * * *  // 代表每天9点运行

H 17 * * * //代表每周一到周五,17点运行

4、执行命令

Build Steps -> 增加构建步骤

为了报告不覆盖和可识别性,每次构建号作为报告名后缀。

curl -o order_auto$BULLD_NUMBER.html

加上在yapi上复制的地址作为后缀

5、case运行结果校验

Jenkins构建本身的结果,并不包含case运行结果。所以不论我们的case执行情况如何,只要本次构建成功,就会判断为成功,所以我们要从测试报告中,读取是否有关键字“未通过”。如果有,则本轮case运行失败。

6、结果通知

获取一个机器人地址后,在Jenkins上填写如下代码,结果会自动发送到邮箱

7、美化报告

安装插件Groocy

填写代码:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

最后,要定期审查和更新测试用例,以匹配API的最新变化。

8、返回到项目首页,执行

六、结论

利用Jenkins和Yapi的日志和报告功能,进行详尽的测试结果分析。通过Yapi与Jenkins集成可以提升团队的开发效率、确保API的稳定性和一致性。自动化接口测试、持续集成与部署以及接口文档管理的共享等功能,能够极大地简化开发流程,并帮助团队快速交付高质量的软件产品。

展示评论