使用gitlab自带的CI/CD流水线执行自动化测试代码

        说到持续集成和持续部署大家最先想到的肯定是jenkins了,其实gitlab是自带CI/CD流水线功能的,我们的目的就是要把自动化测试代码部署到线上进行自动构建和自动执行,下面我只介绍gitlab的CI/CD流水线如何执行自动化测试代码。

        先来介绍一下gitlab runner。

        GitLab Runner是一个开源的应用程序,它允许您在GitLab CI/CD中运行作业或者构建项目,类似于Jenkins中的代理或者Build Agent。GitLab Runner通过与GitLab CI/CD集成,提供了自动化构建、测试和部署的能力。

        Runner可以在不同的操作系统上运行,包括Linux、Windows和MacOS,并支持不同的执行器(executors),如Shell、Docker、Kubernetes等,可以让你更好地控制和管理你的构建和测试环境。

        你可以在GitLab中注册Runner并将其与你的项目相关联。当你提交代码时,GitLab会通过Runner运行CI/CD管道中定义的作业,以确保你的代码在构建、测试和部署过程中能够正常运行。

        至于runner怎么配置大家可以参照相关的文章,下面我就来讲一讲gitlab如何去自动执行我们提交的代码。当配置好runner后我们就可以很简单的完成自动执行配置,我们只需要在我们项目的根目录下面创建一个名为.gitlab-ci.yml的文件(一定是这个名字,并且前面有一个.)。.gitlab-ci.yml 文件是 GitLab CI/CD 的配置文件,它允许您定义和运行自动化构建、测试和部署流程。

使用gitlab自带的CI/CD流水线执行自动化测试代码_第1张图片

下面来详细讲一下这个yaml文件中该如何进行配置(这里事先声明一下我的项目是python3+selenium3+pytest+allure的一个UI自动化测试项目)

使用gitlab自带的CI/CD流水线执行自动化测试代码_第2张图片

stages参数是用于定义 job 执行的阶段的参数。 stage 参数允许您将 job 分为不同的阶段,从而形成一个完整的 CI/CD 流程。

before_script参数是我们在执行任务前执行的语句,在执行我们的任务之前我们需要先下载好对应的pip命令以及项目依赖的库(requirements.txt文件里面存放的就是我项目需要依赖的一些python库,不知道如何生成这个文件的可以自行搜索一下)。

pytest只是给我们要执行的job进行命名。

 stage就对应到上面的阶段了。

image参数主要是用来拉取镜像,因为我是需要做UI自动化所以这里我拉取了一个docker镜像来搭建我的测试环境。

script参数下的命令就是我们要执行的命令了,这个也是根据具体情况去写,

--junitxml=test_results.xml是用来生成测试报告,这个是测试报告待会会直接展示在gitlab页面上,

artifacts参数是我们保存报告阶段,path是报告存放路径,reports下面的这一段是生成junit格式的测试报告并保存在test_results.xml文件中。

when:always意思是不管我们的job是否成功都生成测试报告,gitlab默认job失败不生成测试报告(在有很多用例的情况下只要一个用例失败都会使job失败,所以加上这个参数很有必要)。

使用gitlab自带的CI/CD流水线执行自动化测试代码_第3张图片

 junit报告会直接存放在gitlab的页面上。 

但是gitlab自带的报告肯定没有allure报告那么详细,我们也可以配置生成allure测试报告,前提是你在代码中有使用到allure,下面给大家展示一个allure的示例

使用gitlab自带的CI/CD流水线执行自动化测试代码_第4张图片

其实也是大同小异,只是在文件中的配置问题,可以根据需要来编写对应的.gitlab-ci.yml文件,如果有不懂的或者遇到的问题可以在评论区留言,也非常期待大家的关注 。

你可能感兴趣的:(gitlab,ci/cd,自动化)