再见Jenkins!你好,GitLink引擎,更强大的自动化部署工具!

文章目录

  • 写在前面
  • 一、准备工作
    • 1.1 注册GitLink账号
    • 1.2 托管项目
    • 1.3 新建项目管理引擎流水线
  • 二、开始构建流水线
    • 2.1 进入图形流水线编辑页
    • 2.2 添加git clone节点
    • 2.3 添加shell节点
    • 2.4 添加allure html节点
    • 2.5 添加新建GitLink疑修节点
    • 2.6 添加钉钉通知节点
    • 2.7 设置任务触发器
      • 2.7.1 第一类触发器cron
      • 2.7.2 第二类触发器GitLink
  • 三、流水线示例

写在前面

想要运行自动化测试,但是对于服务器知识了解过少,不足以支撑构建自动化测试项目怎么办?

想要运行自动化测试,但是没有可以服务器怎么办?

GitLink引擎来帮你解决这些问题!

今天给大家推荐一款好用的CI/CD工具:GitLink引擎,可以轻松实现一键构建自动化测试项目,让你的自动化测试运行无忧!

一、准备工作

1.1 注册GitLink账号

要使用GitLink引擎,我们需要注册一个GitLink账号,注册地址:https://gitlink.org.cn/register

1.2 托管项目

首先,我们需要准备一个自动化测试项目,将自动化测试项目上传到GitLink或者Gitee或者Github上进行托管。

建议使用GitLink进行托管哦~

1.3 新建项目管理引擎流水线

GitLink账号新建成功后,我们可以在GitLink新建一个项目,用来管理我们的流水线。

注意:假如是在GitLink托管自动化测试项目,如果需要直接使用该项目的引擎,需要将流水线保存在其他分支中,因为流水线的保存会更新代码库文件,以免影响自动化测试代码;

新建项目地址:https://www.gitlink.org.cn/projects/deposit/new (登录后可正常访问)

二、开始构建流水线

2.1 进入图形流水线编辑页

  1. 进入项目详情页,点击“引擎”,进入引擎页面,点击“图形流水线”
    在这里插入图片描述

  2. 选择流水线代码保存的分支(一般默认master分支)后,添加所需要的节点。
    注意:必须有开始和结束节点。

2.2 添加git clone节点

需要注意如下几个参数:

  • 用户名: 访问自动化测试私有仓库的用户名,仓库是公开的可以不填
  • 密码: 访问自动化测试私有仓库的用密码,仓库是公开的可以不填
  • git地址:自动化测试项目的git地址
  • 标签、分支或pr/mr:自动化测试项目的所在分支,一般都是默认master
    在这里插入图片描述

2.3 添加shell节点

需要注意几个参数:

  • docker镜像
    可以手动输入所需的镜像,我这里用过2个镜像:

    • mcr.microsoft.com/playwright/python:v1.38.0-focal:有playwright环境
    • python:3.9-slim-buster:python 3.9环境
      在这里插入图片描述
  • 环境变量
    我们需要将git clone节点,clone下来的自动化测试项目路径,保存为环境变量,参考如下:
    在这里插入图片描述

  • 脚本
    这里需要输入运行自动化测试项目的命令。

可以参考我输入的命令:

# 这里是因为我当前使用的镜像没有安装jdk,所以我手动安装了一下
apt update
apt install -y openjdk-8-jdk-headless
# 由于我是自动化测试项目保存了allure的代码,需要给allure执行文件赋予执行权限。
cd $PROJECT/lib/allure-2.22.0/bin
chmod +x allure
# 切换当前目录到自动化测试项目所在目录
cd $PROJECT
# 我是使用pipenv管理依赖环境,所以需要安装pipenv
pip install pipenv
# 使用pipenv安装项目所需依赖,正常命令是pipenv install; 由于镜像使用的3.8,我使用的3.9,因此我需要使用如下命令
pipenv install --python 3.8 --skip-lock
# 在虚拟环境中安装playwright浏览器驱动
pipenv run playwright install
# 在虚拟环境中运行测试
pipenv run python run.py

假如你的自动化测试代码,没有封装单独的run.py文件,是通过pytest去运行测试的,那么命令参考如下:

# 一键安装项目所需依赖,项目所需依赖都保存在requirements.txt中
# 或者也可以pip单独一个个安装依赖包
pip install requirements.txt -r
pytest --alluredir=allure-results

2.4 添加allure html节点

注意:如果你的自动化测试代码运行完成后,已经生成了allure html测试报告,可以跳过这个节点;

注意:这里“allure-results路径”需要输入自动化测试项目生成的allure results测试结果集的目录。git clone节点会返回自动化测试项目的根路径,我们只需要拼接具体的allure-results所在路径即可。例如:git_clone_0.git_path + "/outputs/report/allure_results"

这个节点会自动调用allure生成allure html测试报告,并将报告压缩成.zip文件,返回.zip文件路径(.zip文件中含有一个.bat文件,在windows环境下,可以不安装allure,直接双击打开查看报告)。
在这里插入图片描述

2.5 添加新建GitLink疑修节点

这里,我需要该节点的作用在于,将allure html报告的压缩包上传到仓库的疑修,获取疑修的链接,作为测试运行结果发送到钉钉。
因为钉钉机器人不能直接发送压缩包文件,所以曲线救国,发送疑修链接,如果需要查看测试报告,可以点击疑修链接后,下载测试报告查看。

该节点有以下参数:

  • GitLink平台域名:一般为:https://gitlink.org.cn/
  • GitLink仓库拥有者标识/仓库标识:可以在GitLink访问某个需要新增疑修的项目>代码库页面,参考格式:floraachy/gitlink_test
  • GitLink平台账号:登录GitLink平台的账号,需要通过密钥管理进行管理,防止暴露;
  • GitLink平台密码:登录GitLink平台的密码,需要通过密钥管理进行管理,防止暴露;
  • 疑修指派负责人id: Gitlink项目成员的user_id, 不需要指派的情况下可以留空:"[]"
  • 疑修(Issue)标题:疑修的标题,例如:allure html报告生成啦!/ 自动化测试完成了!可自定义;
  • 疑修(Issue)内容:疑修内容,可自定义;
  • 疑修(Issue)附件:这里可以上传allure html报告的压缩包,点击右侧参数>allure_html报告生成>allure-report压缩的zip包路径即可,一般情况下是这样的格式:allure_html_report_0.allure_report_path (不需要引号);

在这里插入图片描述

2.6 添加钉钉通知节点

前提:首先我们需要在钉钉上配置一个钉钉机器人, 获取钉钉机器人的webhook地址,具体配置参考:使用钉钉机器人发送消息至钉钉

我这里添加的钉钉节点,是发送markdown格式的钉钉消息。

需要注意几个参数:

  • 展示内容:收到钉钉消息,首屏会话会透出的内容;
  • markdown消息内容:消息的具体内容,markdown格式;
  • 提醒列表:需要艾特的用户id或者手机号;
  • 是否艾特所有人;
    在这里插入图片描述

最后,我们添加一个结束节点,整个流程就串起来了。

在这里插入图片描述

2.7 设置任务触发器

我们知道jenkins里面也是有触发器的,可以设置每周或者每天什么时间点,自动运行流水线。
或者检测到当前代码仓库有指定事件就自动触发流水线运行。

GitLink引擎也有这个功能, 提供了2类触发器:cron, GitLink。

注意:任务触发器需要添加在开始节点之前。
在这里插入图片描述

2.7.1 第一类触发器cron

这个添加完成后,看具体的说明就可以了,挺简单的。
在这里插入图片描述

2.7.2 第二类触发器GitLink

这个触发器是检测当前仓库是否有这三类事件触发:推送代码/合并请求/创建标签,一旦这3类事件发生,就会自动触发流水线的运行。

三、流水线示例

注意:我这个流水线跟上述讲解的有细微差别。因为有些我是已经在自动化测试代码里面实现了,所以对应节点我就忽略了。
在这里插入图片描述

代码流水线参考:

version: 2
name: UI_playwright_图形流水线
description: ""
global:concurrent: 1cache: path
trigger:type: cronschedule: 0 0 1 ? * FRI
workflow:- ref: git_clone_0name: git clonetask: git_clone@1.2.9input:remote_url: '"https://gitlink.org.cn/floraachy/uiautotest_playwright.git"'ref: '"refs/heads/master"'commit_id: '""'depth: 1needs:- start- ref: shell_0name: shellimage: mcr.microsoft.com/playwright/python:v1.38.0-focalenv:PROJECT: git_clone_0.git_pathscript:- apt update- apt install -y openjdk-8-jdk-headless- apt install -y unzip- cd $PROJECT/lib/allure-2.22.0/bin- chmod +x allure- ls -l- cd $PROJECT- pip install pipenv- pipenv install --python 3.8 --skip-lock- pipenv run playwright install- pipenv run python run.pyneeds:- git_clone_0- ref: endname: 结束task: endneeds:- dingtalk_notice_markdown_0- ref: startname: 开始task: start- ref: dingtalk_notice_markdown_0name: 钉钉通知-markdowntask: dingtalk_notice_markdown@1.0.2input:boot_webhook_url: ((dingbot.webhook_url))secret: ((dingbot.secret))msg_title: '"UI自动化测试已完成!"'msg_text: extract_txt_0.result + "\n复制链接打开查看详细测试报告:" +new_gitlink_issue_0.issue_linkat_user_ids: '"[]"'at_mobiles: '"[]"'needs:- new_gitlink_issue_0- ref: extract_txt_0name: 文本内容提取task: floraachy/extract_txt@2.0input:file: git_clone_0.git_path + "/outputs/report/test_result.txt"needs:- shell_0- ref: new_gitlink_issue_0name: 新建GitLink疑修Issuetask: floraachy/new_gitlink_issue@1.0.1input:host: '"https://gitlink.org.cn"'project_url: '"floraachy/uiautotest_playwright"'username: ((gitlink.username))password: ((gitlink.password))issue_assign: '"[87611]"'issue_title: '"UI自动化测试报告"'issue_content: '""'issue_attach: git_clone_0.git_path + "/outputs/report/autotest_report.zip"needs:- extract_txt_0

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

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

相关文章

Python学习基础笔记七十五——Python调用其他程序

Python经常被用来开发自动化程序。自动化程序往往需要调用其他的程序。 例如,我们可以代码中调用wget程序,而不是自己开发下载的代码。 这就是我们经常做的,在我们的Python程序中调佣其它程序,帮我们实现功能。 Python中调用外部…

危险化工品出口注意事项及法规要求_箱讯科技

随着全球化工品市场的不断发展,危险化工品出口业务逐渐成为国际贸易的重要组成部分。然而,由于危险化工品具有潜在的危险性,出口过程中需严格遵守相关法规和注意事项,以确保运输安全和顺畅。本文将详细介绍危险化工品出口注意事项…

Linux | vim的入门手册

目录 前言 一、什么是vim 二、vim编辑器的模式 1、插入模式 (1)用vim打开文件 (2)进入插入模式 2、默认模式 (1)光标移动 (2)复制、粘贴与剪切操作 (3&#x…

UE4中无法保存项目问题

系列文章目录 文章目录 系列文章目录前言一、解决方法 前言 取消:停止保存所有资产并返回编辑器。 重试:尝试再次保存资产。 继续:仅跳过保存该资产。 当我点击继续时,关闭项目,然后重新打开项目,发现之前…

广州虚拟动力携数字人全栈式产品,邀您来2023世界VR产业大会(南昌)一探虚实

2023年10月19-20日,由工业和信息化部、江西省人民政府联合主办,中国电子信息产业发展研究院、江西省工业和信息化厅、南昌市人民政府、虚拟现实产业联盟共同承办的2023世界VR产业大会将在南昌绿地国际博览中心盛大举办。 广州虚拟动力作为3D、AI虚拟人领…

React之受控组件和非受控组件以及高阶组件

一、受控组件 受控组件,简单来讲,就是受我们控制的组件,组件的状态全程响应外部数据 举个简单的例子: class TestComponent extends React.Component {constructor (props) {super(props);this.state { username: lindaidai }…

VSCode 调试 u-boot

文章目录 VSCode 调试 u-boot调试配置启动 u-boot 脚本调试界面重定向之后继续调试参考 VSCode 调试 u-boot 调试配置 参考 qemu基础篇——VSCode 配置 GDB 调试 要想调试 u-boot 只需要再添加一个 u-boot 的配置即可 {"version": "0.2.0","conf…

学习笔记|串口通信实战|简易串口控制器|sprintf函数|STC32G单片机视频开发教程(冲哥)|第二十一集(下):串口与PC通信

目录 3.串口通信实战实操简易的工作原理Tips:sprintf函数简介 总结课后练习 3.串口通信实战 做一个简易串口控制器。发送对应指令,让板子做相应的事情,或者传输数据(文本模式下发送,不要选择HEX)。 1.串口发送字符Ax\…

2020年亚太杯APMCM数学建模大赛B题美国总统的经济影响分析求解全过程文档及程序

2020年亚太杯APMCM数学建模大赛 B题 美国总统的经济影响分析 原题再现: 美国总统选举每四年举行一次。 2020年是美国总统大选年,共和党候选人唐纳德特朗普和民主党对手乔拜登竞选总统。 甲乙双方候选人在金融贸易,经济金融治理,…

python爬虫实战-京东商品数据

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 今天介绍一下如何用 Python 来批量获取京东商品信息!! 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 第三方库: requests >>> pip install requests 开发环境: python 3.8 py…

【iOS】——用单例类封装网络请求

文章目录 一、JSONModel1.JSONModel的简单介绍2.JSONModel的使用 二、单例类和Block传值 一、JSONModel 1.JSONModel的简单介绍 JSONModel一个第三方库,这个库用来将网络请求到的JSON格式的数据转化成Foundation框架下的Model类的属性,这样我们就可以直…

Elasticsearch基础篇(五):创建es索引并学习分析器、过滤器、分词器的作用和配置

创建es索引并学习分析器、过滤器、分词器的作用和配置 一、基础概念Elasticsearch与MySQL的类比1. ES与MySQL的结构类比图2. ES与MySQL的类比示意表格3. 索引中重要概念索引(Index)文档(Document)字段(Field&#xff0…

2023.10.18 区别 对象 和 类对象

目录 对象 类对象 总结 对象 对象是类的实例化结果它是内存中的一块区域,包含了该类的属性和方法的具体值和实现对象具有唯一的标识、状态、行为通过创建类的实例,我们可以在程序中操作和处理具体的对象 简单实例 class Person {public int high 1…

车载开发学习——CAN总线

CAN总线又称为汽车总线,全程为“控制器局域网(Controller Area Network)”,即区域网络控制器,它将区域内的单一控制单元以某种形式连接在一起,形成一个系统。在这个系统内,大家以一种大家都认可…

Netty系列教程之NIO基础知识

近30集的孙哥视频课程,看完一集整理一集来的,内容有点多,请大家放心食用~ 1. 网络通讯的演变 1.1 多线程版网络通讯 在传统的开发模式中,客户端发起一个 HTTP 请求的过程就是建立一个 socket 通信的过程,服务端在建立…

VR全景图片如何拍摄制作,拍摄制作过程中要注意什么?

引言: VR全景图片就是通过专业的相机设备捕捉到的一个空间的高清图像,再经过专业工具进行拼合,呈现出一种环绕式的视觉效果。想象一下,当你站在一个完全真实的环境中,可以自由地转动视角,看到四周的景色&a…

高数定理集合啦

haha~ 最近在准备数学竞赛,好久没有发布笔记啦,今天就来一波高数里常用的定理吧,不全面的话后续会更新哒~ 费马定理:对于一个函数的局部极值点,如果导数存在,那么导数在该点处必须为零,即 f(x)0…

SQL数据库管理工具RazorSQL mac中文版特点与功能

RazorSQL mac是一款功能强大的SQL数据库管理工具,它支持多种数据库,包括MySQL、Oracle、Microsoft SQL Server、SQLite、PostgreSQL等。 RazorSQL mac 软件特点和功能 多种数据库支持:RazorSQL支持多种数据库,用户可以通过一个工…

基于R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习高级应用

查看原文>>>【案例教程】基于R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习高级应用 Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析…

安装Elasticsearch步骤(包含遇到的问题及解决方案)

注:笔者是在centos云服务器环境下安装的Elasticsearch 目录 1.安装前准备 2.下载Elasticsearch 3.启动Elasticsearch 非常容易出问题 第一次运行时,可能出现如下错误: 一、内存不足原因启动失败 二、使用root用户启动问题 三、启动ES自…