Linux上安装Jenkins并展示allure报告

news2024/9/30 4:19:04

1. 确认安装正确的java版本

到官网War Jenkins Packages查看Jenkins版本匹配的java版本,我这里选择安装java11

使用java --version命令是否已安装java版本

 java --version

图片

如上图所示,暂未安装java版本,我这里选择安装java11(jenkins是java项目,因此需要安装java环境)

 apt install openjdk-11-jre-headless

安装成功后,再使用java --version命令确认版本

2. 下载Jenkins的安装war包

通过公司镜像源获取Jenkins的安装war包

wget https://mirrors.jaguarmicro.com/jenkins/war/2.428/jenkins.war

3. 启动Jenkins服务

在jenkins.war下载目录,后台直接启动jenkins服务,Linux服务器重启后,则需要重新执行该命令启动jenkins服务

 nohup java -jar jenkins.war --httpPort=8080 &

4. 登录Jenkins的web界面进行初始化配置

浏览器中登录如下地址,即可访问Jenkins进行配置。http://linux机器IP地址:8080,本次安装的Linux的IP地址为10.1.70.149,所以登录如下地址即可。

http://10.1.70.149:8080

第一次登录界面,根据提示到Linux服务器上获取密码。

图片

cat /root/.jenkins/secrets/initialAdminPassword

图片

因为本Linux服务器不通外网,只能联通公司镜像源,所以如下截图中选择跳过插件安装。

图片

创建第一个管理员用户,这里创建的用户名/密码为itest/qwe123!@#

图片

图片

5. 配置插件源为公司内部源

5.1 web界面先配置公司内部源

Dashboard→Manage Jenkins→Manage Plugins,找到Advanced settings,如下几个截图所示。

图片

图片

图片

下滑到更新源区域输入公司内的源的url:http://mirrors.jaguarmicro.com/jenkins/updates/update-center.json 并且点击提交

图片

5.2 Linux服务器上修改配置文件中的源地址

上述步骤操作一两分钟后,登录到Jenkins服务器,查看/root/.jenkins/目录下生成updates文件夹

图片

修改/root/.jenkins/updates下的 default.json文件,将https://updates.jenkins.io/download全部替换为http://mirrors.jaguarmicro.com/jenkins

cd /root/.jenkins/updates sed -i 's/https:\/\/[updates.jenkins.io](http://updates.jenkins.io)\/download/http:\/\/[mirrors.jaguarmicro.com](http://mirrors.jaguarmicro.com)\/jenkins/g' default.json

然后重启Jenkins,重启后,后续就可以安装各种插件了。

图片

6. 安装需要的插件

6.1 安装中文显示插件

Dashboard→Manage Jenkins→Manage Plugins,找到Available plugins,在搜索框中搜索chinese,选中后点击 Install即可。

安装好后,重启Jenkins,页面即可显示中文。

6.2 安装pipeline相关插件

Dashboard-->系统管理-->插件管理→Available plugins,在搜索框中输入pipeline,在列出的相关插件中选择如下后,点击安装。

图片

安装好之后的效果如下,新建任务时,有如下流水线的选项。

图片

6.3 安装blue ocean插件

Dashboard-->系统管理-->插件管理→Available plugins,在搜索框中输入blue ocean,在列出的相关插件中选择如下后,点击安装。

图片

安装好之后的效果如下,Dashboard页面出现“打开 Blue Ocean”选项。

图片

6.4 安装pipeline stage view 插件

Dashboard-->系统管理-->插件管理→Available plugins,在搜索框中输入pipeline stage view,在列出的相关插件中选择如下后,点击安装。

图片

安装好之后的效果如下,在任务显示界面出现阶段视图的展示。

图片

6.5 安装maven和junit插件

Dashboard-->系统管理-->插件管理→Available plugins,在搜索框中输入junit,在列出的相关插件中选择如下后,点击安装。

图片

maven安装后的效果如下,新建任务时,有如下构建一个maven项目的选项。

图片

junit插件的效果暂时没有看到。

7. 配置 pub key

即生成测试服务器的ssh key,将其添加到git代码托管平台。这样jenkins流水线可以直接拉取代码了。

8. allure报告集成

8.1 allure插件安装

安装Allure Jenkins Plugin插件

图片

8.2 配置allure commandline

Dashboard-->系统管理→全局工具配置,选择Allure Commandline安装,输入节点的allure安装目录

图片

8.3 配置流水线显示allure报告

  1. pipeline {

  2. parameters {

  3. string defaultValue: 'pytest', name: 'test_type'

  4. }

  5. //agent any

  6. agent { label 'windows调试机'}

  7. stages {

  8. stage('Build') {

  9. steps {

  10. echo "test_type: ${params.test_type}"

  11. echo "Build"

  12. }

  13. }

  14. stage('Deliver') {

  15. steps {

  16. echo "test_type: ${params.test_type}"

  17. echo "Deliver"

  18. }

  19. }

  20. stage('Pull Test Code') {

  21. steps {

  22. deleteDir()

  23. checkout scmGit(branches: [[name: '*/PX2-test']], extensions: [], userRemoteConfigs: [[url: 'ssh://git@bb.jaguarmicro.com:7999/product/sw_itest.git']])

  24. }

  25. }

  26. stage('Test') {

  27. steps {

  28. echo "test_type: ${params.test_type}"

  29. echo "test"

  30. bat 'dir'

  31. }

  32. }

  33. stage('Test-Modern-Net-SIM') {

  34. steps {

  35. bat 'pytest -s tests/pytestCase/test_netdev.py::TestModernNetDev --env-type=SIM --env-sub-type=all -vs --alluredir=./report/result-modern-net --clean-alluredir'

  36. }

  37. }

  38. stage('Test-Modern-Blk-SIM') {

  39. steps {

  40. bat 'pytest -s tests/pytestCase/test_blkdev.py::TestModernBlkDev --env-type=SIM --env-sub-type=all -vs --alluredir=./report/result-modern-blk --clean-alluredir'

  41. }

  42. }

  43. stage('Test-NVMe-SIM') {

  44. steps {

  45. bat 'pytest -s tests/pytestCase/test_nvmedev.py::TestNVMeDev --env-type=SIM --env-sub-type=all -vs --alluredir=./report/result-nvme --clean-alluredir'

  46. }

  47. }

  48. }

  49. post('Results') { // 执行之后的操作

  50. always{

  51. script{// 集成allure,目录需要和保存的results保持一致,注意此处目录为job工作目录之后的目录,Jenkins会自动将根目录与path进行拼接

  52. allure includeProperties: false, jdk: '', report: 'report/allure-report', results: [[path: 'report/result-modern-net'],[path: 'report/result-modern-blk'],[path: 'report/result-nvme']]

  53. }

  54. }

  55. }

  56. }

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2178559.html

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

相关文章

基于SpringBoot+Vue+MySQL的在线酷听音乐系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着互联网技术的飞速发展,网络已成为人们日常生活中不可或缺的一部分。在线音乐服务因其便捷性和丰富性,逐渐成为用户获取音乐内容的主要渠道。然而,传统的音乐播放平台往往存在歌曲资源有限…

进程组、会话、守护进程和线程的概念

1.进程组和会话 1.1 概念和特性 进程组,也称之为作业。BSD于1980年前后向Unix中增加的一个新特性。代表一个或多个进程的集合。每个进程都属于一个进程组。在waitpid函数和kill函数的参数中都曾使用到。操作系统设计的进程组的概念,是为了简化对多个进…

微信小程序-数据模型与动态赋值

首先新建一个小程序项目. 这边有创建基础项目的流程:从0新建一个微信小程序实现一个简单跳转_小白开发小程序源代码-CSDN博客 一共两步: 1.建立页面的 数据模型 和 默认赋值: 默认赋值: 2.接收输入框的新文案,动态替换上面的文案展示 //文件 testUI.js增加方法:onInputChan…

当 ucx --with-cuda 时做了什么

1,找一只活麻雀,下载编译 ucx git clone https://github.com/openucx/ucx.git cd ucx/ git checkout v1.16.0 ./autogen.sh ./autogen.sh mkdir build cd build ../contrib/configure-devel --with-cuda/usr/local/cuda --without-rocm --without-java …

JavaScript 知识点 - 作用域(变量提升、垃圾回收机制、闭包)

一、作用域 1、基本概念 是什么? 指变量、对象和函数在【代码中的可访问性范围】。 有什么用? 理解作用域对【编写高效和无错误的代码】至关重要 分类 局部作用域(函数作用域、块作用域)、全局作用域 涉及到那些知识点 作用域链、JS垃圾回收机…

在线支付系统

一、系统概述 本在线支付系统基于 Servlet 技术构建,旨在为用户提供安全、便捷的支付服务。系统具备简洁的用户界面和高效的支付处理能力,满足用户在各种场景下的支付需求。 二、主要功能 首页登录注册: 用户可以在首页进行登录和注册操作。注…

MacBook 使用 brew 安装 MySQL

目录 (1)准备工作1.1 更新 brew (2)正式安装2.1 安装MySQL:2.2 启动mysql (3)初始化数据库3.1 选择验证密码组件3.2 密码强度3.3 删除匿名用户3.4 禁用root用户远程连接3.5 删除test数据库3.6 重…

C语言 17 宏定义

前面认识了#include指令,接着来看#define指令,它可以实现宏定义。宏是啥意思? 把参数批量替换到文本中,这种实现通常称为宏(macro)或定义宏 (define macro) 可以通过#define来定义宏,规则如下&a…

Cyber Weekly #26

赛博新闻 1、Meta发布最强AR眼镜 Meta Connect 2024大会展示了多款新产品和技术,包括更便宜的Quest 3S系列AR眼镜、新功能丰富的Meta Rayban眼镜、OrionAR眼镜原型机,以及月活5亿用户的Meta AI。其中,OrionAR眼镜以其先进的交互体验和强大的…

鸿蒙开发(NEXT/API 12)【硬件(传感器开发3)】传感器服务

场景介绍 当设备需要获取传感器数据时,可以使用sensor模块,例如:通过订阅方向传感器数据感知用户设备当前的朝向,通过订阅计步传感器数据统计用户的步数等。 函数说明 名称描述OH_Sensor_GetInfos(Sensor_Info **infos, uint32…

算力运力解决方案:构建未来智算新生态

中国联通国际有限公司产品之算力运力解决方案:构建未来智算新生态 在当今这个数据爆炸、技术日新月异的时代,算力已成为推动社会进步和产业升级的关键力量。中国联通国际有限公司紧跟时代步伐,依托其强大的网络资源和深厚的技术积累&#xf…

Linux进程间的通信(四)System-V共享内存

什么是共享内存 共享内存,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。 不同进程之间共享的内存通常为同一段物理内存。进程可以将同一段物理内存连接到他们自己的地址空…

深度学习后门攻击分析与实现(二)

前言 在本系列的第一部分中,我们已经掌握了深度学习中的后门攻击的特点以及基础的攻击方式,现在我们在第二部分中首先来学习深度学习后门攻击在传统网络空间安全中的应用。然后再来分析与实现一些颇具特点的深度学习后门攻击方式。 深度学习与网络空间…

Node.js安装Express,Node.js支持Typescript以及Express支持Typescript的步骤

1. Node.js 安装Express 运行如下命令: $ mkdir express-demo $ cd express-demo$ npm install express $ npm install body-parser //(可选)中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据 $ npm install cookie-parser //(可选)通过req.cookies…

怎么用gitee做一个图片仓库,在md文档中用这个图片网络地址,然后显示图片

痛因:我为什么要这样做,呃,我一开始图片都是存本地地址的,放在和这个md文档同级的assets文件夹下面,这样子确实当时很方便,复制粘贴什么也不用管,但是想把这个文档分享给别的人的时候&#xff0…

Windows打开HDF5图像:HDFView软件的下载、安装

本文介绍在Windows电脑中,下载、安装用以查看HDF5图像数据的软件HDFView的方法。 HDF5(Hierarchical Data Format 5)是一种用于存储和管理大量科学数据的文件格式,其由HDF Group开发和维护,广泛应用于科学计算、工程、…

ESP8266wifi模块的使用

文章目录 概要整体架构流程技术名词解释具体配置过程小结 概要 本文旨在介绍ESP8266,做为客户端 电脑做为服务端,通过TCP/IP协议在同一个局域网下通过WiFi进行数据交互 设备选用 esp8266 软件选择 安信可串口调试助手 网络调试助手 (若没有软件可私…

OpenCV threhold()函数

OpenCV threhold()函数的主要用途是将灰度图转换为二值图像,实现灰度图的二值化,在机器视觉中使用频度较高,如尺寸量测,物体识别等。其原型如下: 函数参数: src 输入数组(多通道、8 位或 32 位浮点&#xf…

SpringBoot3脚手架

MySpringBootAPI SpringBoot3脚手架&#xff0c;基于SpringBoot3DruidPgSQLMyBatisPlus13FastJSON2Lombok&#xff0c;启动web容器为Undertow(非默认tomcat)&#xff0c;其他的请自行添加和配置。 <java.version>17</java.version> <springboot.version>3.3…

项目集成SpringSecurity框架

目录 项目没集成SpringSecurity框架的实现 项目之前的登录接口 LoginReqVo 接收前端的数据类型 LoginRespVo返回给前端的数据 项目集成SpringSecurity 第一步:导入依赖 第二步:创建security包结构 第三步&#xff1a;实现认证过滤器 第一步&#xff1a;自定义认证过滤器…