Selenium WebDriver da Test Sonuçlarını E-Mail Olarak Gönderme

Herkese Merhabalar , Selenium ile yazılarıma devam ediyorum. Bir önceki yazımda otomatik bir test komut dosyası başarıyla çalıştığında, test uzmanlarının bir test yürütme raporunu ExtentReports ile nasıl oluşturabileceklerine yer vermiştim. Bu yazımda ise oluşturduğumuz bu raporu nasıl e-mail ile gönderebileceğimize yer vereceğim. Selenium WebDriver da Extent Report Oluşturma yazıma buradan ulaşabilirsiniz.

İlk olarak Maven projemizin pom.xml içerisindeki “Dependencies” tag’i altına Mail için aşağıdaki kod eklenir. 

<!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.5.6</version>
</dependency>


<!-- http://repo1.maven.org/maven2/javax/mail/mail/1.4.7/mail-1.4.7.jar -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>

İkinci adımda ise testlerimizi içeren kod parçacığına aşağıda yer alan SendMail() fonksiyonu eklenir. Fonksiyonu “@AfterTest” olarak tanımlayarak , tüm @Test adımlarından sonra çalışmasını sağlayabilirsiniz.

Mail ‘in ekler alanına daha önce oluşturduğumuz Extent Report ‘un path bilgisi belirtilerek sonuçların iletilmesi sağlanır.

@AfterTest
public void SendMail() {

    // E-Mail Bilgileri Tanımlanıyor.
    String from = "gönderici email bilgisi";
    String to = "alıcı email bilgisi";
    String subject = "Selenium Test Sonuclari";
    String bodyText = "Test Sonucu ekte gönderilmiştir. Lütfen gönderilen dosyayı indirin ve herhangi bir tarayıcıda açın.";

    // Attach Edilecek Dosyanın Dizini Tanımlanıyor.
    String attachmentName = " Extent Report ' un yol bilgisi";

    // SMTP Bilgileri Tanımlanıyor.
    Properties props = new Properties();
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "587");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");
    Session session = Session.getDefaultInstance(props);

    try {
        InternetAddress fromAddress = new InternetAddress(from);
        InternetAddress toAddress = new InternetAddress(to);

        MimeMessage msg = new MimeMessage(session);
        msg.setFrom(fromAddress);
        msg.setRecipient(Message.RecipientType.TO, toAddress);
        msg.setSubject(subject);
        msg.setSentDate(new Date());

        MimeBodyPart messagePart = new MimeBodyPart();
        messagePart.setText(bodyText);

        FileDataSource fileDataSource = new FileDataSource(attachmentName);

        MimeBodyPart attachmentPart = new MimeBodyPart();
        attachmentPart.setDataHandler(new DataHandler(fileDataSource));
        attachmentPart.setFileName(fileDataSource.getName());

        Multipart multipart = new MimeMultipart();
        multipart.addBodyPart(messagePart);
        multipart.addBodyPart(attachmentPart);

        msg.setContent(multipart);
        send(msg,"gönderici mail bilgisi ","gönderici mail şifresi");


    } catch (MessagingException e) {
        e.printStackTrace();
    }
}

Test senaryolarımız başarılı bir şekilde çalıştıktan sonra SendMail() fonksiyonu çalışarak ,test sonuçlarını belirtilen mail adreslerine gönderecektir.

Yorum bırakın