jenkins安装和配置
jenkins的war包下载地址
https://www.jenkins.io/download/ # https://www.oracle.com/java/technologies/downloads/ #下载java 17,21,25
windows安装jenkins
#前提,jdk已经安装(java -version 确认) 双击jenkins.msi安装 8081 #设置启动端口 C:\Program Files\Java\jdk-25.0.2\ #选择jdk位置 java -jar "C:\Program Files\Jenkins\Jenkins.war" #启动jenkins C:\ProgramData\Jenkins\.jenkins\secrets\initialAdminPassword #取管理员密码,第一次用的 等待一分钟 选择安装推荐插件 等待5分钟 设置用户名密码 admin/admin 邮箱:397873274@qq.com 直到完成 首次安装提示插件不存在则: 1. #页面会自动重启 Jenkins,跳过 “安装推荐插件” 报错界面,直接进入管理员登录页 http://127.0.0.1:8080/restart 2:下载 cloudbees-folder 插件(.hpi 文件) 国内镜像(速度快):https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/cloudbees-folder/latest/cloudbees-folder.hpi官方地址:https://updates.jenkins.io/download/plugins/cloudbees-folder/latest/cloudbees-folder.hpi 3:网页上传插件安装 登录管理员账号 → 系统管理 → 管理插件 → 高级 找到【上传插件】,选择刚下载的 cloudbees-folder.hpi,
redhat安装jenkins
sudo wget -O /etc/yum.repos.d/jenkins.repo \ https://pkg.jenkins.io/rpm-stable/jenkins.repo sudo yum upgrade # Add required dependencies for the jenkins package sudo yum install fontconfig java-21-openjdk sudo yum install jenkins sudo systemctl daemon-reload
启动jenkins(bat脚本)
java -jar "C:\Program Files\Jenkins\Jenkins.war" --httpPort=8088 pause
访问
http://127.0.0.1:8081/
给jenkins登录系统权限,以便能和本地CMD一样执行命令行,否则jenkins很可能找不到python chromedriver路径
services.msc #打开服务 找打jenkins,右键打开属性,选择登录 选择此账户,输入用户名:.\seven 密码/确认密码:922858 重启服务 重启jenkins命令行
新建项目
#1. 代码源配置: #方法1,本地代码:general->高级->使用自定义工作空间 D:\gitee\shortcoderKeyDriven D:\gitee\shortcoderPytest #方法2,gitee上的代码,勾选Git Repository URL:https://gitee.com/seven922858/appAutoTest_ApiDemos.git Credentials 点击添加 用户名:397873274@qq.com/seven922858 #搞不清哪一个了? 密码:22178698b356e965cc6e990a37e2b5c5 #gitee的私人令牌(个人设置-私人令牌) 指定分支:*/master #自动生成的,不用管 C:\ProgramData\Jenkins\.jenkins\workspace\appAutoTest_ApiDemos #存放的路径 #2. Build Steps->增加构建步骤->Execute windows batch commend python D:\gitee\shortcoderKeyDriven\run.py python D:\gitee\shortcoderPytest\run_tests.py python -m pytest --junitxml=report.xml 3. 增加构建后Publish JUnit test result report 测试报告(XML):report.xml # pytest命令行增加了“--junitxml=report.xml”会在根目录下生成report.xml 4. 增加构建后发送email Project From:397873274@qq.com Project Recipient List:397873274@qq.com Default Subject:$PROJECT_NAME Default Content:参考下面“Default Content(text/html)代码” Attachments: html/pytestHtml_report/image/* #只能写workspace下的相对路径,做斜杠 Triggers:Always Send To:Recipient List
邮件通知,没啥用,只是可以测试一下邮件通不通
系统管理员邮件地址:397873274@qq.com #系统配置->邮件通知 SMTP服务器:smtp.qq.com 用户默认邮件后缀:@qq.com 使用SMTP认证 用户名:397873274@qq.com 密码:dxwawynwiuclbiec #qq邮箱安全配置->POP3/IMAP/SMTP/Exchange/CardDAV 服务 勾选SSL,端口465 #qq邮箱必须要用SSL或TSL 测试邮箱是否发送成功 gneexwxmryffcaed #jenkins-extend-email #项目里也需要配置一个构建后操作 构建后操作->收件人:397873274@qq.com
系统配置-Extended E-mail Notification
SMTP server:smtp.qq.com SMTP Port:465 高级: Credentials 点击添加globle 选择Username with password,点击next 用户名:397873274@qq.com 密码:gneexwxmryffcaed #jenkins-extend-email授权码,qq邮箱安全配置->POP3/IMAP/SMTP/Exchange/CardDAV 服务 ID:可留空,用于脚本配置 #以下均不用配置,配置了项目里也不会自动继承,所以就算配置了也没有任何用处。 Default user e-mail suffix:@qq.com,也可以留空,但接收人邮箱名必须填全,不会自动添加后缀 Default Content Type:HTML(text/html) Default Recipients: 397873274@qq.com #默认接收人 Default Subject: $PROJECT_NAME #感觉也没啥用,每个项目有自己的 Default Content: 查看下面代码(html) Enable Debug Mode: 可勾选,以查看更详细的构建信息 Default Triggers: 选择Always/Failure-Any/Success
Default Content(text/html)代码,中文版
<!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> 本邮件由系统自动发出,无需回复!<br/> 各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br> <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td> </tr> <tr> <td><br /> <b><font color="#0B610B">构建信息</font></b> <hr size="2" width="100%" align="center" /></td> </tr> <tr> <td> <ul> <li>项目名称 : ${PROJECT_NAME}</li> <li>构建编号 : 第${BUILD_NUMBER}次构建</li> <li>触发原因: ${CAUSE}</li> <li>构建状态: ${BUILD_STATUS}</li> <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li> <li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li> <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li> <li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li> </ul> <h4><font color="#0B610B">失败用例</font></h4> <hr size="2" width="100%" /> $FAILED_TESTS<br/> <h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4> <hr size="2" width="100%" /> <ul> ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"} </ul> 详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/> </td> </tr> </table> </body> </html>
Default Content(text/html)代码,English Edition
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>${ENV, var="JOB_NAME"}-The ${BUILD_NUMBER}th build</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> This email is automatically sent by the system and does not require a reply!<br/> Dear colleagues, hello everyone. The following is the build information of the ${PROJECT_NAME } project.</br> <td><font color="#CC0000">Building Result - ${BUILD_STATUS}</font></td> </tr> <tr> <td><br /> <b><font color="#0B610B">Building Information</font></b> <hr size="2" width="100%" align="center" /></td> </tr> <tr> <td> <ul> <li>Project Name : ${PROJECT_NAME}</li> <li>Building Number: The ${BUILD_NUMBER}th build</li> <li>Triggering Cause: ${CAUSE}</li> <li>Building Status: ${BUILD_STATUS}</li> <li>Building Log: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li> <li>Building Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li> <li>Workspace: <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li> <li>Project Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li> </ul> <h4><font color="#0B610B">Failer Case</font></h4> <hr size="2" width="100%" /> $FAILED_TESTS<br/> <h4><font color="#0B610B">Recently Submitted(#$SVN_REVISION)</font></h4> <hr size="2" width="100%" /> <ul> ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"} </ul> Detailed submission: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/> </td> </tr> </table> </body> </html>

浙公网安备 33010602011771号