docker部署的jenkins配置(接口自动化)
目录
- 一、jenkins汉化
- 1.点击Manage Jenkins(系统管理),点击Plugins(插件)
- 2.安装Locale插件
- 二、jenkins配置allure报告
- 1.安装allure插件
- 2.配置
- 三、配置jenkins项目
- 1.新建任务
- 2.创建项目
- 3.源码管理
- 4.构建触发器
- 5.增加构建步骤
- 6.构建后操作-生成Allure报告
- 7.系统配置-邮件相关内容配置
- 8.构建后操作-邮件配置
- 9.再次执行构建
前提:项目在jenkins容器内能独立运行
一、jenkins汉化
1.点击Manage Jenkins(系统管理),点击Plugins(插件)

2.安装Locale插件
点击Available plugins(可用插件),输入Locale,勾选,点击安装,安装完成后,点击勾选空闲时重启jenkins

重启后,点击系统管理,点击系统配置

Ctrl+f搜索Locale,输入zh_CN,勾选,点击应用,点击保存

二、jenkins配置allure报告
1.安装allure插件
点击系统管理->插件管理

点击Available plugins(可用插件),输入:Allure,勾选,点击安装

安装完成,点击返回首页

2.配置
系统管理->全局工具配置

点击新增

输入别名,点击应用,点击保存
注意:Allure Commandline是专门解析Allure生成的json数据文件,然后生成Allure报告的插件

三、配置jenkins项目
1.新建任务

2.创建项目
输入项目名称,选择构建一个自由风格的项目,点击确定

3.源码管理
点击Git

SSH地址

4.构建触发器
①触发远程构建

在浏览器请求:http://192.168.1.1:9000/job/API_automation/build?token=8888
就会触发构建
②其他工程构建后触发
在这个jenkins中其他项目构建完成后,触发这个项目
③定时构建

每隔15分钟构建一次:
H/15 * * * *每隔5分钟构建一次
H/5 * * * *每3个小时构建一次
H H/3 * * *
④GitHub hook trigger for GITScm polling
研究中…
⑤轮询SCM

5.增加构建步骤
点击执行shell

填写shell命令(运行项目的命令)
python3 all.py

6.构建后操作-生成Allure报告
点击Allure Report

注意:这里的路径是相对路径,所以实际生效路径是:/var/jenkins_home/workspace/项目名称/+Path,Path且只能填写 /var/jenkins_home/workspace/项目名称/ 这个目录下的文件(注:项目名称,为新建任务时的任务名称),不能访问该目录以外文件。
我的实际地址为:/var/jenkins_home/workspace/API_automation/pytest/reports
所以这里的Path应填写:/pytest/reports

先运行下,检查是否能够正常运行,点击应用,点击保存,手动点击立即构建

点击构建任务1,查看详情

点击控制台输出

成功运行

点击Allure Report

成功生成

7.系统配置-邮件相关内容配置
系统管理->系统配置

找到Jenkins Location,输入系统管理员邮件地址

找到Extended E-mail Notification
smtp地址和端口

安全码

填写smtp服务器地址,填写端口,勾选Use SSL

点击添加,选择jenkins

填写发件人邮箱账号,发件人邮箱安全码,点击添加

点击下拉框,选择上刚才填写的内容

选择HTML样式,填写收件人邮箱,多个邮箱用英文,隔开

勾选邮件Debug日志,方便出现问题后查看日志

填写smtp服务器地址,勾选smtp认证,输入发件人邮箱,邮箱安全码,勾选SSL协议,输入端口

勾选测试邮件,填写测试收件人邮箱,点击测试,提示成功,成功收到测试邮件

点击应用,点击保存

8.构建后操作-邮件配置
点击项目配置

点击增加构建后操作步骤,选择Editable Email Notification

填写收件人邮箱,多个邮箱账号中间用英文,隔开

Content Type选择HTML,Default Subject填写邮件标题,输入Default Content(邮件模板)

邮件模板
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head><body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0"><table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"><tr><td>(本邮件由程序自动下发,请勿回复!)</td></tr><tr><td><h2><font color="#FF0000">构建结果 - ${BUILD_STATUS}</font></h2></td></tr><tr><td><br /><b><font color="#0B610B">构建信息</font></b><hr size="2" width="100%" align="center" /></td></tr><tr><a href="${PROJECT_URL}">${PROJECT_URL}</a><td><ul><li>项目名称:${PROJECT_NAME}</li><li>GIT路径:<a href="${GIT_URL}">${GIT_URL}</a></li> <li>构建编号:第${BUILD_NUMBER}次构建</li> <li>触发原因:${CAUSE}</li><li>系统的测试报告 :<a href="${PROJECT_URL}${BUILD_NUMBER}/allure">${PROJECT_URL}${BUILD_NUMBER}/allure</a></li><br /><li>构建日志:<a href="${BUILD_URL}console">${BUILD_URL}console</a></li></ul></td></tr><tr><td><b><font color="#0B610B">变更信息:</font></b><hr size="2" width="100%" align="center" /></td></tr><tr><td><ul><li>上次构建成功后变化 : ${CHANGES_SINCE_LAST_SUCCESS}</a></li></ul> </td></tr><tr><td><ul><li>上次构建不稳定后变化 : ${CHANGES_SINCE_LAST_UNSTABLE}</a></li></ul> </td></tr><tr><td><ul><li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li></ul> </td></tr><tr><td><ul><li>变更集:${JELLY_SCRIPT,template="html"}</a></li></ul> </td></tr><hr size="2" width="100%" align="center" /></table></body>
</html>
点击Advanced Settings

点击Add Trigger,点击Always


点击应用,点击保存

9.再次执行构建
成功

相关文章:
docker部署的jenkins配置(接口自动化)
目录 一、jenkins汉化1.点击Manage Jenkins(系统管理),点击Plugins(插件)2.安装Locale插件 二、jenkins配置allure报告1.安装allure插件2.配置 三、配置jenkins项目1.新建任务2.创建项目3.源码管理4.构建触发器5.增加构…...
qemu 运行 linux
文章目录 qemu 运行 linuxlinux 内核版本生成配置文件编译设备树编译内核报错与解决运行 linux附录脚本参考 qemu 运行 linux linux 内核版本 linux-6.5.7linux 内核下载地址 https://www.kernel.org/可以在浏览器中点击下载,也可以使用命令行下载 wget https:/…...
线程安全问题 的小案例
package Thread_api_test;public class ThreadSafety {//模拟线程安全问题public static void main(String[] args) {//1:创建一个账户对象 代表两个人的共享账户Account accnew Account("ICBC",10000);//创建两个线程 分别两个人 再去同一个账户里取钱10000new Draw…...
高效PPT制作与演示技巧大揭秘
PPT是职场必备技能,尤其在商务活动中,企业宣传、项目提案、路演宣讲……都需要用好PPT。然而,很多人的PPT效率低、效果差,客户不认可、老板不满意。 PPT不仅是办公软件,更是以汇报对象为中心、以共同的目标为导向、以…...
探究Socks5代理和代理IP在技术领域的多重应用
随着数字化时代的不断发展,网络工程师在跨界电商、爬虫数据采集、出海业务拓展以及游戏优化等领域扮演着关键角色。而Socks5代理和代理IP作为他们的得力工具,在这些领域中发挥着至关重要的作用。本文将深入探讨这两种技术在技术领域中的应用,…...
解决Vue2封装组件含有echarts时多次调用出现id重复问题
解决Vue2封装组件含有echarts时多次调用出现id重复问题 1、前言2、解决方法 1、前言 封装组件中使用echarts时,多次调用导致id重复,出现页面不渲染、数据覆盖等问题。 2、解决方法 把id改成动态传参(这里就不作代码展示了) 把i…...
IntelliJ IDEA 中 Maven 相关操作详解
在这篇文章中,我们将详细探讨 IntelliJ IDEA 中 Maven 的相关操作。我们将从以下三个角度进行讲解: IntelliJ IDEA 中 Maven 插件的 "Reimport All Maven Projects" 和 "Generate Sources and Update Folders For All Projects" 按…...
3分钟,快速上手Postman接口测试!
Postman是一个用于调试HTTP请求的工具,它提供了友好的界面帮助分析、构造HTTP请求,并分析响应数据。实际工作中,开发和测试基本上都有使用Postman来进行接口调试工作。有一些其他流程的工具,也是模仿的Postman的风格进行接口测试工…...
【微前端】single-spa 到底是个什么鬼
前言 说起微前端框架,很多人第一反应就是 single-spa。但是再问深入一点:它是干嘛的,它有什么用,可能就回答不出来了。 一方面没多少人研究和使用微前端。可能还没来得及用微前端扩展项目,公司就已经倒闭了。 另一方…...
log4j2同步日志引发的性能问题 | 京东物流技术团队
1 问题回顾 1.1 问题描述 在项目的性能测试中,相关的接口的随着并发数增加,接口的响应时间变长,接口吞吐不再增长,应用的CPU使用率较高。 1.2 分析思路 谁导致的CPU较高,阻塞接口TPS的增长?接口的响应时…...
vs studio Ctrl+D 快捷键失效(无法复制行)
打开 调试/选项/环境/键盘,然后设置如下 快去试试吧...
数据结构题型18-哈夫曼树和哈夫曼编码
文章目录 1 哈夫曼树定义2 哈夫曼树构造3 哈夫曼编码4 并查集 1 哈夫曼树定义 2 哈夫曼树构造 3 哈夫曼编码 4 并查集 暂不做补充。...
【广州华锐互动】VR模拟电力生产事故,切身感受危险发生
随着科技的不断发展,虚拟现实(VR)技术已经在各个领域中得到了广泛的应用。其中,VR技术在电力安全事故还原中的应用,不仅可以帮助我们更好地理解和预防事故的发生,还可以为事故调查提供更为准确和直观的证据…...
kafka安装和使用的入门教程
这篇文章简单介绍如何在ubuntu上安装kafka,并使用kafka完成消息的发送和接收。 一、安装kafka 访问kafka官网Apache Kafka,然后点击快速开始 紧接着,点击Download 最后点击下载链接下载安装包 如果下载缓慢,博主已经把安装包上传…...
享搭低代码平台:加速企业应用开发,轻松搭建表单和报表
在当今快节奏的商业环境中,企业需要快速响应市场需求并提供高效的解决方案。然而,传统的应用开发过程繁琐、耗时,并且需要专业的编程技能。为了解决这些问题,享搭低代码平台应运而生。本文将详细介绍享搭低代码平台的特点和优势&a…...
华为云应用中间件DCS系列—Redis实现(社交APP)实时评论
云服务、API、SDK,调试,查看,我都行 阅读短文您可以学习到:应用中间件系列之Redis实现(社交APP)实时评论 1 什么是DEVKIT 华为云开发者插件(Huawei Cloud Toolkit)࿰…...
01-spring源码概述
文章目录 1. Spring两大主要功能2. Bean的生命周期(部分生命周期,不包括销毁)2.1 两个重要接口及Aware接口2.2 创建对象的过程2.3 Bean的scope作用域2.4 Bean的类型2.5 获得反射对象的三种方式 3. 涉及的接口汇总4. 涉及设计模式 1. Spring两…...
datax 同步本地csv到mysql
csv 文件 /root/tempdata/us_population.csv NY,New York,8143197 CA,Los Angeles,3844829 IL,Chicago,2842518 TX,Houston,2016582 PA,Philadelphia,1463281 AZ,Phoenix,1461575 TX,San Antonio,1256509 CA,San Diego,1255540 TX,Dallas,1213825 CA,San Jose,912332csv2mysq…...
国内原汁原味的免费sd训练工具--哩布哩布AI
作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号:网络豆云计算学堂 座右铭:低头赶路,敬事如仪 个人主页: 网络豆的主页 目录 写在前面 一.体验与操作 1.注册 2.为何可…...
组合数(1) 用Vector实现获取所有组合数列表的QT实现
1.工程文件 QT coreCONFIG c17 cmdline# You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINES QT_DISABLE_DEPRECATED_BEFORE0x060000 # disables all the APIs deprecated before Qt 6.…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
