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

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

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.rhkb.cn/news/430185.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络34——Windows内存管理

1、计算机体系结构 2、内存管理 分为连续分配管理和非连续分配管理 在块内存在的未使用空间叫内部碎片,在块外存在的未使用空间叫外部碎片 固定分区分配可能出现内部碎片,动态分区分配可能出现外部碎片 3、逻辑地址和实际地址的互相转换 4、缺页中断 …

微信支付商户 - 如何开通商家转账到零钱

商家转账到零钱功能的快速开通,需要商家遵循一系列步骤并确保所有条件符合微信支付的要求。以下是一些关键步骤和注意事项,以确保商家可以最快开通该功能: 一、确认申请资格 1. 公司性质:确保申请主体为公司性质(有限…

【Docker】安装全流程与配置完整镜像源(可安装 nginx)

目录 一、卸载历史版本(选)二、配置 yum 源三、安装 docker四、配置 docker 镜像源加速(选、强烈建议)4.1 配置阿里镜像加速4.2 配置其他镜像源 五、启动 docker参考文章与视频 本文基于 Linux - CentOS 7 操作系统。 一、卸载历史…

Unity3D入门(二) :Unity3D实现视角的丝滑过渡切换

1. 前言 上篇文章,我们已经初步了解了Unity3D,并新建并运行起来了一个项目,使相机视角自动围绕着立方体旋转。 这篇文章,我们来讲一下Unity3D怎么过渡地切换视角。 我们继续是我上篇文章中的项目,但是需要向把Camera…

TFT-LCD显示屏(1.8寸 STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 3.工作原理:TFT-LCD色彩空间 三、程序设计 main.c文件 lcd.h文件 lcd.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 TFT-LCD,全称Thin Film Transistor Liquid Crystal Display&a…

Golang | Leetcode Golang题解之第409题最长回文串

题目&#xff1a; 题解&#xff1a; func longestPalindrome(s string) int {mp : map[byte]int{}for i : 0; i < len(s); i {mp[s[i]]}res : 0for _, v : range mp {if v&1 1 {res v - 1} else {res v}}if res<len(s) {res}return res }

C++笔记21•C++11的新特性•

相比于 C98/03&#xff0c;C11则带来了数量可观的变化&#xff0c;其中包含了约140个新特性&#xff0c;以及对C03标准中约600个缺陷的修正&#xff0c;这使得C11更像是从C98/03中孕育出的一种新语言。相比较而言&#xff0c;C11能更好地用于系统开发和库开发、语法更加泛华和简…

如何合并pdf文件,四款软件,三步搞定!

在数字化办公的浪潮中&#xff0c;PDF文档因其跨平台兼容性和安全性&#xff0c;成为了我们日常工作中不可或缺的一部分。然而&#xff0c;面对多个PDF文件需要整合成一个文件时&#xff0c;不少小伙伴可能会感到头疼。别担心&#xff0c;今天我们就来揭秘四款高效PDF合并软件&…

演示:基于WPF的DrawingVisual开发的Chart图表和表格绘制

一、目的&#xff1a;基于WPF的DrawingVisual开发的Chart图表和表格绘制 二、预览 钻井井轨迹表格数据演示示例&#xff08;应用Table布局&#xff0c;模拟井轨迹深度的绘制&#xff09; 饼图表格数据演示示例&#xff08;应用Table布局&#xff0c;模拟多个饼状图组合显示&am…

尚品汇-秒杀商品定时任务存入缓存、Redis发布订阅实现状态位(五十一)

目录&#xff1a; &#xff08;1&#xff09;秒杀业务分析 &#xff08;2&#xff09;搭建秒杀模块 &#xff08;3&#xff09;秒杀商品导入缓存 &#xff08;4&#xff09;redis发布与订阅实现 &#xff08;1&#xff09;秒杀业务分析 需求分析 所谓“秒杀”&#xff0…

又到了金九银十,你的简历写好了吗?

又到了金九银十的招聘季&#xff0c;不过这几年求职环境越来越差&#xff0c;相比于跳槽找新机会&#xff0c;大家可能更倾向于守住自己手头的工作&#xff0c;稳字当头。当然&#xff0c;也有很多工作实在干烦了的朋友&#xff0c;想要换个新赛道试试。今天就给大家带来一个新…

django实现开发、测试、生产环境配置区分

文章目录 一、为什么要区分开发 (dev)、测试 (test) 和生产 (prod) 环境二、django项目如何通过配置实现环境配置的区分1、针对不同的环境创建不同的设置文件settings.py2、在设置文件中根据需要进行配置区分3、根据不同的环境运行使用不同的设置文件 任何实际的软件项目中都要…

【中级通信工程师】终端与业务(二):终端产品

【零基础3天通关中级通信工程师】 终端与业务(二)&#xff1a;终端产品 本文是中级通信工程师考试《终端与业务》科目第二章《终端产品》的复习资料和真题汇总。终端与业务是通信考试里最简单的科目&#xff0c;有效复习通过率可达90%以上&#xff0c;本文结合了高频考点和近几…

医学数据分析实训 项目三 关联规则分析作业--在线购物车分析--痹症方剂用药规律分析

文章目录 项目三 关联规则分析一、实践目的二、实践平台三、实践内容任务一&#xff1a;在线购物车分析&#xff08;一&#xff09;数据读入&#xff08;二&#xff09;数据理解&#xff08;三&#xff09;数据预处理&#xff08;四&#xff09;生成频繁项集&#xff08;五&…

基于微信小程序的美食外卖管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

分享两个虚拟试衣工具,一个在线,一个离线,还有ComfyUI插件

SAM &#xff0c;对不住了&#xff01; 我没记错的话&#xff0c;OpenAI CEO&#xff0c;性别男&#xff0c;取向男&#xff0c;配偶男。 这又让我联想到了苹果CEO库克... 所以OpenAI和Apple可以一啪即合。 钢铁直男老马就和他们都不对付~~ 开个玩笑&#xff0c;聊…

WebGL入门(一)绘制一个点

源码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><scr…

Web+Mysql——MyBatis

MyBatis 目标 能够完成Mybatis代理方式查询数据能够理解Mybatis核心配置文件的配置 1&#xff0c;Mybatis 1.1 Mybatis概述 1.1.1 Mybatis概念 MyBatis 是一款优秀的持久层框架&#xff0c;用于简化 JDBC 开发 MyBatis 本是 Apache 的一个开源项目iBatis, 2010年这个项目由…

高等代数笔记(2)————(弱/强)数学归纳法

数学归纳法的引入情景其实很简单&#xff0c;就是多米诺骨牌。 推倒所有多米诺骨牌的关键就是推倒第一块&#xff0c;以及确保第一块倒下后会带动第二块&#xff0c;第二块带动第三块&#xff0c;以此类推&#xff0c;也就是可以递推。由此我们可以归纳出所有的多米诺骨牌都可…

MySQL学习(索引)

文章目录 基本概念单列索引普通索引&#xff08;index&#xff09;唯一索引&#xff08;unique&#xff09;主键索引 组合索引全文索引&#xff08;fulltext&#xff09;空间索引&#xff08;spatial&#xff09;MySQL存储引擎 基本概念 通过某种算法&#xff0c;构建数据模型&…