写在前面

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

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

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
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐