前言:由于ant-jmeter目前的版本不支持javamail,也就是說發(fā)送郵件時只能借助jenkins自帶的發(fā)送郵件插件來發(fā)送報告。
但是jenkins發(fā)送郵件支持發(fā)送郵件內(nèi)容(且有價值、有營養(yǎng)的內(nèi)容也只能是借用jenkins的宏),不允許上傳附件。
總的來說若借助jenkins自帶的郵件插件來發(fā)送報告的話,內(nèi)容空洞、沒價值
jenkins自帶的郵件系統(tǒng)配置內(nèi)容如下:
郵件內(nèi)容為:
從圖種可以看出,發(fā)送一個報告的連接,相對來說不直觀,且如果要保持這個連接一直有效,那必須要做備份處理?。?/p>
缺點很多,就不一一列舉~
因此這么多缺點,是必須要做出優(yōu)化了?。。。。。?/p>
再此,對ant-jmeter進行二次開發(fā),讓他支持javamail。
二次開發(fā)支持的功能:①支持上傳附件②支持郵件內(nèi)容是以文件的方式輸出
首先反編譯jmeter自帶的ant-jmeter,之后增加2個類,
一個JavaMail類(方法實現(xiàn)),一個MailTask類(方法執(zhí)行)。ps:關(guān)于javamail網(wǎng)上很多材料,現(xiàn)成的的代碼,稍微坐下修改就可以~
JavaMail類具體實現(xiàn):
package org.programmerplanet.ant.taskdefs.jmeter; import java.io.File; import java.io.UnsupportedEncodingException; import java.text.DecimalFormat; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeUtility; public class