Apifox 「定时任务」操作指南,解锁自动化测试的新利器

news2024/9/23 11:27:26

定时任务是按照预设时间自动执行的任务,它可以有效解决一些常见问题,比如频繁执行的回归测试和大规模的接口测试,这些任务需要在固定时间点或间隔周期内自动运行,以确保软件的持续集成和持续交付过程中的稳定性和可靠性。通过使用定时任务,可以减少人为操作的失误和麻烦,提高测试效率和准确性。

Apifox 现已支持设置定时任务,例如,你可以定时执行自动化测试中的测试场景。

图片

定时任务生成的测试报告还可以发送给邮箱、飞书、钉钉、企业微信等平台。

图片

当前自动化测试的定时任务仅支持基于自托管 Runner 来执行。Runner 可以理解为是一个自动化程序,可以托管在独立服务器上,它能够执行 Apifox 内的自动化测试定时任务、定时导入接口文档等工作。

下文就来介绍一下怎么通过自托管 Runner 来定时执行自动化测试的测试场景,在开始之前,请确保把 Apifox 更新到了最新版

前置条件

要使用定时任务,首先需要在服务器实例中部署 Runner,以下是 Runner 运行环境的推荐配置及部署方法。

1 Runner 运行环境

推荐的实例规格如下:

图片

当服务器实例准备好后,在部署 Runner 之前还需要确保实例中已安装 Docker 环境,因为 Runner 通过 Docker 来执行任务。

2 安装  Docker

如何在服务器实例中安装 Docker?可以自行搜索一下,或者参考 Docker 官方文档来安装(国内镜像源可以找找云服务器厂商的)。需要注意的是,Docker 的最低版本号需使用 20.10.0。

图片

Docker 环境有了之后,就可以开始部署 Runner 了。

3 部署 Runner

首先需要确保你有团队管理员权限,然后在 Apifox 的主窗口中,选择你的团队,并依次点击「团队资源 -> 通用 Runner -> 部署通用 Runner」。

图片

在弹出框中复制部署通用 Runner 的命令,你可以根据需要定义命令,支持自定义服务器 OS、暴露端口、挂载数据目录等。以下是对这些设置的详细说明:

  1. 服务器 OS:指定了 Docker 容器运行的操作系统。包括 Linux、macOS 和 Windows,选择正确的操作系统是确保 Docker 容器能够正确运行的关键。

  2. Docker 镜像:提供了三种版本,分别是通用版、精简版和自定义版本。若你的「自定义脚本」需要调用外部程序,请根据不同版本所包含的语言环境选择合适的镜像进行安装。

    1. 通用版:包含 Runner 的所有功能,并内置以下外部程序的语言环境:Node.js 18、Java 21、Python 3、PHP 8。

    2. 精简版:包含 Runner 的所有功能,仅内置 Node.js 18 语言环境。

    3. 自定义:包含 Runner 的所有功能,并支持自定义外部程序的语言环境。你可以通过创建自己的 Dockerfile,根据需求添加或移除相关环境。

  3. 暴露端口:Docker 容器默认不会将内部端口暴露给外部访问。通过 -p 参数,你可以将容器内部的端口映射到宿主机的端口上,使得外部可以访问容器提供的服务。例如,-p 80:4524 表示将容器内部的 4524 端口映射到宿主机的 80 端口。

  4. 挂载数据目录:使用 -v 参数可以将宿主机的目录挂载到容器内部,这样容器就可以访问和操作宿主机上的文件(数据库配置、外部程序等)。例如,-v "/opt/runner":/opt/runner 表示将宿主机的 /opt/runner 目录挂载到容器的 /opt/runner 目录。

图片

在服务器实例中粘贴并运行刚才复制的命令,系统将自动拉取镜像并启动容器。

图片

你可以通过 docker ps 命令来查看已启动的 Runner 服务。

图片

Runner 部署完成后,回到 Apifox 的「团队资源」页面,可以查看已连接的 Runner 服务(如未显示,可尝试刷新页面)。在这里,你可以对 Runner 进行管理,包括重命名、添加描述、删除、停用或重启。

图片

成功部署自托管 Runner 后,你就可以在 Apifox 中创建和使用定时任务了。

创建  定时任务

在项目的自动化测试模块中,选择「定时任务」,然后新建定时任务。设置以下信息:

  • 任务名称与说明: 用于区分定时任务并描述其详细目的。

  • 测试场景: 定时任务将执行选定的一个或多个测试场景,每个场景可单独配置。

  • 运行周期: 设置任务的执行周期,如每周日 11 点或每 6 小时一次。

  • 运行于: 选择执行任务的实例,可使用 Apifox 云端(敬请期待)或团队自托管的 Runner。

  • 通知: 开启通知后,运行结果将按设置发送给相关人员,可手动输入非项目成员的邮箱。

图片

基本信息设置完毕后保存即可。

执行 定时任务

定时任务将根据设置的「运行周期」自动执行。在定时任务列表中,可以查看已运行次数、启用状态,以及下次运行时间。

图片

 

查看 测试报告

定时任务运行完成后,运行结果将保存在定时任务的运行结果页面中,你可以随时进入「运行历史」页面查看定时任务运行的详情。

图片

同时,系统将按照设置的通知渠道向相关人员或者平台发送信息。

图片

点击邮件中的「查看详情」链接,即可跳转到 Apifox 端内查看更详细的定时任务报告。

图片

常见问题 解答

Q 在服务器实例中部署了 Runner,但「定时任务」到设定时间点后不生效怎么办?

针对这种情况,建议首先在 Apifox 中手动运行一次「定时任务」,然后在服务器实例中使用 docker logs 命令查看容器的运行日志,确认是否有「定时任务」的相关信息。

图片

如果日志中没有相关信息,建议检查服务器是否开放了 4524 端口,并确认该端口未被防火墙拦截。

同时,可以尝试在测试场景中将「运行于」更改为当前部署的 Runner ,然后点击「运行」按钮,通过检查应用内显示的内容以及 Docker 容器日志,并等待测试场景运行完成后,查看是否有「测试报告」回传,以更详细地定位问题。

图片

此外,你还可以尝试删除旧版 Docker 容器及其对应的镜像,然后重新部署最新版的 Runner。如果问题依然存在,欢迎加入交流群与我们的技术支持联系,以便进一步解决。

Q 如何在服务器实例中删除已安装的 Runner?

首先需要删除容器,命令如下:

  1. 查看容器:docker ps -a

  2. 停止容器:docker stop

  3. 删除容器:docker rm

图片

然后删除镜像,命令如下:

  1. 查看镜像:docker images

  2. 删除镜像:docker rmi

图片

这样,就把部署在服务器实例中的 Runner 删除干净了。

附录

以下是常用的 Docker 命令,你可以对已部署的 Runner 执行相关的操作:

图片

定时任务在 Apifox 中能极大提升工作效率,简化操作流程。通过自托管 Runner 的部署,你可以灵活地安排自动化测试和接口文档导入,享受更高效的团队协作。未来,我们还将推出更多便捷功能,让 Apifox 云端支持定时任务,敬请期待!

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

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

相关文章

实操学习——个人资料的录入、修改、密码的修改

实操学习——个人资料的录入、修改、密码的修改 一、个人资料的录入和修改知识补充:装饰器二、密码的修改知识补充:docker的关闭与启动 一、个人资料的录入和修改 在users的app下创建一个用户详情表 from django.contrib.auth.models import User from…

C/C++逆向:switch语句逆向分析

在逆向分析中,switch语句会被编译器转化为不同的底层实现方式,这取决于编译器优化和具体的场景。常见的实现方式包括以下几种: ①顺序判断(if-else链): 编译器将switch语句转化为一系列的if-else语句。这…

【第十四章:Sentosa_DSML社区版-机器学习时间序列】

目录 【第十四章:Sentosa_DSML社区版-机器学习时间序列】 14.1 ARIMAX 14.2 ARIMA 14.3 HoltWinters 14.4 一次指数平滑预测 14.5 二次指数平滑预测 【第十四章:Sentosa_DSML社区版-机器学习时间序列】 14.1 ARIMAX 1.算子介绍 考虑其他序列对一…

Flutter鸿蒙化(windows)

Flutter鸿蒙化(windows) 参考资料Window配置Flutter的鸿蒙化环境下载配置环境变量HarmonyOS的环境变量配置配置Flutter的环境变量Flutter doctor -v 检测的问题flutter_flutter仓库地址的警告问题Fliutter doctor –v 报错[!] Android Studio (version 2…

计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-18

计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-18 1. The Application of Large Language Models in Primary Healthcare Services and the Challenges W YAN, J HU, H ZENG, M LIU, W LIANG - Chinese General Practice, 2024 人工智能大语言模型在基层医疗…

软媒市场新探索:软文媒体自助发布,开启自助发稿新篇章

在繁华喧嚣的软媒市场中,每一个声音都在竭力呼喊,每一个品牌都在奋力展现。而软文,作为一种温柔而坚韧的营销力量,正逐渐崭露头角。特别是软文媒体自助发布平台的出现,更是为企业提供了一个全新的、高效的自助发稿渠道。 软媒市场自助发布平台,正如其名,是一个让企业能够自主发…

离职员工客户如何管理?解锁2024企业微信新功能

公司里员工来来去去很正常,但每次有人走,老板们都会头疼,因为客户信息得有人接着管。客户对公司来说太重要了,不能丢。2024年,企业微信出了个新招,就是员工离职后,客户信息可以轻松转给新来的员…

JVM的基本概念

目录 一、JVM的内存划分 二、JVM的类加载过程 三、JVM的垃圾回收机制(GC) 四、分代回收 一、JVM的内存划分 一个运行起来的Java进程,就是一个Java虚拟机,就需要从操作系统中申请一大块内存。申请的内存会划分为不同的区域&…

Maven笔记(一):基础使用【记录】

Maven笔记(一)-基础使用 Maven是专门用于管理和构建Java项目的工具,它的主要功能有: 提供了一套标准化的项目结构 Maven提供了一套标准化的项目结构,所有IDE(eclipse、myeclipse、IntelliJ IDEA 等 项目开发工具) 使…

计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-17

计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-17 1. Large Language Models in Biomedical and Health Informatics: A Review with Bibliometric Analysis H Yu, L Fan, L Li, J Zhou, Z Ma, L Xian, W Hua, S He… - Journal of Healthcare …, 2024 生物…

HarmonyOS应用开发(组件库)--组件模块化开发、工具包、设计模式(持续更新)

致力于,UI开发拿来即用,提高开发效率 正则表达式...手机号校验...邮箱校验 文件判断文件是否存在 网络下载下载图片从沙箱中图片转为Base64格式从资源文件中读取图片转Base64 组件输入框...矩形输入框...输入框堆叠效果(用于登录使用&#xf…

【自动驾驶】决策规划算法(二)参考线模块Ⅰ| 平滑算法与二次规划

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…

(学习记录)使用 STM32CubeMX——GPIO引脚输入配置

STM32F103C8T6的GPIO引脚输入配置 时钟配置 (学习记录)使用 STM32CubeMX——配置时钟(入门)https://blog.csdn.net/Wang2869902214/article/details/142423522 GPIO 引脚输出配置 (学习记录)使用 STM32…

Springcloud框架-能源管理系统-能源管理系统源码-能源在线监测平台-双碳平台

一、介绍 基于SpringCloud的能管管理系统-能源管理平台源码-能源在线监测平台-双碳平台源码-SpringCloud全家桶-能管管理系统源码 有需者咨询,非诚勿扰; 二、软件架构 二、功能介绍 三、数字大屏展示 四、数据采集原理 五、软件截图

macos pyenv 安装python tk 、tkinter图形库方法步骤和使用总结

在macos中, pyenv 是一款用来管理多版本python 的工具, 我们常用的tk图形库是一个独立的工具库,我们在python里面使用的tkinter模块仅是调用这个独立的tk图形库, 所以如果我们希望在python里面使用它, 就必须要先安装t…

委托的注册及注销+观察者模式

事件 委托变量如果公开出去,很不安全,外部可以随意调用 所以取消public,封闭它,我们可以自己书写两个方法,供外部注册与注销,委托调用在子方法里调用,这样封装委托变量可以使它更安全,这个就叫…

金融加密机的定义与功能

金融加密机是一种用于保护金融交易数据和信息安全的重要安全设备。它通过硬件和软件的多重保障,确保金融交易中的敏感数据不被泄露或篡改。以下是关于金融加密机的详细介绍: 一、定义与功能 金融加密机是一种硬件安全设备,通过实现各种密码算…

深度deepin初体验(一)系统详细安装过程 | 国产系统

这里写自定义目录标题 深度deepin初体验(一)系统详细安装过程1.介绍2.安装要求3.环境4.创建虚拟机/系统升级系统选择语言硬盘分区备份文件拷贝系统重启常规设置 深度deepin初体验(一)系统详细安装过程 1.介绍 深度deepin是在debi…

Python开发深度学习常见安装包 error 解决

Python Python 是一种广泛使用的高级编程语言,它以其清晰的语法和代码可读性而闻名。Python 支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。由于其简洁性和强大的标准库,Python 成为了数据科学、机器学习、网络开发、自动化脚…

气膜馆:新型场馆的盈利之道—轻空间

气膜馆作为一种创新的场馆形式,凭借其先进的技术和灵活的应用,正在快速崛起,展现出广阔的市场前景与丰富的盈利潜力。通过多元化的经营模式,气膜馆为创业者提供了前所未有的商机。本文将深入分析气膜馆的盈利模式及其在市场中的竞…