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

news2024/12/29 9:58:05

文章目录

  • 写在前面
  • 一、准备工作
    • 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: 1
  cache: path
trigger:
  type: cron
  schedule: 0 0 1 ? * FRI
workflow:
  - ref: git_clone_0
    name: git clone
    task: git_clone@1.2.9
    input:
      remote_url: '"https://gitlink.org.cn/floraachy/uiautotest_playwright.git"'
      ref: '"refs/heads/master"'
      commit_id: '""'
      depth: 1
    needs:
      - start
  - ref: shell_0
    name: shell
    image: mcr.microsoft.com/playwright/python:v1.38.0-focal
    env:
      PROJECT: git_clone_0.git_path
    script:
      - 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.py
    needs:
      - git_clone_0
  - ref: end
    name: 结束
    task: end
    needs:
      - dingtalk_notice_markdown_0
  - ref: start
    name: 开始
    task: start
  - ref: dingtalk_notice_markdown_0
    name: 钉钉通知-markdown
    task: dingtalk_notice_markdown@1.0.2
    input:
      boot_webhook_url: ((dingbot.webhook_url))
      secret: ((dingbot.secret))
      msg_title: '"UI自动化测试已完成!"'
      msg_text: extract_txt_0.result + "\n复制链接打开查看详细测试报告:" +
        new_gitlink_issue_0.issue_link
      at_user_ids: '"[]"'
      at_mobiles: '"[]"'
    needs:
      - new_gitlink_issue_0
  - ref: extract_txt_0
    name: 文本内容提取
    task: floraachy/extract_txt@2.0
    input:
      file: git_clone_0.git_path + "/outputs/report/test_result.txt"
    needs:
      - shell_0
  - ref: new_gitlink_issue_0
    name: 新建GitLink疑修Issue
    task: floraachy/new_gitlink_issue@1.0.1
    input:
      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.coloradmin.cn/o/1106020.html

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

相关文章

网站如何才能不被黑,如何做好网络安全

当企业网站受到攻击时,首页文件可能被篡改,百度快照也可能被劫持并重定向到其他网站。首要任务是加强网站的安全防护。然而,许多企业缺乏建立完善的网站安全防护体系的知识。因此,需要专业的网站安全公司来提供相应的保护措施。今…

jquery.i18n.properties.js使用及seo优化

使用方法 具体使用方法可以参考jquery.i18n.properties的使用讲解与实例 这篇博客,这里仅简单示例 1、下载 jquery.i18n.properties.js文件,地址: jquery.i18n.properties.js 2、设创建语言properties文件,如:strings…

vue2-org-tree 树型结构的使用

vue2-org-tree 用于创建和显示组织结构树状图,帮助开发者轻松地可视化组织结构,例如公司的层级、部门之间的关系、团队成员等。其主要功能有:自定义节点、可折叠节点、支持拖放、搜索、导航等功能。 这里我们主要使用 vue2-org-tree 进行多次…

苹果平板可以用别的电容笔吗?电容笔和Apple pencil区别

和苹果原装的Pencil相比,这种平替的电容笔并没具备重力压感,只有一种倾斜的压感功能。如果你不经常用来作画,一支普通的电容笔就足够了。不管是用来记笔记,还是用来解决一些数学问题,都能用得上。再说了,即…

ui设计师简历自我评价的范文(合集)

ui设计师简历自我评价的范文篇一 本人毕业于艺术设计专业,具有较高的艺术素养,平时注重设计理论知识的积累,并将理论应用到作品中。了解当下设计的流行趋势,设计注重细节、重视用户体验,对色彩搭配有着浓厚的兴趣&…

Python学习之逻辑中的循环有哪些?

1. for循环 for 循环用于迭代 (遍历)一个序列,例如列表、元组、字符串或字典中的元素。 通常使用 for 循环来遍历可迭代对象中的元素,并对每个元素执行相同的操作。 示例: for item in iterable: # 执行操作2.while循环 -while循环用于在满足某个条件…

新能源车企们在“金九银十”的热潮里改了“策略”?

9月,各大新能源车企销量拉锯战落下帷幕,比亚迪稳坐冠军之位,9月累计销量达286903辆,环比增长18.8%;特斯拉仍旧位列第二,9月销量74073辆,环比增长14.5%;吉利汽车“超车”广汽埃安霸榜…

idea热加载,JRebel 插件是目前最好用的热加载插件,它支持 IDEA Ultimate 旗舰版、Community 社区版

1.如何安装 ① 点击 https://plugins.jetbrains.com/plugin/4441-jrebel-and-xrebel/versions 地址,下载 2022.4.1 版本。如下图所示: ② 打开 [Preference -> Plugins] 菜单,点击「Install Plugin from Disk…」按钮,选择刚下…

哈希(开放寻址法)代码模板

//开放寻址法 //数组长度一般要开到题目数据范围的2~3倍 #include<iostream> #include<cstring> using namespace std; //null代表无穷大 //最大和最小 //0x3f3f3f3f 1061109567&#xff0c;0xc0c0c0c0 -1061109568 const int N 2e5 3, null 0x3f3f3f3f;//取质…

需要影视解说配音的看过来,用它就对了

近年来&#xff0c;随着影视、动画等领域的快速发展&#xff0c;声音设计和配音成为了影片制作中不可或缺的一环。然而&#xff0c;并非每个人都拥有天赋般的配音技巧。面对这一困境&#xff0c;幸运的是&#xff0c;现在市面上有很多简单免费好用的配音软件&#xff0c;今天就…

gcc编译器和gdb调试工具

gcc编译器 GCC&#xff08;GNU Compiler Collection&#xff09;是一套由GNU计划开发的自由软件编译器集合&#xff0c;它支持多种编程语言&#xff0c;包括C、C、Objective-C、Fortran、Ada和Go等。GCC 是一个功能强大、稳定可靠的编译器&#xff0c;被广泛应用于各种操作系统…

【KOS】安装卸载软件

环境 系统&#xff1a;银河麒麟&#xff08;KOS&#xff09;V10&#xff08;SP1&#xff09;2303 问题 银河麒麟&#xff08;KylinOS&#xff09;原是在“863计划”和国家核高基科技重大专项支持下&#xff0c;国防科技大学研发的操作系统&#xff0c; 后由国防科技大学将品牌…

IDM注册方式

新建一个bat文件&#xff0c;取名IAS_0.8.cmd&#xff0c; 在github上获取脚本内容&#xff0c;地址&#xff1a; https://raw.githubusercontent.com/lstprjct/IDM-Activation-Script/main/IAS_0.8.cmd 也可以直接复制以下内容到IAS_0.8.cmd文件&#xff1a; setlocal Dis…

GMS地下水数值模拟及溶质(包含反应性溶质)运移模拟技术深度应用

以地下水数值模拟软件GMS操作为主要授课内容&#xff0c;在教学中强调模块化教学&#xff0c;分为前期数据收集与处理&#xff1b;三维地质结构建模&#xff1b;地下水流动模型构建&#xff1b;地下水溶质运移模型构建和反应性溶质运移构建5个模块&#xff1b;采用全流程模式将…

从0-1,使用腾讯OCR进行身份证识别

目录 1.申请腾讯OCR权限 2.代码思路 3.Postman测试​ 1.申请腾讯OCR权限 获取 secretId 和 secretKey&#xff0c;见上文从0到1&#xff0c;申请cos服务器并上传图片到cos文件服务器-CSDN博客https://blog.csdn.net/m0_55627541/article/details/133902798 2.代码思路 入参…

文字智能适配背景

文字智能适配背景 只需要在文字中加上mix-blend-mode属性即可完成 h1 {height: 30px;text-align: center;color: #fff;font-size: 3em;transition: 0.5s;mix-blend-mode: difference; }

CTF/AWD竞赛标准参考书+实战指南

随着网络安全问题日益凸显&#xff0c;国家对网络安全人才的需求持续增长&#xff0c;其中&#xff0c;网络安全竞赛在国家以及企业的人才培养和选拔中扮演着至关重要的角色。 在数字化时代&#xff0c;企业为了应对日益增长的攻击威胁&#xff0c;一般都在大量部署安全产品、…

【经验分享】如何构建openGauss开发编译提交一体化环境

前文 本文适合对openGauss源代码有好奇心的爱好者&#xff0c;那么一个友好的openGauss源代码环境应该是怎么样的。openGauss的开发环境是如何设置的&#xff1f;openGauss的编译环境是如何构建的&#xff1f;如何向openGauss提交代码&#xff0c;笔者集合官方和几位博主实践提…

SpringFramewrok (1)

1、框架的概念与理解 在现实生活中&#xff0c;框架可以比喻为我们搭建房子的框架。 在框架的基础上&#xff0c;我们可以专注于我们自己的工作&#xff0c;而不用在意这些底层工作如何实现。 框架的优点包括以下几点&#xff1a; 1. 提高开发效率&#xff1a;框架提供了许多…

【C++11】 智能指针

一、为什么需要智能指针&#xff1f; 下面我们先分析一下下面这段程序有没有什么内存方面的问题&#xff1f; int div() {int a, b;cin >> a >> b;if (b 0)throw invalid_argument("除0错误");return a / b; }void f() {pair<string, string>* …