SVN+PyCharm+Jenkins+邮件报告发送,实现自动化测试的持续集成,超详细建议收藏!!

本文档主要以Win为基础,搭建Jenkins本地环境,为自动集成提供运行条件

Linux搭建参考:在 Linux 上搭建 Jenkins,自动构建接口测试 · TesterHomeicon-default.png?t=N7T8https://testerhome.com/topics/35128

1. 相关工具:

  1. Jenkins官网:Jenkins download and deployment

    1、建议下载LTS for稳定版本
    2、Jenkins于2022年已放弃Java8。截止目前(2023年10月份),仅支持Java11-Java17,下载时需自行甄别
    ​
    需要用到的插件(后面会细说):
    1、HTML Pulisher   
    2、Email Extension Plugin
    3、Subversion
  2. TortoiseSVN

    部门用的版本管理工具为SVN,所以就拿SVN来做示例。其他的可自行找资料参考,网上有很多。
  3. Pycharm

    我的脚本是用python写的,所以这里用pycharm示例了。主要用来进行脚本版本管理,推送脚本至SVN库,交给Jenkins服务运行

2. Pycharm配置

在pycharm中进行svn版本管理

前提准备:

svn安装路径bin目录配置path环境变量

pycharm中:

1、打开pycharm设置 配置路径为svn安装目录下的svn.exe程序

2、添加需要checkout的脚本地址:

注:
1、第一次添加会提示配置凭证,svn的证书和密码
2、仓库配置完毕后,检查一下是否可以正常提交更新
3、先在终端尝试运行是否正确,避免集成到Jenkins中还要调试

3. Jenkins配置

1.JDK下载配置
官网地址:https://www.oracle.com/java/technologies/downloads/archive/#JavaSE
注意:

开头已提到过,Jenkins于2022年已放弃Java8。截止目前(2023年10月份),支持Java11-Java17,下载时需注意适配新版Jenkins的JDK版本

下载JDK后配置bin目录至环境变量

JAVA_HOME:

path:

检查:

2.Jenkins下载

1.下载最新版本的war包

官网:Jenkins download and deployment

2.进入war包所在目录,命令行运行(运行之后,黑窗口不要关闭)

java -jar jenkins.war   默认端口是8080
java –jar jenkins.war   --httpPort=8888 可以用httpPort来指定端口

3.在浏览器中访问http://localhost:8080/

1.首次进入需要输入秘钥,一般在启动Jenkins的黑窗口会找到,是一串无规则字符。如果不知道是哪个,就在Jenkins的页面提示的路径,找到文件,复制秘钥进行登录
​

4..进入Jenkins之后,选择 建议安装的插件 选项,等待插件安装完毕

5.安装完成后,会提示设置用户名和密码,进行后期登录使用

6.配置完成后,进入Jenkins

3.Jenkins安装插件

进入:Manage Jenkins ---> Plugins ---> Available plugins

下载:

1.HTML Pulisher
可用于将构建生成的 HTML 报告发布到作业和构建页面。

如图我是已经下载好的:

2.Email Extension Plugin

下载好之后,重启服务

这里可以用以下启动命令:

防止乱码启动:
java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war

4.System中邮箱配置

1. smtp服务

1.去邮箱官网,开启smtp服务并且新增授权码(这里示例163邮箱

注:获取到的授权码保存好,只显示一次,等下要在Jenkins中配置

同时记下SMTP服务器:smtp.163.com

2.System配置

1、Jenkins中 Manage Jenkins ---> System

管理员邮箱:

Extended E-mail Notification配置:

邮件通知:

然后,去凭据添加认证

位置:Manage Jenkins ---> Credentials

添加全局凭据

写入邮箱账号和授权码

配置完:

返回Jenkins中 Manage Jenkins ---> System ---> Extended E-mail Notification

添加凭证并勾选 Use SSL(否则无法发送邮件)

注:这里凭证有个大坑,通过发送测试邮件测试配置测试成功,控制台也提示发送成功,但没有接收到邮件,是凭证的问题,凭证需要是新建的,如果是用的之前创建好的凭证,删掉重新创建一个。

下方在邮件通知里也设置一下:

可以测试一下发送

没问题就点击应用、保存

5. 项目中配置

因为要配置svn仓库URL,所以要先去下载一下Subversion插件,这里不过多赘述

  1. 新建item

进入配置:

配置仓库地址

添加凭证:

可以构建一下触发器

增加构建步骤,配置运行命令

注:这里是本地windows作为服务,如果在Linux,需要更改为shell

添加发布报告模块:

新增

进行邮件配置:

Default Content可以设置邮件模版

如果jenkins在服务器上运行,可以使用网上的模版发邮件给公司内部人员查看,这样他们就可以直接通过邮件中的URL查看想要查看的信息

<!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>      
               <p>总数:${TOTAL} </br> 
                      成功:${PASSED}  </br> 
                      失败:${FAILED} </br> 
                      跳过:${SKIPPED}</p >
                      异常:${ERROR}  </br> 
               <p>运行成功率:${SUCCESSFUL}  运行时长:${TOTAL_TIMES}</p >
</tr>  
        <tr>    
            本邮件由系统自动发出,无需回复!<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</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>报告Url :<a href="${PROJECT_URL}${BUILD_NUMBER}/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">最近提交(#$GIT_REVISION)</font></h4>
<hr size="2" width="100%" />
<ul>
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format

  • 但如果是用本地环境,所以携带的域名别人是进不来的,就需要考虑把邮件中无法访问的URL去掉,换其它方式

邮件无法查看URL备选方法

这些方式无论Jenkins运行在哪里,都可以使用:

1、携带报告附件

直接在Attachments中配置报告的路径

Jenkins的项目一般运行在workspace,直接在workspace中查看生成的目录,写路径就可以

2、携带log(不过log里也没啥东西,就是Jenkins运行的日志)

3、conftest.py代码中加入 钩子函数

发送的邮件,html附件有时不能随时打开,因此需要收集运行结果数据,在邮件中直接展示,可以在测试框架中使用钩子函数

在项目中进行配置:

注入环境变量

输入钩子函数运行后产生的txt文本文件,这个文件在测试框架运行后会自动产生在项目根路径,这里直接输入文件名就可以发送

邮件中实现效果:

邮件发送设置

进入高级设置

删掉原来的失败触发,改为总是触发

应用 ---> 保存

Build Now一下试试,基本是ok的,如果出错可以控制台看一下,进行调试

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值