1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > WEB开发 > 正文

WEB开发

软件测试docker搭建Jenkins+Python+allure自动化测试环境

1987web2023-10-06WEB开发164
原标题:软件测试|docker搭建Jenkins+Python+allure自动化测试环境

原标题:软件测试|docker搭建Jenkins+Python+allure自动化测试环境

简介

本文将详细介绍如何使用Docker搭建一个完整的自动化测试环境,其中包括Jenkins作为持续集成和持续交付工具,Python作为测试脚本编写语言,以及Allure作为测试报告生成工具。通过使用Docker容器,您可以轻松地设置和管理这些工具,提高测试效率和质量。

安装docker

安装docker的步骤,可以直接学习这篇文章:最详细的ubuntu 安装 docker教程

拉取Jenkins镜像

直接运行docker pull命令拉取镜像,命令如下:

docker pull jenkins/jenkins

运行命令,将会拉取最新的Jenkins镜像,拉取完成后,运行docker images查看镜像,结果如下图:

创建Jenkins容器

  1. 在主机创建一个挂载目录,命令如下:

mkdir -p /var/jenkins_node

注:若权限不足,则在命令前加上sudo即可

  1. 将该挂载目录的权限修改为可读可写可执行,命令如下:

chmod -R 777 /var/jenkins_node

  1. 创建与启动Jenkins容器,命令如下:

docker run -d -uroot -p 80:8080 --name jenkins_muller -v /var/jenkins_node:/var/jenkins_home jenkins/jenkins

命令解析:

  • -d:守护模式
  • -uroot:使用 root 身份进入容器,推荐加上,避免容器内执行某些命令时报权限错误
  • -p:主机 80 端口映射容器的 8080 端口,后面访问 jenkins 直接访问主机 ip 就行了,不需要加 8080 端口
  • -v:目录映射
  • --name:自定义一个容器名称
  • 使用上面拉取的 jenkins/jenkins 镜像
  1. 查看容器是否正常运行,运行命令:

docker ps

运行命令,如下图:

  1. 进入容器CLI页面,运行命令:

docker exec -it -uroot jenkins_muller bash

  1. 更新及安装必要软件,命令如下:

获取最新的软件包

apt-get update

升级已安装的软件包

apt-get upgrade

提前安装,以便接下来的配置操作

apt-get -y install gcc automake autoconf libtool make

apt-get -y install make*

apt-get -y install zlib*

apt-get -y install openssl libssl-dev

apt-get install sudo

安装Python环境

  1. 下载 python

我们要在容器中下载并安装python,命令如下:

cd /usr/local/src

wget https://python.org/ftp/python/3.8.8/Python-3.8.8.tgz

tar -zxvf Python-3.8.8.tgz

mv Python-3.8.8 py3.8

cd py3.8

安装完成后,如下图:

注:若报wget: command not found的错误,则执行下面的命令先行安装即可

apt-get update

apt-get install -y wget

  1. make 编译安装

在 /usr/local/src/py3.8 安装目录下执行下面的命令

./configure --prefix=/usr/local/src/py3.8

make && make install

注:若报no acceptable C compiler found in $PATH报错,则需要先安装编译器,命令如下:

apt-get install -y build-essential

  1. 添加软链接

添加 python3 软链接

ln -s /usr/local/src/py3.8/bin/python3.8 /usr/bin/python3

添加pip3软链接

ln -s /usr/local/src/py3.8/bin/pip3 /usr/bin/pip3

  1. 验证安装是否成功,输入python3及pip3查看是否成功安装

搭建allure环境

  1. 下载allure压缩包

allure下载地址,版本可以任选,下载最新版也可。

  1. 将压缩包复制到容器内,命令如下:

docker cp allure-commandline-2.13.0.zip jenkins_muller:/usr/local/src

  1. 将压缩包解压,命令如下:

unzip allure-commandline-2.13.0.zip

  1. 修改文件夹权限,将权限设置为可读可写可执行,命令如下:

mv allure-2.13.0 allure

chmod -R 777 allure

  1. 配置 allure 和 py 环境变量

cat >> /root/.bashrc << "EOF"

export PATH=/usr/local/src/allure/bin:$PATH

export PATH=/usr/local/src/py3.8/bin:$PATH

EOF

注:此处需要一行一行输入命令,每一行都需要回车

  1. 更新环境变量配置文件,命令如下:

source /root/.bashrc

  1. 验证环境变量配置,命令如下

allure --version

python3 --version

运行命令,结果如下图:

配置Java环境变量

因为allure依赖Java环境,所以我们要查看一下当前已经配置好的java环境变量

  1. 查看当前已经配置好的环境变量,命令如下:

export

如下图:

  1. 配置JDK环境变量,命令如下:

cat >> /root/.bashrc<< "EOF"

export PATH=$JAVA_HOME/bin:$PATH

EOF

  1. 配置完成后,更新环境变量,命令如下:

source /root/.bashrc

总结

本文提供了使用Docker搭建Jenkins、Python和Allure自动化测试环境的详细指南。通过使用Docker容器,我们可以轻松地设置和管理这些工具,为自动化测试提供一个稳定、可靠和一致的环境。希望本文对大家在搭建自动化测试环境方面有所帮助!

pipeline支持的指令

基本结构满足不了现实多变的需求。所以,Jenkins pipeline通过各种指令(directive)来丰富自己。指令可以被理解为对Jenkins pipeline基本结构的补充。

Jenkins pipeline支持的指令有:

• environment:用于设置环境变量,可定义在stage或pipeline部分。• tools:可定义在pipeline或stage部分。它会自动下载并安装我们指定的工具,并将其加入PATH变量中。• input:定义在stage部分,会暂停pipeline,提示你输入内容。• options:用于配置Jenkins pipeline本身的选项,比如options {retry(3)}指当pipeline失败时再重试2次。options指令可定义在stage或pipeline部分。• parallel:并行执行多个step。在pipeline插件1.2版本后,parallel开始支持对多个阶段进行并行执行。• parameters:与input不同,parameters是执行pipeline前传入的一些参数。• triggers:用于定义执行pipeline的触发器。• when:当满足when定义的条件时,阶段才执行。

在使用指令时,需要注意的是每个指令都有自己的作用域。如果指令使用的位置不正确,Jenkins将会报错。

配置pipeline本身(option指令)(用到的时候可以来参考这块)

options指令用于配置整个Jenkins pipeline本身的选项。根据具体的选项不同,可以将其放在pipeline块或stage块中。以下例子若没有特别说明,options被放在pipeline块中。

• buildDiscarder:保存最近历史构建记录的数量。当pipeline执行完成后,会在硬盘上保存制品和构建执行日志,如果长时间不清理会占用大量空间,设置此选项后会自动清理。

参考这个文档:https://weread.qq.com/web/reader/12f320007184556612f32b6k1ff325f02181ff1de7742fc

这节比较有用,可以参考下

在声明式pipeline中使用脚本

Jenkins pipeline专门提供了一个script步骤,你能在script步骤中像写代码一样写pipeline逻辑。

pipeline{agentanystages{stage(Hello){steps{script{defs = "Hello World"printlns}echoHello World
                                

Jenkins学习笔记

本学习笔记参考《Jenkins2.x实践指南》。