Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试

简介: Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试

如果你还想从头学起 Docker,可以看看这个系列的文章哦!

https://www.cnblogs.com/poloyy/category/1870863.html

 

搭建 Jenkins 容器


就是实战第一篇文章:https://www.cnblogs.com/poloyy/p/13954637.html

 

Jenkins 初始化流程


访问 Jenkins

查看本机 IP

ifconfig

 

查看容器运行端口

docker ps

image.png

我的是用主机 80 端口映射到容器的 8080 端口

 

浏览器访问 Jenkins

http://ip:80

 

查看管理员密码

进入到页面


image.png

查看密码有两种方式

 

第一种:查看容器日志

docker logs jenkins1

image.png

打码那一行就是密码哦

 

第二种: 去文件夹查看

cat /var/jenkins_node/secrets/initialAdminPassword

image.png

  • 因为我创建 Jenkins 容器时,将主机的 /var/jenkins_node 目录映射了容器的 /var/jenkins_home 目录
  • 所以可以直接在主机查到管理员密码,而无需进入容器再查看

 

初始化流程

image.png

创建管理员用户

自己配啥记住就行了,没啥特别要求

image.png

实例配置

默认会给一个地址的,不改也可以

image.png

配置完成

image.png


进入主界面

image.png


下载插件


需要的插件 gitlab、gitlab hook、allure

image.png

image.png

image.png

在它安装完后,自己重启 Jenkins 容器

docker restart jenkins1

 

将插件源切换国内源

直接看这个教程:https://www.cnblogs.com/poloyy/p/12785401.html

 

Jenkins 汉化

直接看这个教程:https://www.cnblogs.com/poloyy/p/13955209.html

 

Jenkins 全局工具设置


image.png


配置 JDK

image.png


配置 Git

image.png


配置 allure

image.png

应用保存!即可!

 

Jenkins 邮件功能测试

image.png

配置 Extended E-mail Notification

image.png


自定义电子邮=件通知的默认收件人列表

image.png

  • 可以在项目中使用 $DEFAULT_RECIPIENTS ,来包含此默认收件人列表(下面创建项目时讲到这个变量)
  • 若要向某人抄送或密件抄送,不是将其放在“收件人”列表中,请在电子邮件地址之前添加 cc: 或密件抄送 bcc: (例如:cc:someone@example.com,bcc:bob@example.com)

 

配置邮箱通知


image.png

使用 Jenkins 实现自动化测试


将项目放到主机映射到容器的目录下

通过  xftp 将项目上传到主机

image.png

有 28 个测试用例都跑通了哦

 

Jenkins 创建任务工程

新建任务

image.png

image.png

Jenkins 任务配置构建后操作

在完成系统设置后,还需要给需要构建的项目进行邮件配置

image.png

image.png

image.png

重点:这里就有 $DEFAULT_RECIPIENTS ,上面也有讲到这个环境变量,默认收件人列表,如果需要添加新的收件邮件,需要用 , 隔开

image.png

邮件模板

直接复制粘贴到内容框就行

<!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>    
                     <li>测试报告: <a href="${PROJECT_URL}allure">${PROJECT_URL}allure</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>


image.png

image.png

最后保存

 

进行第一次构建

image.png

查看控制台输出

image.png

邮件发送成功!!

 

Jenkins 任务配置构建操作

主要两个任务

  1. 配置 pytest 命令
  2. 生成 allure 报告

 

配置 pytest 命令

image.png

生成 allure 报告

image.png

image.png

这张图是重点哦

 

保存!!就成功了!

 

进行第二次构建

image.png

相关文章
|
10月前
|
数据采集 JSON JavaScript
Cypress 插件实战:让测试更稳定,不再“偶尔掉链子”
本文分享如何通过自定义Cypress插件解决测试不稳定的痛点。插件可实现智能等待、数据预处理等能力,替代传统硬性等待,有效减少偶发性失败,提升测试效率和可维护性。文内包含具体实现方法与最佳实践。
|
11月前
|
存储 关系型数据库 测试技术
玩转n8n测试自动化:核心节点详解与测试实战指南
n8n中节点是自动化测试的核心,涵盖触发器、数据操作、逻辑控制和工具节点。通过组合节点,测试工程师可构建高效、智能的测试流程,提升测试自动化能力。
|
10月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
849 52
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
10月前
|
XML Java 测试技术
《深入理解Spring》:IoC容器核心原理与实战
Spring IoC通过控制反转与依赖注入实现对象间的解耦,由容器统一管理Bean的生命周期与依赖关系。支持XML、注解和Java配置三种方式,结合作用域、条件化配置与循环依赖处理等机制,提升应用的可维护性与可测试性,是现代Java开发的核心基石。
|
10月前
|
人工智能 自然语言处理 JavaScript
Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体
Playwright MCP结合AI智能体,革新UI回归测试:通过自然语言驱动浏览器操作,降低脚本编写门槛,提升测试效率与覆盖范围。借助快照解析、智能定位与Jira等工具集成,实现从需求描述到自动化执行的闭环,推动测试迈向智能化、民主化新阶段。
|
11月前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
1264 11
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
Web App开发 JavaScript Java
自动化测试的利剑:Selenium WebDriver入门与实践
【9月更文挑战第21天】在软件开发的海洋中,自动化测试犹如一艘船,帮助开发者们快速航行至质量保证的彼岸。本文将作为你的罗盘,指引你了解和掌握Selenium WebDriver这一强大的自动化测试工具。通过深入浅出的方式,我们将探索Selenium WebDriver的基本概念、安装过程以及编写简单测试脚本的方法。无论你是刚接触自动化测试的新手,还是希望提升测试技能的开发者,这篇文章都将为你提供有价值的指导。
|
Web App开发 Java 测试技术
自动化测试的利器:Selenium WebDriver入门与实践
【9月更文挑战第8天】在软件开发的海洋中,测试是确保我们不会溺水的那根救生索。Selenium WebDriver,作为自动化测试的明星工具,让这根救生索更加结实可靠。本文将带你快速上手Selenium WebDriver,从基础设置到实际操作,再到实战演练,让你的开发之旅更加平稳顺畅。

推荐镜像

更多