Email Test Result after completion of test in Selenium
Web driver.
1.
Create a project in eclipse and
download necessary jars for Selenium.
2.
Now download necessary jars for
sending an email.
a)
javaee-api-5.0.3.jar
b)
javamail1_4_7.zip
3.
Add the jars to the build path.
4.
Now create a new class “sendmail.java”
and copy paste the below code. This code will email the stack trace after
failure of that testcase.
package Testcases;
import
java.util.Properties;
import
javax.mail.Message;
import
javax.mail.MessagingException;
import
javax.mail.PasswordAuthentication;
import
javax.mail.Session;
import
javax.mail.Transport;
import
javax.mail.internet.InternetAddress;
import
javax.mail.internet.MimeMessage;
import
org.apache.commons.lang3.exception.ExceptionUtils;
public
class SendMail{
public
SendMail(String fromMail,String tomail, Exception e )
{
Properties
props = new Properties();
props.put("mail.smtp.host",
"smtp.gmail.com");
props.put("mail.smtp.socketFactory.port",
"465");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth",
"true");
props.put("mail.smtp.port",
"465");
Session
session = Session.getDefaultInstance(props,
new
javax.mail.Authenticator() {
protected
PasswordAuthentication getPasswordAuthentication() {
return
new PasswordAuthentication("archana. @gmail.com","xyz123");
}
});
try
{
Message
message = new MimeMessage(session);
message.setFrom(new
InternetAddress(fromMail));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(tomail));
message.setSubject("Script
failed");
message.setText("your
test has failed for script name:Name of your scipt
<============================>"+ ExceptionUtils.getStackTrace(e) );
Transport.send(message);
System.out.println("Done");
}
catch (MessagingException ex) {
throw
new RuntimeException(ex);
}
}
}
5.
Now create another class “sendsuccess.java”.
This file will send success mail in case test case has passed.
package Testcases;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.apache.commons.lang3.exception.ExceptionUtils;
public class sendsucess{
public sendsucess(String fromMail,String
tomail, String success )
{
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication
getPasswordAuthentication() {
return new PasswordAuthentication("archanagmail.com","xyz123");
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new
InternetAddress(fromMail));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(tomail));
message.setSubject("Script Pass");
message.setText("your
test has passed for script name:Name of your scipt
<============================>");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException ex) {
throw new RuntimeException(ex);
}
}
}
6.
Now Write a test case in Junit
and use the above send mail functionality.
package
Testcases;
import
junit.framework.Assert;
import
org.junit.Before;
import
org.junit.Test;
import
org.openqa.selenium.By;
import
org.openqa.selenium.WebDriver;
import
org.openqa.selenium.WebElement;
import
org.openqa.selenium.chrome.ChromeDriver;
//import
org.testng.annotations.BeforeMethod;
//import
org.testng.annotations.Test;
public
class Except {
WebDriver d;
@Before
public
void launch()
{
System.setProperty("webdriver.chrome.driver",
"D:\\Workspace\\DemoSiteAutomation\\Drivers\\chromedriver.exe");
d = new
ChromeDriver();
}
@Test
public
void test()
{
d.get("https://in.yahoo.com/?p=us");
try{
WebElement element= d.findElement(By.xpath("//*[@id='p_13838465-p']"));
element.sendKeys("automation");
String s="Pass";
new
sendsucess("archanagmail.com","archana@gmail.com",s);
}
catch(Exception
e)
{
e.printStackTrace();
new
SendMail("archana@gmail.com","archana.@gmail.com",e);
}
}
}
No comments:
Post a Comment