Jenkins(三)之构建Robot Framework报告

首页 > 程序开发 > 软件开发 > 其他 > 正文
构建Robot Framework报告(Jenkins Email Extension Plugin)
2018-05-08 11:00:11      0 个评论    来源: glong168  
收藏   我要投稿

A.目标:

实现RobotFramework的脚本定时自动执行,执行完后自动将结果发送到指定邮箱

B.前提

1、 配置好Robot Framework的环境,脚本可以正常运行

2、 部署好Jenkins的环境,Jenkins的安装不是本文的重点,不懂的请问度娘(其实很简单,装Tomcat,把Jenkins.war包扔到Tomcat的webapp目录里)

3、 在Jenkins里安装好以下插件:EmailExtension Plugin、Zentimestamp plugin、Robot Framework plugin

C.安装相关插件

Jenkins安装Email Extension Plugin、Zentimestampplugin、Robot Framework plugin插件

在线直接安装插件:

在“可选插件”搜索Email Extension Plugin、Zentimestamp plugin、Robot Frameworkplugin插件名,选择之后,点击直接安装

\

注:建议用在线直接安装,因为插件与插件中存在相互依赖性,手动处理会很麻烦,但是直接安装,系统可以直接处理依赖关系

离线安装插件:(不建议使用)

1)下载插件(由于无法在线安装,所以只能走离线安装)

首先到网址https://updates.jenkins-ci.org/download/plugins/中下载了Email Extension Plugin、Zentimestampplugin、Robot Framework plugin插件:

\

2)进入安装插件界面

点击 系统管理——>管理插件——>高级

\

这时候我们是不是看到了中间有个上传插件的地方(其他地方我们的信息不一样可以不管)。

点击选择文件按钮,选中刚才我们下载的插件,注意每次只能选中一个文件,所以先选择依赖文件。然后点击上传按钮。这样依次就可以将所有的插件离线安装成功了!如下图所示:

D.配置

1.系统设置

1)进入【系统管理】-【系统设置】进行如下配置:设置${BUILD_TIMESTAMP}格式

\

2)配置 ExtendedE-mail Notification默认设置

设置邮件内容和发送人:

default content type:设置邮件发送的格式:文本格式或者html格式

Use List-ID Email Header:设置邮件的发送的名称(便于过滤)

Default Recipients:设置默认的收件人

Reply To List:设置默认回复列表

Emergency reroute:相当于一个邮件的转发(邮件先发送到这里,然后在进行进一步处理)

Excluded Recipients:设置接收的黑名单(就是不发送给这些人)

Default Subject:设置默认的邮件主题

Maximum Attachment Size:这只邮件附件的最大值

Default Content:设置邮件的默认内容(里面可以引用一些环境变量的参数,或者插件的一些变量)

Default Pre-send Script:在发送邮件前执行的脚本

邮件通知:这是默认的邮件发送工具,配置和extemail插件设置差不多,只是不能设置邮件的默认发送策略,和邮件发送的内容等信息

\

【user name:认证的邮箱;password:认证的密码(并非邮箱的密码,是开启smtp时给的一串字符);如果邮箱是ssl链接,就需要勾选use ssl;smtp port :如果你的smtp服务不是465的端口,需要配置对应的端口;charset:邮件编码设置】

注:这里的密码并不是我们邮箱真正的密码,这是QQ邮箱为了给第三方客户端登录的授权码,QQ邮箱是默认关闭SMTP的,所以我们还需要去开通QQ邮箱的SMTP服务,否则第三方客户端无法正常发送邮件。

QQ邮箱开通的SMTP服务步骤如下:

\

\

根据提示发送信息,之后QQ会给一个授权码,把该授权码,填到Extended E-mail Notification的密码即可

\

Extended E-mail Notification默认设置里Default Content的值是填写 ${SCRIPT,template=”robot_results.groovy”}设置这个模板:

在$Jenkins_Home/email-templates目录(如果没有email-templates请自行创建)下创建一个robot_results.groovy文件,内容如下:

robot_results.groovy文件下载地址:https://download.csdn.net/download/glongljl/10396246

其中Jenkins_Home的路径不知道在哪里的话,你可以去看一下系统设置页面,上面有写有:

\

2.创建任务

\

\

3.任务的配置

1)General

选中“Restrict where this project can be run”,其LabelExpression填写“master”

\

2)源码管理

\

3)构建触发器

\

4)构建环境

\

5)构建

如果在Windows系统中搭建jenkins的话,在构建中,选择“Execute Windows batch command”,输入pybot.bat d:\test.txt (这只是举个例子,具体执行哪个目录下的哪些case,根据实际情况决定)

\

如果不清楚pybot.bat的用法,可以用RIDE跑一个用例,看command信息,先直接拿过来调试用用

\

6)构建后操作

Robot results:

构建后的操作,选择“PublishRobot Framework test results”

*Directory ofRobot output 填一个本地路径,要根据你的output文件放在哪里了,默认可以不填

*Thresholds forbuild result 阀值设置,如80%和100%,这里应该是测试用例执行成功率和通过率的设置

\

注:如果不知道Directoryof Robot output填什么路径,可以通过控制台输出进行定位,如下:

\

\

其实report.html和log.html的输出路径是在启动脚本控制的,如下:

\

Email 信息:

点击“增加构建后操作步骤”,然后点击“Editable Email Notification”,进入邮件内容详细配置界面。

\

Default Subject: 邮件主题,可以书写成:XXX项目自动化测试通知: PROJECT_NAME- Build # BUILD_NUMBER - B U I L D S T A T U S ! PROJECT_NAME 构建项目的名称,也就是selenium_2_combat;# B U I L D N U M B E R BUILD_STATUS构建状态,这几个参数,它会自动读取,按照这种格式书写即可。

Default Content:邮件内容,这块是重点,最能体现报告的重点,我们需要输入以下内容:


(本邮件是程序自动下发的,请勿回复!)


项目名称:$PROJECT_NAME


构建编号:$BUILD_NUMBER


构建状态:$BUILD_STATUS


触发原因:${CAUSE}


测试报告:


构建日志地址:${BUILD_URL}console/


构建地址:$BUILD_URL


构建报告:${BUILD_URL}testReport/


变更集:${JELLY_SCRIPT,template=”html”}


其中的红色字体需要修改成自己电脑的IP地址,这样别人才能访问到jenkins上的测试结果。

点击页面上的Advanced settings设置什么时候触发发送邮件的功能:

把默认的trigger给删除掉,然后新增一个trigger,然后选择Always选项,如此便不管构建成功还是失败都会发送邮件。

\

点击应用后保存,项目配置完成!!!

4.邮件查收

点击“立即构建”

\

执行之后,结果显示如下:

\

对应邮箱查收如下

\

\

E.Jenkins常错误

1.反向代理设置错误

\

其实就是,系统管理–>系统设置里的Jenkins URL没有写对,原因是配置文件/etc/sysconfig/jenkins我修改了jenkins启动端口,这里没有相应修改

Jenkins URL

\

将localhost修改为真实地址即可

\

修改后已不再提示代理问题

\

2.点击‘立即获取’插件,报unable to find valid certification path to requested target错误

原因是缺少证书

\

3.缺少依赖插件

根据提示到https://updates.jenkins-ci.org/download/plugins/下载对应的插件

\

4.校验邮箱的联通性

\

如果Test e-mail recipient没有填邮箱信息,则会报如下错误

\

5.jenkins邮件配置完后发送测试邮件是成功的,并且也能收到的,构建结束成功后log提示成功,但是没有收到邮件

\

原因是Extended E-mailNotification 的SMTP服务器配置没有使用Jenkins自身的需要专门配置。在系统配置里面多配置一次就行

\

\

6.jenkins调用robot_results.groovy 未生效

配置如下:

任务配置:Default Content引用$DEFAULT_CONTENT变量

\

D E F A U L T C O N T E N T {SCRIPT,template=”robot_results.groovy”}

\

robot_results.groovy文件是在$Jenkins_Home/email-templates目录下的

\

robot_results.groovy内容请看如下:

robot_results.groovy文件下载地址:https://download.csdn.net/download/glongljl/10396246

结果邮箱收到时没有读取robot_results.groovy的模板内容

\

经过分析:

是由于缺少groovy-postbuild插件操作的,安装groovy-postbuild插件

\

groovy-postbuild插件安装完之后,重新执行计划,邮箱可以获取到模板信息的,如下:

\

7.Robot Framework - Jenkins 的测试报告打不开

点击邮件的链接

\

以及点击Jenkins上的链接

\

结果界面都会报如下错误:

\

解决办法:

1. 如果你是用命令行开启的

关闭Jenkins,修改开启命令如下,重新开启:

java-Dhudson.model.DirectoryBrowserSupport.CSP= -jar E:\Jenkins\jenkins.war

2. 如果你是用msi安装的

找到jenkins.xml 文件,修改如下

-Xrs-Xmx256m -Dhudson.model.DirectoryBrowserSupport.CSP=-Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar”%BASE%\jenkins.war” –httpPort=8080

3. 如果你是用tomcat 启动的

有个临时的解决方法

打开jenkins 首页——>进入系统管理——>进入脚本命令行

在输入框输入如下代码,并执行

System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”,”“)

\

注:方法3 都可以使用,但是重启后就失效了,需要重新执行

4. 访问端解决办法

以Firefox为例:

到 about:config 设置

security.csp.enable= false

之后问题正常显示如下:

\

点击复制链接 与好友分享! 回本站首页
上一篇: C++错题大总结
下一篇: Eclipse中运行Maven test命令
相关文章
图文推荐
收藏文章
有事没事说两句…
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后…
评论内容为空!
            <!-- 放置cbox发布状态 -->
            <!-- 提示条 -->
            <!-- 零评论提示条 -->
            <div class="list-comment-empty-w">
                <div node-type="empty-prompt" class="empty-prompt-w">
                    <span class="prompt-null-w">还没有评论,快来抢沙发吧!</span>
                </div>
            </div>
            <!-- 提示连接到快站社区 -->
            <!-- <div class="list-comment-kuaizhan-w">
                <div node-type="kuaizhan-prompt" class="kuaizhan-prompt-w">
                    <span class="prompt-text-w">点击查看更多精彩内容</span>
                </div>
            </div> -->
            <!--关闭评论-->
            <div class="list-close-comment-w">

            </div>
        </div>
    </div>
</div>

  • 最新评论

7月25日-7月31日VIP服务低价风暴来袭,5折优惠嗨翻暑假!活动期间开通VIP服务任意充值买一送一!买一个月送一个月,买一年送一年!

        红黑联盟正在使用畅言
                    </a>
    </div>
</div>
<div node-type="cy-to-shequ" class="cy-redirect-btn">
    <span class="cy-redirect-text">去社区看看吧</span><i class="cy-right-arrow"></i>
</div>
<div node-type="cy-to-hots" class="cy-redirect-btn">
    <span class="cy-redirect-text">去热评看看吧</span><i class="cy-right-arrow"></i>
</div>
<div class="cy-to-shequ-float"></div>


        <li node-type="notice-message" data-alias="message" data-type="message" data-static="static" class="nt-item" style=" display: none ">
            <div class="nt-logo"></div>
            <a node-type="notice-content" class="nt-text" href="javascript:void(0);">你收到<i>0</i>条新通知</a>
            <a class="nt-close" href="javascript:void(0);"></a>
        </li>
    
        <li node-type="notice-support" data-alias="support" data-type="support" data-static="static" class="nt-item" style=" display: none ">
            <div class="nt-logo"></div>
            <a node-type="notice-content" class="nt-text" href="javascript:void(0);">你有<i>0</i>条评论收到赞同</a>
            <a class="nt-close" href="javascript:void(0);"></a>
        </li>
    
        <li node-type="notice-reply" data-alias="reply" data-type="reply" data-static="static" class="nt-item" style=" display: none ">
            <div class="nt-logo"></div>
            <a node-type="notice-content" class="nt-text" href="javascript:void(0);">你有<i>0</i>条新回复</a>
            <a class="nt-close" href="javascript:void(0);"></a>
        </li>
    
        <li node-type="notice-hots" data-alias="hots" data-type="hots" data-static="static" class="nt-item" style=" display: none ">
            <div class="nt-logo"></div>
            <a node-type="notice-content" class="nt-text" href="javascript:void(0);">本日畅言热评新鲜出炉啦!</a>
            <a class="nt-close" href="javascript:void(0);"></a>
        </li>
    
        <li node-type="notice-task" data-alias="task" data-type="task" data-static="static" class="nt-item" style=" display: none ">
            <div class="nt-logo"></div>
            <a node-type="notice-content" class="nt-text" href="javascript:void(0);">你有<i>0</i>个任务已完成</a>
            <a class="nt-close" href="javascript:void(0);"></a>
        </li>
    
        <li node-type="notice-history" data-alias="history" data-type="history" data-static="static" class="nt-item" style=" display: none ">
            <div class="nt-logo"></div>
            <a node-type="notice-content" class="nt-text" href="javascript:void(0);">你收获<i>0</i>个畅言足迹</a>
            <a class="nt-close" href="javascript:void(0);"></a>
        </li>
            </ul>
    


猜你喜欢

转载自blog.csdn.net/qq_38317509/article/details/81317420