jenkins中的allure和email问题梳理

一、allure相关

1、我安装了jenkins之后需要再安装allure吗?在jenkins插件中心直接安装allure

1.Allure Jenkins Plugin 只是一个集成插件,它要求你在 Jenkins 服务器上安装 Allure 命令行工具(Allure Commandline)来实际生成报告。
Dashboard>Manage Jenkins>Plugins>Available plugins安装allure-jenkins-plugin之后重启jenkins。
然后进入Dashboard>Manage Jenkins>Tools 勾选自动安装来安装allure,名字自己取一个
在这里插入图片描述

2 allure路径问题

在一个`freestyle`里的项目中的`Configure`,allure报告位置是通过什么决定的呢?

Build Steps>Execute shell执行

cd /python_project/everyday_check/
/usr/local/python3.9/bin/pytest -sv -m pro testcase_everyday_check/web_site_everyday_check.py 

由于上面代码没有alluredir相关信息,这里将会去pytest.init找用例执行的结果
pytest.ini

# pytest.ini
addopts = -sv --alluredir ./report/temp_jsonreport --clean-alluredir

pytest.init中用例结果alluredir和下图填的用例结果路径(allure-result)不一致会产生空的报告
在这里插入图片描述

那么需要将用例结果复制过来解决空报告问题

mkdir -p ${WORKSPACE}/allure-results_${BUILD_NUMBER} 
# 这与pytest.ini文件定义的addopts = -sv --alluredir ./report/temp_jsonreport --clean-alluredir有关这是allure的目录我将其复制过来
cp -r /python_project/everyday_check/report/temp_jsonreport ${WORKSPACE}/allure-results_${BUILD_NUMBER}

3 报告归档问题

生成报告时都是采用-c -o /var/lib/jenkins/workspace/everyday_check/allure-report那么为何每个构建的报告不一样呢?都是该次构建的报告
下图可见每次的报告路径均是allure-report
在这里插入图片描述
这是因为每次构建生成的报告jenkins都会进行归档,如
/var/lib/jenkins/jobs/everyday_check/builds/1/archive中的1就是第一次构建生成的报告
在这里插入图片描述

二、Extended E-mail Notification

1 在Dashboard>Manage Jenkins>Plugins>Available plugins安装Email Extension Plugin之后重启jenkins。
然后进入Dashboard>Manage Jenkins>system 中的 Extended E-mail Notification进行配置
如下所示 其余可以全部使用默认值
在这里插入图片描述

注意上图3需要需要邮箱地址和授权码,相当于邮箱的发送服务器。注意password中需要输入邮箱的授权码而不是密码
在这里插入图片描述

在Default Content中可以使用下列模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
       .logo {
            float: left;
            min-width: 40px;
            height: 40px;
        }
        .title{
            text-align: center;
            color: rgb(235, 30, 15);
        }
        .desc{
            text-align: left;
        }
    </style>
</head>
<body>
    <div>
        <h1 class="title">每日巡检自动化测试报告</h1>
    </div>
    <div class="desc">
        <p><font color="red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Jenkins自动发送的测试报告邮件,无需回复!</font></p>
        <h4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;各位同事,大家好,以下为${PROJECT_NAME}自动化测试构建信息</br><h4/>
        <h4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在线测试报告直达链接:<a href="${PROJECT_URL}/${BUILD_NUMBER}/allure">${PROJECT_URL}/${BUILD_NUMBER}/allure</a></h4>
    </div>
    <br/>
    <div>
        <table width="900" cellpadding="8px" cellspacing="8px" class="table"> 
            <tbody>
                <tr>
                    <td><br/>
                    <b><font color="#0B610B">项目描述:${JOB_DESCRIPTION}<br></font></b>
                    <hr size="2" width="100%" align="center" /></td>
                </tr>
                <tr>
                    <td>项目名称 : ${PROJECT_NAME}</td>
                </tr>
                <tr>
                    <td>构建编号 : 第${BUILD_NUMBER}次构建</td>
                </tr>
                <tr>
                    <td>触发原因: ${CAUSE}</td>
                </tr>
                <tr>
                    <td>构建状态: ${BUILD_STATUS}</td>
                </tr>
                <tr>
                    <td>构建日志: <a href="${PROJECT_URL}${BUILD_NUMBER}/console">${PROJECT_URL}${BUILD_NUMBER}/console</a></td>
                </tr>
                <tr>
                    <td>构建Url : <a href="${BUILD_URL}">${BUILD_URL}</a></td>
                </tr>
                <tr>
                    <td>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></td>
                </tr>
                <tr>
                    <td>项目Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></td>
                </tr>
                <tr>
                    <td>allure在线测试报告:<a href="${PROJECT_URL}/${BUILD_NUMBER}/allure">${PROJECT_URL}/${BUILD_NUMBER}/allure</a></td>
                </tr>
            </tbody>
        </table>
 
    </div>
    
 
</body>

2 邮件老是发送失败时可以将Jenkins LocationSystem Admin e-mail address填一下,实测有用

根据引用和引用的信息,您在Docker安装了JenkinsAllure,但在执行命令时遇到了"command not found"的错误。根据引用的信息,您可能是以普通用户登录Jenkins容器并尝试安装Allure,而Jenkins是以普通用户运行的。这可能导致Allure命令无法被找到。 要在DockerJenkins安装Allure环境,您可以尝试以下步骤: 1. 通过管理员身份登录Jenkins容器: ``` docker exec -u 0 -it <container_id> bash ``` 2. 在管理员权限下安装Allure: ``` apt-get update apt-get install -y allure ``` 3. 退出管理员身份,并以普通用户身份登录Jenkins容器: ``` exit docker exec -u <username> -it <container_id> bash ``` 4. 确认Allure已成功安装: ``` allure --version ``` 通过以上步骤,您应该能够在DockerJenkins成功安装Allure环境。请确保您替换`<container_id>`和`<username>`为您实际使用的容器ID和用户名。 引用: : 我的dockerJenkins是已经安装allure了的,但是jenkins提示:bash: allure: command not found。 : Jenkinsallure的安装和使用问题 jenkins@0d71811f7c01:~/workspace/first_python$ allure generate ./unit/allure_result -o ./unit/allure_report bash: allure: command not found。 : 原来是我是通过管理员进入jenkins容器安装了allure的,而jenkins是以普通用户去运行的,所以我又以普通用户登录安装allure。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [dockerJenkins安装allure和使用,bash: allure: command not found](https://blog.csdn.net/chuancheng_zeng/article/details/109880574)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值