再见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,一经查实,立即删除!

相关文章

碰到一个用pip死活装不上模块的问题(ModuleNotFoundError: No module named ‘triton‘)

折腾了半天才发现问题的根源在于平台不同。 当我在windows上尝试用pip install triton命令安装该模块的时候,总会提示 A matching Triton is not available, some optimizations will not be enabled. Error caught was: No module named triton而一个模块如果只在…

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虚拟人领…

guzzle http/guzzle如何在鉴权中使用,如何使用异步操作?

Guzzle HTTP客户端库提供了多种方式来进行鉴权,并且支持异步操作。以下是如何在Guzzle中执行鉴权和使用异步操作的示例: 1. 基本鉴权 Guzzle支持基本的HTTP基本认证(Basic Authentication)鉴权。您可以使用auth选项来指定用户名…

Syntax Error: Error: PostCSS received undefined instead of CSS string (已解决)

错误版本 "node-sass": "^5.0.0" "sass-loader": "^10.1.0" 解决办法如下: 这是因为node-sass 和 sass-loader版本不适配导致,请安装如下版本,并且运行如下命令: "node-sass":…

kafka_2.10启动Kafka broker

要启动 Kafka broker,你需要执行以下步骤: 首先,确保你已经安装了 Kafka。你可以从 Apache Kafka 的官方网站下载 Kafka 的二进制发行版,并按照官方文档中的说明进行安装。 在安装完成后,进入 Kafka 的安装目录。 打…

Junit 集成测试

前言 现在作者说明一下,作者需要开发一个简单的VueSpringboot前后端分离实验,想要尽量将测试的流程应用到这样的系统中。单元测试请见Junit单元测试_Joy T的博客-CSDN博客,而单元测试加上mock呢,最多也只能测试一下Service层的业…

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

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

uniapp在App端如何动态修改原生导航栏?

uniapp在App端如何动态修改原生导航栏? 文章目录 uniapp在App端如何动态修改原生导航栏?page.json配置修改 buttons 文字修改按钮上的角标设置 searchInput的 focus设置 searchInput的 text 在App端可以通过得到 webview 对象,通过当前 webvi…

VSCode 调试 u-boot

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

Flutter ☞ 常量

常量 只能被定义一次,并且不可修改的值叫做常量。 在 Flutter 中有两种常量修饰方法 finalconst 相同点 类型声明可以省略 final String a 123; final a 123;const String a 123; const a 123;初始化后不能再赋值 final a 123; a abc; // 错误const a …

Docker-compose和Consul

目录 1、docker-compose 简介 1.1 Docker-compose 简介 2、compose 部署 2.1 Docker Compose 环境安装 2.2 YAML 文件格式及编写注意事项 * * * * 2.3 Docker Compose配置常用字段 2.4 Docker Compose 常用命令 2.5 Docker Compose 文件结构 3、Consul 3.1 什么是…

SkyWalking 告警规则配置说明

Skywalking告警功能是在6.x版本新增的,其核心由一组规则驱动,这些规则定义在config/alarm-settings.yml 文件中。告警规则定义分为两部分: 1、告警规则:它们定义了应该如何触发度量警报,应该考虑什么条件 2、webhook(网络钩子):定义当告警触发时,哪些服务终端需要被…

unity变体收集工具

项目目录:D:\GIT\YooAsset\Temp 收集代码: using System.Collections; using System.Collections.Generic; using UnityEditor; #if UNITY_EDITOR using UnityEditor.Build; using UnityEditor.Rendering; #if UNITY_2019_4_OR_NEWER using UnityEditor.Build.Pipeline…

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

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

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

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

云计算系统与传统计算系统的比较

随着技术的不断发展,云计算系统逐渐成为了企业和个人使用的主要计算方式之一。然而,很多人对云计算系统与传统计算系统之间的区别和相似之处还存在一些疑惑。本文将以云计算系统和传统计算系统为方向,探讨它们之间的异同点。 首先&#xff0…