如何将 Apifox 的自动化测试与 Jenkins 集成?

news2024/10/7 6:44:09

CI/CD (持续集成/持续交付) 在 API 测试 中的主要目的是为了自动化 API 的验证流程,确保 API 发布到生产环境前的可用性。通过持续集成,我们可以在 API 定义变更时自动执行功能测试,以及时发现潜在问题。

Apifox 支持与众多的 CI/CD 平台集成,例如 Jenkins、Gitlab、GitHub Actions 等。你可以在自动化测试的 CI/CD 模块中找到相应的集成代码,只需将这些代码片段添加到你的 CI/CD 工作流中,就能实现 Apifox 自动化测试与你现有 CI/CD 流程的无缝衔接。

图片

本文主要介绍怎么将 Apifox 自动化测试中的测试场景与 Jenkins 集成,下面详细介绍具体操作。

安装 Jenkins

关于 Jenkins 的安装方法,可以参考 Jenkins 官方文档,里面有各个系统的详细安装教程。

图片

安装完成后可在浏览器中通过 http://{你的公网IP}:8080  来访问 Jenkins 的可视化页面。

图片

接下来,我们将设置必要的配置项,以确保可以在 Jenkins 中顺利运行 Apifox CLI 命令。

配置 Node.js 环境

1、安装 NodeJS 插件

在 Jenkins 的管理页面,点击「Manage Jenkins」,然后选择「Manage Plugins」进入插件管理页面。

图片

在「Available」标签下,搜索 NodeJS 插件,将其安装并重启 Jenkins。

图片

2、配置 NodeJS 和全局 npm 包

NodeJS 插件安装完成后,需要进行一些配置。回到「Manage Jenkins」页面,选择「Tools」进入到全局配置工具页面。

图片

在 Tools 页面找到 NodeJS 模块,点击「Add NodeJS」,然后在配置项中填入 NodeJS 别名 (比如 nodejs18  ,选择一个 NodeJS 版本 (需大于 v14.20.1  ,在「Global npm packages to install」中输入 apifox-cli,勾选「Install automatically」以在构建过程中自动安装相应的 npm 包 (也就是 apifox-cli  ,配置完毕后保存即可。

图片

配置好 NodeJS 环境后,可以在 Jenkins 中通过两种方法构建流水线以达到持续集成的目的,分别是 Pipeline 和 Freestyle Project。下面分别介绍这两种方法。

通过 Pipeline 构建

1、创建 Pipeline 项目

在 Jenkins 的主页,点击「New Item (新建任务) 」,输入项目名称,选择「Pipeline」,点击「OK」。

图片

2、配置 Pipeline

在项目配置页面,找到「Pipeline」选项,在「Definition」下拉菜单中选择「Pipeline script」。

图片

在脚本框中输入以下从 Apifox 中获取到的 Pipeline 脚本,配置完成后保存即可。

pipeline {
  agent any

  tools {nodejs "nodejs18"} // 这里的 "nidejs18" 是你在 "全局工具配置(Tools)" 中设置的 NodeJS 名称

  stages {
    stage('Install Apifox CLI') {
      steps {
        sh 'npm install -g apifox-cli'
      }
    }

    stage('Running Test Scenario') {
      steps {
        sh 'apifox run https://api.apifox.com/api/v1/projects/4532246/api-test/ci-config/438628/detail?token=xL1XMVLjxxxxxxxxxxx -r html,cli'
      }
    }
  }
}

这个 Pipeline 脚本可以在 Apifox 自动化测试中的 CI/CD 模块中获取。

图片

上述的 Pipeline 脚本可以简化成下面这样的,把安装 Apifox CLI 的脚本去掉,这样就不需要每次执行构建任务时都安装一遍 apifox-cli,从而减少构建时间和资源消耗。这是因为预先在「全局工具配置 (Tools) 」中设置了 NodeJS 和全局 npm 包 (也就是 apifox-cli) ,它确保了在构建过程中可以直接使用已安装的工具。

pipeline {
  agent any

  tools {nodejs "nodejs18"} // 这里的 "nodejs18" 是你在 "全局工具配置(Tools)" 中设置的 NodeJS 名称

  stages {
    stage('Running Test Scenario') {
      steps {
        sh 'apifolx run https://api.apifox.com/api/v1/projects/4532246/api-test/ci-config/438628/detail?token=xL1XMVLjxxxxxxxxxxx -r html,cli'
      }
    }
  }
}

3、执行构建

在项目页面,点击「Build Now (立即构建) 」可开始执行流水线。

图片

可在「构建历史 (Build History) 」中查看构建的进度和结果。

图片

通过 Freestyle Project 构建

1、创建 Freestyle Project

在 Jenkins 的主页,点击「New Item (新建任务) 」,输入项目名称,选择「Freestyle project」,点击「OK」。

图片

2、配置构建环境

在项目配置页面,找到「Build Environment (构建环境) 」选项,勾选「Provide Node & npm bin/ folder to PATH」,并选择你在「全局工具配置 (Tools) 」中设置的 NodeJS 版本 (如 nodejs18) 。

图片

3、添加构建步骤

构建环境设置好以后,找到「Build Steps (构建步骤) 」选项,点击「Add build step (添加构建步骤) 」,选择「Execute Shell」 (如果是 Windows 服务器,选择「Execute Windows Batch Command」) 。

图片

然后将 Apifox CLI 的命令拷贝进去,保存即可。

图片

4、执行构建

在项目页面,点击「Build Now (立即构建) 」可开始执行流水线。

图片

可在「构建历史 (Build History) 」中查看构建的进度和结果。

图片

将构建结果发送到第三方应用

持续集成的构建结果可以发送给第三方应用,比如飞书、钉钉等。

图片

具体需要你在 Apifox 的【项目设置 -> 通知设置 -> 外部通知】中配置通知事件,可参考这篇文章:Apifox 中如何将「消息通知」集成到第三方应用(钉钉、飞书等)

图片

常见问题

1、如果接口中有文件需要上传,在构建时如何获取到这个文件?

可以事先将需要的文件上传到运行 CLI 的机器上 (也就是运行 Jenkins 所在的宿主机) ,例如这个图像文件:apifox-xiangmu.jpg,可将其路径复制下来。

图片

然后在 Apifox 的自动化测试里定位到需要上传文件的接口,点击「批量编辑」按钮。

图片

将上传到 CLI 机器上的文件路径填入到「参数值」那里即可,这样在构建时就会自动根据文件路径获取到实际文件。

图片

除此之外,还可以把文件路径放到环境变量的「远程值」那里。

图片

然后在「批量编辑」中通过变量的方式引用该文件路径,这样也可以在构建时通过文件路径获取到实际文件。

图片

2、想要定时构建,要怎么在 Jenkins 中设置?

Apifox 目前已支持使用定时任务,具体可参考帮助文档的「定时运行功能测试」模块,这种方式会更友好且方便。

如果要在 Jenkins 中设置定时任务,可以通过配置项目的「Build Triggers (构建触发器) 」来实现,并使用类似于 Unix 的cron表达式来指定构建的时间和频率。

在 Jenkins 的项目配置页面,找到「Build Triggers (构建触发器) 」模块,勾选「Build periodically (定期构建) 」选项,在出现的文本框中输入 cron 表达式来定义构建的时间和频率,关于 corn 表达式的使用这里不具体赘述。

图片

以上就是将 Apifox 的自动化测试与 Jenkins 集成的方法,不管选择哪一种构建方式,都需要确保在构建之前安装了 Apifox CLI,你可以选择在构建过程中自动安装 (对应上文的「配置 Node.js 环境」小节) ,也可以提前在 Jenkins 所在的宿主机中安装 (安装命令为 npm install -g apifox-cli) 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1889583.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PMP报考条件是什么?很多人都没读懂...

最近正值8月份考试报名期,想计划考8月份考试的宝子可以准备起来了,下面是报名时间和考试安排 8月考试时间安排: 👉报名时间在7.9日—12日 👉考试时间在8.31日(周六) 一、PMP报名条件是什么&am…

vscode插件的开发过程记录(一)

前言 本文是关于visual studio code软件上自定义插件的开发记录,将从头记录本人开发的过程,虽然网上也有很多文章,但个人在实践的过程还是会遇到不一样的问题,所以记录下来,以便于后期参考。 前期准备: 1、…

基于SpringCloud的智慧养老平台的设计与实现

您好!我是专注于计算机技术研究的码农小野。如果您对CSGO赛事管理系统感兴趣或有相关开发需求,欢迎随时联系我。 Java 数据库 MySQL 技术 SpringCloud, B/S架构 工具 Eclipse, MySQL Workbench, SpringBoot 系统展示 首页 老人管理界面 活动信息…

VBA使用ActiveWindow.Zoom调整页面显示百分比

前言 本节会通过VBA实现自动调整Excel页面显示的百分比功能 Zoom属性 1.调整当前工作表 示例:调整当前sheet显示比例为90% Sub AvtivwWindowZoom() ActiveWindow.Zoom 90 End Sub2.调整其他工作表 当一个Excel文件存在多张工作表Sheet时,又需要调…

这所985院校不保护一志愿,18人不合格被刷!西北农林科技大学计算机考研考情分析!

西北农林科技大学(Northwest A&F University),简称“西农”或“西北农林”,始创于1934年,位于中华人民共和国陕西省杨凌示范区。1999年9月11日由同处杨凌的原西北农业大学、西北林学院、中国科学院水利部水土保持研究所、水利部西北水利科…

Springboot 校园安全通事件报告小程序系统-计算机毕业设计源码02445

Springboot 校园安全通事件报告小程序系统 摘 要 随着中国经济的飞速增长,消费者的智能化水平不断提高,许多智能手机和相关的软件正在得到更多的关注和支持。其中,校园安全通事件报告小程序系统更是深得消费者的喜爱,它的出现极大…

MES系统如何进行数据采集?

在现代化制造业中,MES系统扮演着至关重要的角色。其中,对生产设备进行数据采集是MES系统不可或缺的一部分。数据采集不仅能够实时监控设备的运行状态,还能提供准确的生产数据,帮助企业实现精细化管理和优化生产流程。 通过实时采…

动态规划精品课 2024.6.26-24.7.3

一、斐波那契数列模型 0、第N个泰波那契数 class Solution {public int tribonacci(int n) {// 1. 创建 dp 表// 2. 初始化// 3. 填表// 4. 返回结果// 处理边界情况if (n 0)return 0;if (n 1 || n 2)return 1;int[] dp new int[n 1];dp[0] 0;dp[1] dp[2] 1;for (int i…

GPU云渲染平台到底怎么选?这六点要注意!

随着对高效计算和图像处理需求的增加,GPU云渲染平台成为许多行业的关键工具。尤其是对影视动画制作领域来说,选择一个合适的GPU云渲染平台可以大大提升工作效率。然而,面对市场上众多的选择,如何找到适合自己的GPU云渲染平台呢&am…

【信即是功夫】人皆有良知在心中

良知就是做人、做事的准则,良知就是天理;实实在在地自信 每个人心中都有一个圣人,只因自己不能真的相信,把这个圣人埋没了 良知在每个人心中,无论你如何做,也无法泯灭它。即使身为盗贼的人,他…

8款你不一定知道的良心软件!

AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/我们使用一些流行的软件的时候,往往会忽略一些功能非常强大的软件,因为这些软件的众 多,都因为看不见而丢失&a…

百度最新升级的产品,我实测了下,好不好用拉出来遛遛

百度一系列产品又又又要上新了?敖丙我作为它的老用户,从内测到现在可以说是一直关注着,听说它有最新进展,我火速端起小板凳和瓜子去围观了下,这不新鲜热乎的实测就来了,好不好用咱拉出来遛遛。。 说起来“…

力扣404周赛 T1/T2/T3 枚举/动态规划/数组/模拟

博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 3200.三角形的最大高度【简单】 题目: 给你两个整数 red 和 b…

如何在 Windows 10 或 11 中恢复已删除的文件

您在 Windows PC 上找不到某个文件,并且您觉得可能已将其删除。我们都遇到过这种情况。但与其抱怨,不如尝试恢复它。假设您已经搜索过回收站,但一无所获,那么是时候求助于一个好的恢复工具了。 微软提供了自己的命令行恢复程序&a…

Omniverse、Isaac Sim、Isaac Lab入门必会之 Nucleus 部署

新手入门Omniverse、Isaac Sim、Isaac Lab时经常发现,要想跑通例程,总是usd等资源加载不出来,软件傻傻的进程阻塞卡在那里,点两下就崩溃,这对新手来说非常的不友好,这都是由于没有安装 Nucleus 或者 Nucle…

[论文笔记] gumbel-softmax 实现离散分布可微 + torch代码+ 原理 + 证明

gumbel-softmax如何实现离散分布可微+torch代码+原理+证明_gumbel softmax-CSDN博客 https://zhuanlan.zhihu.com/p/678930684 gumbelsoftmax 是为了防止丢失其他类别的梯度。 相当于不止选择概率大的那个类别被更新,其他类别的梯度也被更新了。 def sample_gumbel(shape, …

删除keil!VSvode+eide+jlink(stlink)配置keil工程,调试使用cortex-debug+openocd

文章目录 目的前期准备1.软件安装2.VScode安装3.VScode插件安装4.安装ARM-GCC交叉编译器 工程导入程序编译jlink在线调试部分常见问题更改为GCC 编译器更改为stlinkopencd一些tips调试变量查看构建器选项配置 目的 提示:这里可以添加技术概要 vscode代替keil进行程…

时间序列预测实战——Transformer模型实现长期预测并可视化结果(附代码+数据集+原理介绍)

论文地址->Transformer官方论文地址 官方代码地址->暂时还没有找到有官方的Transformer用于时间序列预测的代码地址 一、本文介绍 这篇文章给大家带来是Transformer在时间序列预测上的应用,这种模型最初是为了处理自然语言处理(NLP)…

多微信运营管理方案

微信作为一款社交通讯软件,已经成为人们日常生活中不可缺少的工具。不仅个人,很多企业都用微信来联系客户、维护客户和营销,这自然而然就会有很多微信账号、手机也多,那管理起来就会带来很多的不便,而多微信私域管理系…

CS2黑屏、闪退、掉线的解决方法一览

历时近一年,V社终于针对CS2进行了实质性更新,而不是做一些华而不实的升级。本次更新V社带来了五张全新地图,让各位可以在游戏内尽情享受混战和新地图带来的新乐趣。不过有很多玩家吐槽,自己在游玩CS2时,老遇到黑屏、闪…