经过前面的一系列文章,个人API自动化测试平台已经搭建成型,可是要投入具体项目使用时,还有如下几个问题须要优化。html
仍是接着以上一篇笔记中的“test_token”项目为例:shell
这里的主要问题是针对邮件中的附件(即测试报告),在前一篇配置邮件通知的文章,我对于附件的配置是这么说的:服务器
若是你可以多触发几回构建就会发现问题,随着构建次数愈来愈多,产生的测试报告也愈来愈多,即.html文件会愈来愈多,而每次构建的邮件通知都会把全部的.html文件添加到附件,这样用户收到的自动化测试邮件里面,不只能看到本次构建的测试报告,还能够看到以前全部构建的测试报告,体验很是很差。测试
在每次构建前删除掉上次构建产生的测试报告文件,使得添加附件时,只能在html文件夹中搜索到本次构建的测试报告。优化
方案一:ui
job->配置->构建->增长构建步骤spa
在Invoke Ant构建前,咱们添加一个构建步骤“Execute shell”3d
增长了一个新的构建步骤,在构建ant任务以前,先在服务器上执行一段shell,功能是删除测试报告文件夹下全部的测试报告文件便可。shell脚本以下:日志
rm -f /var/lib/jenkins/workspace/test_token/html/*.html rm -f /var/lib/jenkins/workspace/test_token/jtl/*.jtl
看一下构建日志发现shell脚本被成功执行:code
方案二
job->配置->构建环境->Delete workspace before build starts
构建环境我勾选了"Delete workspace before build starts",在具体解释这一步配置以前,我先说一下workspace在目前这个平台中起到什么做用:
首先,咱们在jenkins每建立一个新的job,系统就会在jenkins的安装目录下的workspace文件夹下建立一个以job name命名的文件夹;
接着,因为邮件通知添加附件的问题,咱们手动把测试报告的输出位置移动到这个job name命名的文件夹下面,也就是常常提到的html文件夹的位置;
但愿下面两张图可以加深对他的理解:
图一:workspace的目录树结构
图二:test_token项目下的工做空间目录
咱们可使用ANT语法指定一种模式来筛选出要被删除的文件:
(1)下拉选择框有两种模式Include和Exclude
Include模式:若是文件匹配语法要求删选条件,则文件会被移除
Exclude模式:若是文件匹配语法要求删选条件,则文件不会被移除
(2)规则只适用于文件,若是你想要适用于文件夹,请勾选Apply pattern also on directories参数
我这里填写的规则意思是,在workspace目录下的本项目中,筛选出全部以.html为后缀的文件并移除他们。
关于这个功能的配置你们还能够参考官方文档的原文https://wiki.jenkins.io/display/JENKINS/Workspace+Cleanup+Plugin
接下来看一下构建日志检查构建环境是否执行:
OK,以上两种方法均可以解决邮件通知附件的问题,你们可根据实际须要进行选择。
每次构建都会保存数据,因此须要按期的清除过时文件,这时就用到了“丢弃旧的构建”这个功能。
保持构建的天数:每一个构建能保留多少天
保持构建的最大个数:最多保留多少个构建
好了,优化部分就到此为止。