• 1
  • 1
分享
  • 基于Docker环境下的Jenkins搭建及使用——软件测试圈
  • 曼倩诙谐 2022-11-24 13:19:33 字数 3127 阅读 1939 收藏 1

  性能测试框架搭建+接口测试+渗透测试+测试开发+测试面试指南,点击下方链接填写测试行业调查问卷,任选两个带回家。链接:http://vote.51testing.com/


  Jenkins作为目前持续集成中使用较为广泛的工具,在实际生产过程中通过结合众多的插件,从而实现工程的持续构建、持续部署。

  而传统构建的应用场景大多数运行在虚拟机或者独立的服务器上,在资源开销和管理维护较为复杂。相比于独立的服务器/虚拟机而言,容器不仅部署方便,且占用资源较少。

  Docker作为目前作为业内最火的一个容器解决方案之一,通过将两者结合,从而实现服务的轻量化,并通过Docker管理Jenkins的资源。下面通过Docker部署Jenkins、Jenkins配置以及实例构建,讲述Jenkins的基本使用。

  Docker下安装Jenkins

  注:因为Jenkins容器里的用户是Jenkins,而主机用户不是Jenkins,就算是root也一样会报错:/var/jenkins_home/copy_reference_file.log: Permission denied,这个时候就需要在主机上面给主机地址赋予访问Jenkins容器的权限,Jenkins内部用的是uid 1000的user。

  -privileged=true让容器具有root权限,便于进入容器

  -p 9090:8080指定主机9090端口映射到Jenkins容器的8080端口(Jenkins的web访问端口)

  -v /home/jenkins:/var/jenkins_home容器/var/jenkins_home路径挂载到宿主机/home/jenkins路径

  启动Jenkins

  浏览器输入http://ip:9090访问Jenkins首页:

图片 1.png

  密码地址

  容器内:/var/jenkins_home/secrets/initialAdminPassword

  宿主机:/home/jenkins/secrets/initialAdminPassword

  进入插件下载页面,下载插件:

图片 2.png

  Jenkins插件下载

  再进入插件下载管理页面http://ip:9090/pluginManager/advanced,使用https://cdn.jsdelivr.net/gh/jenkins-zh/update-center-mirror/tsinghua/current/update-center.json替换原来的json。

  配置Jenkins

图片 3.png

  修改Jenkins时间

  查看宿主机系统时间:

date -R

  进入Jenkins容器查看时间:

docker exec -it -u root 容器id /bin/bash # 进入容器
date -R # 查看容器内时间
echo Asia/Shanghai >/etc/timezone # 容器内创建Asia时区文件
docker cp /usr/share/zoneinfo/Asia/Shanghai 容器id:/etc/localtime  # 退出容器并复制宿主机中localtime到容器内

  配置Python3环境

  Jenkins容器内并没有Python3环境,需要自己安装:

docker exec -it -u root 容器id /bin/bash #进入容器
cat /etc/issue #查看当前操作系统

  注:Debian系统,这里使用apt-get代替yum。

apt-get update #更新apt-get
#apt-get安装依赖包
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
# 安装Python3
cd /var/jenkins_home
mkdir python3
cd python3
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz # 获取python-3.6.8.tgz包
tar -xvf Pyhthon-3.6.8.tgz #解压
cd Python-3.6.8 # 切换到Python-3.6.8目录
#执行make和make install安装
./configure --prefix=/var/jenkins_home/python3 --with-ssl
make
make install
# 添加软连接
# 添加Python3软连接
ln -s /var/jenkins_home/python3/bin/python3.6 /usr/bin/python3
# 添加pip3软连接
ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3
# 安装所需Python库
pip3 instal requests pytest-html pytest

  配置HTML报告/Allure报告

  HTML报告配置

  HTML Publisher插件下载,系统设置-->插件管理-可选插件,搜索:HTML Publisher。

图片 4.png

  Allure报告配置

  下载allure:https://github.com/allure-framework/allure2/releases/download/2.14.0/allure-2.14.0.tgz。

docker cp /home/allure-2.14.0.tgz 容器id:/var/jenkins_home # 拷贝到容器内
cd /var/jenkins_home
mkdir allure
cd /var/jenkins_home/allure
tar -xvf allure-2.14.0.tgz # 解压allure

  安装Allure Jenkins Plugin插件,系统管理插件管理-可选插件,搜索Allure:

图片 5.png

  安装完成后,全局工具配置>Allure Commandline安装allure命令行工具,选择容器内路径。

  简单使用-实例构建

  构建job。

图片 6.png

  参数化构建

  系统设置-->插件管理-可选插件,搜索Git Parameter.

图片 7.png

  安装完成后,job中勾选参数化构建过程。

  注:这里是生成allure报告的配置,如果是要生成HTML报告则使用如下命令:

pytest test_demo.py --html=report/result.html --self-contained-html

  构建后操作

图片 8.png

  path地方写Aallure报告的地址,与执行shell地方生成的报告地址保持一致即可。

图片 9.png

  注:上述是生成allure报告配置,生成HTML配置如下:

图片 10.png

图片 11.png

  注:HTML添加css样式。

  安装Startup Trigger和Groovy插件

  在Job配置页面构建触发器勾选Build when job nodes start

图片 12.png

  增加构建步骤Execute system Groovy script

图片 13.png

  配置成功

  配置成功后,参数化构建:

图片 14.png

  控制台输出

图片 15.png

  Allure报告查看

图片 16.png

图片 17.png

  HTML报告查看

图片 18.png

图片 19.png



作者:董瑞华    

来源:http://www.51testing.com/html/72/n-7793772.html


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   软件测试行业是我国近些年兴起的行业之一,因此很多人都想要知道目前软件测试就业前景怎样?值不值得入?  其实就软件测试前景可以从以下几个方面来分析:  1、互联网发展需求  在这万物互联、生活事事都软件化智能化的时代,软件测试不管何时何地都会占有一席重要之地的,所以也许其他行业会被替代,但是软件测试不会。  2、需求量大  基本上任何一个成型的互联网公司都是需要软件测试工程师的,而根据有关数据的调查,软件测试行业每年以30万人才缺口递增,所以整个市场缺口是非常大的。  3、入门门槛相对较低  零基础可入门,代码能力要求相对来说较低,就拿小编的朋友来说,他在做测试员工作之前,是一家小公司的运营...
            0 0 783
            分享
          •   安全性测试(Security Testing)是指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程,其主要目的是查找软件自身程序设计中存在的安全隐患,并检查应用程序对非法侵入的防范能力,安全指标不同,测试策略也不同。  但安全是相对的,安全性测试并不能最终证明应用程序是安全的,而只能验证所设立策略的有效性,这些对策是基于威胁分析阶段所做的假设而选择的。例如,测试应用软件在防止非授权的内部或外部用户的访问或故意破坏等情况时的运作。  软件安全是软件领域中一个重要的子领域,系统安全性测试包括应用程序和操作系统两个方面的安全性。而系统安全性又包括两个方面的测试:一是软件漏洞,设计上的缺陷或程...
            0 0 1067
            分享
          •   Meta 公司昨日发布公告,宣布和环球音乐集团(Universal Music Group)深化合作,达成了新的多年合作协议。  Meta 公司在公告中表示,新协议反映了双方共同致力于保护人类创作者和艺术,包括确保艺术家和词曲作者得到公平报酬,帮助艺术家和词曲作者在 Meta 平台上提供更广阔的发展空间和商业机遇。  两家公司并未披露协议细节,不过双方表示会进一步推动 UMG 艺术家和环球音乐出版集团歌曲作者在 Facebook、Instagram、Messenger、Horizon、Threads 以及 WhatsApp(首次出现)等 Meta 平台上创作和运营。  从报道中获悉,两家公...
            0 0 473
            分享
          • 1、引言在上一章, 我封装了http_service,  如果你不知道的话, 直接点击《Python3,接口自动化框架之封装http_service》跳转去看。 当然,也有小伙伴私下跟我说, 没想到, http_service的封装, 会这么简单。其实... 确实... 不难...今天,我们继续来封装接口自动化框架。在封装之前, 我们先想一个问题:你喜欢使用脚本来维护测试用例, 还是喜欢用excel来维护测试用例?如果你的接口参数经常改变, 使用脚本来维护,必然不是一个最高效的方式, 这个时候, excel的维护方式,就排上用场了。 让代码直接读取exc...
            1 0 1542
            分享
          • Q #1) MySQL 事务是原子的吗?答:是的,事务是通过概念在 MySQL 中实现原子性的。atomic 的简单含义是——ALL 或 NONE 和 MySQL 事务完全支持这一点。在这里,如果没有错误,那么所有的语句都会被执行。但是,如果出现任何差异或错误,则不会执行事务中的任何语句。Q #2) 如何回滚 MySQL 事务?答:事务可以提交或回滚/恢复。要恢复事务的更改,您只需在执行 COMMIT 之前运行 ROLLBACK 命令。例如,参考下面的事务,我们使用 ROLLBACK 来恢复事务期间所做的更改。START TRANSACTION; --statement1 ...
            0 0 1802
            分享
      • 51testing软件测试圈微信