Java+Selenium3框架設計篇5-如何實現郵件發送測試報告

   https://blog.csdn.net/u011541946/article/details/77278837html

本篇繼續回答網友的問題,這個主題是如何經過郵件發送測試報告。經過郵件發送測試報告,這個很重要,也頗有必要。無論你使用什麼自動化測試框架,都建議添加發送測試報告的功能。先來設計咱們的發送郵件的場景:假如咱們測試報告是固定的名稱,放在固定的路徑下。java

1.下載java mail api包web

       瀏覽器打開https://mvnrepository.com/artifact/com.sun.mail/javax.mail/1.6.0,點擊download jar,把下載下來的jar文件,放在當前項目的tools文件夾下,並添加到當前項目的library裏。具體這裏不過多描述,前面咱們添加了不少次jar包。api

2.在testSuite包下新建一個測試發送郵件的類。瀏覽器

       其實這個發送郵件的類,咱們能夠單獨寫成一個靜態類,設置一個變量,郵件的附件,也就是咱們測試報告文件的路徑就是這個變量。今天咱們暫時不考慮這麼多,只是簡單來利用QQ郵箱發送一個測試報告。個人測試報告是TestNG自動化生成的一個html文件。服務器

3.如何開啓QQ上的smtp服務session

咱們在使用QQ的smtp服務器以前,咱們須要登陸web qq郵箱,開啓smtp,具體看下面兩張圖。框架

 

 

上面紅圈的受權碼須要記錄下來,放到咱們接下來的代碼中關於身份認證這塊,替代password。若是你填寫的是你QQ的密碼,代碼運行後應該報535錯誤,身份認證失敗。socket

4. 測試發送郵件類的具體代碼。測試

package testSuite; import java.util.Properties; import javax.activation.DataHandler;import javax.activation.DataSource;import javax.activation.FileDataSource;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Multipart;import javax.mail.PasswordAuthentication;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; public class SendEmail { public static void main(String[] args) { // 建立一個Property文件對象 Properties props = new Properties(); // 設置郵件服務器的信息,這裏設置smtp主機名稱 props.put("mail.smtp.host", "smtp.qq.com"); // 設置socket factory 的端口 props.put("mail.smtp.socketFactory.port", "465"); // 設置socket factory props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory"); // 設置須要身份驗證 props.put("mail.smtp.auth", "true"); // 設置SMTP的端口,QQ的smtp端口是25 props.put("mail.smtp.port", "25"); // 身份驗證明現 Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { // 第二個參數,就是我QQ開啓smtp的受權碼 return new PasswordAuthentication("570xxxx@qq.com", "kvsivuydzdbpbffd"); } }); try { // 建立一個MimeMessage類的實例對象 Message message = new MimeMessage(session); // 設置發件人郵箱地址 message.setFrom(new InternetAddress("570xxx@qq.com")); // 設置收件人郵箱地址 message.setRecipients(Message.RecipientType.TO,InternetAddress.parse("2048xxxx@qq.com")); // 設置郵件主題 message.setSubject("測試發送郵件"); // 建立一個MimeBodyPart的對象,以便添加內容 BodyPart messageBodyPart1 = new MimeBodyPart(); // 設置郵件正文內容 messageBodyPart1.setText("這個是郵件的正文部分"); // 建立另一個MimeBodyPart對象,以便添加其餘內容 MimeBodyPart messageBodyPart2 = new MimeBodyPart(); // 設置郵件中附件文件的路徑 String filename = ".\\test-output\\emailable-report.html"; // 建立一個datasource對象,並傳遞文件 DataSource source = new FileDataSource(filename); // 設置handler messageBodyPart2.setDataHandler(new DataHandler(source)); // 加載文件 messageBodyPart2.setFileName(filename); // 建立一個MimeMultipart類的實例對象 Multipart multipart = new MimeMultipart(); // 添加正文1內容 multipart.addBodyPart(messageBodyPart1); // 添加正文2內容 multipart.addBodyPart(messageBodyPart2); // 設置內容 message.setContent(multipart); // 最終發送郵件 Transport.send(message); System.out.println("=====郵件已經發送====="); } catch (MessagingException e) { throw new RuntimeException(e); } } }       運行一下,我能收到郵件,郵件中附件確實是TestNG生成的測試報告文件。記得替換你本身QQ郵箱信息在上面相關的地方,關於如何經過郵件發送測試報告,就介紹到這裏。至於如何在完成自動化測試腳本就第一時間經過郵件發送測試報告,有必要的話,在後面文件再介紹。--------------------- 做者:Anthony_tester 來源:CSDN 原文:https://blog.csdn.net/u011541946/article/details/77278837 版權聲明:本文爲博主原創文章,轉載請附上博文連接!

相關文章
相關標籤/搜索