1. 在本地环境上搭建了jmeter+ant+jenkins环境,遇到邮件发不出的问题,解决办法如下:
在ant的安装包下的lib里加上四个jar包:mail-1.4.7.jar,commons-email-1.2.jar,activation.jar,ant-javamail.jar,见附件或者自行下载。
然后在build.xml中加上发邮件相关的:
<target name="sendEmail"> <mail from="你的邮箱" tolist="你的邮箱" mailhost="smtp.qq.com" mailport="25" user="你的邮箱" password="你的邮箱密码" subject="${ReportName}${time}"> <message>接口测试报告</message> <attachments> <fileset dir="${jmeter.result.html.dir}"> <include name="*${time}.html"/> </fileset> </attachments> </mail> </target> 在执行的地方要加上: <target name="all"> <antcall target="sendEmail" /> </target>
这样邮件就可以发出啦。
2. 发出邮件后,发现2个问题,一个问题是报告当中显示了:Date report: date not defined
另一个问题是展开与收缩的按钮没展示出来,显示破裂。
1》第一个问题解决方案是,在build.xml中加上一行(以下代码中带颜色的那行),加上后就会显示成时间,前提是在build.xml中要定义time:
<tstamp> <format property="time" pattern="yyyyMMddhhmm" /></tstamp>
<target name="report">
<xslt
in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" >
<param name="dateReport" expression="${time}"/>
</xslt>
</target>
2》第二个问题,是因为collapse.png和expand.png是存在本地的,所以在发出邮件后,拿不到图片,将这两张图片传到网上(qq空间,百度云等等都可以,或者放公司的图片服务器),将图片地址复制下来,到jmeter安装包的extras文件夹下,打开jmeter-results-detail-report_21.xsl进行编辑(编辑时发现无写权限,可以先用chmod命令给出写权限)。
改以下四个地方:
{if(document.getElementById(details_id+"_image").src.match("这里改为collapse图片的地址")){document.getElementById(details_id+"_image").src = "这里改为expand图片的地址";expand(details_id);}else{ document.getElementById(details_id+"_image").src = "这里改为collapse图片的地址"; collapse(details_id); }
<td align="center"><a href=""><xsl:attribute name="href"><xsl:text/>javascript:change('page_details_<xsl:value-of select="position()" />')</xsl:attribute><img src="这里改为collapse图片的地址" alt="expand/collapse"><xsl:attribute name="id"><xsl:text/>page_details_<xsl:value-of select="position()" />_image</xsl:attribute></img> </a></td>