Page 1 of 3

Sending an email of Test Results

Posted: Tue Oct 12, 2010 5:55 pm
by smalldoorman
I have a solo system that is for Ranorex and it runs our test while I do other work on my machine. So far I have it execute several solutions back to back which can take anywhere between 30 min to several hours.

Is there any way to have Ranorex send me an email after each solution where the subject line will name the solution and then tell me if it passed or failed. Or even just tell me that that the solution (or whole battery of tests) has completed? I would need to send through an SMTP that requires authentication but im not sure how to go about any of this.

Is it even possible to have email's sent upon completion let alone making a subject line dependent on the outcome of a test?

Re: Sending an email of Test Results

Posted: Wed Oct 13, 2010 10:04 am
by sdaly
It is possible using .net, I use the method below to send emails, the test log can be added as an attachment too.

This method only works with an open SMTP server.....

Public Sub sendEmail(strSubject As String, strBody As String, strAttachmentPath As String)
If TestRunner.getSetting("emailEnable") = True Then
Try
'create new mail class with passed in params
Dim insMail As New system.Net.mail.MailMessage(New system.Net.Mail.MailAddress(TestRunner.getSetting("emailAddressFrom")), New system.net.Mail.MailAddress(TestRunner.getSetting("emailAddressTo")))
With insMail
'set the subject
.Subject = strSubject
'set the body
.Body = strBody
'add attachment
If strAttachmentPath <> "" and file.Exists(strAttachmentPath) Then .Attachments.Add(New system.Net.Mail.Attachment(strAttachmentPath))
End With
Dim smtp As New System.Net.Mail.SmtpClient
smtp.Host = TestRunner.getSetting("emailHost")
smtp.Port = 25
smtp.Send(insMail)
report.Info("Email", "Sent")
Catch ex As System.Exception
report.Failure("Email", ex.Message.ToString)
Throw New Exception("Exception")
End Try
End If
End Sub



If you need SMTP authentication take a look at sending emails using CDO - http://www.google.co.uk/search?sourceid ... %2enet+cdo

Hope this helps
Scott

Re: Sending an email of Test Results

Posted: Wed Oct 13, 2010 10:08 am
by Support Team
Hi,

Of course it is possible to customize your Report. Many of our customers use its own Reports. Please take a look to following blog for your issue. In this blog will be explained "How to customize your Report and send it via mail". http://www.ranorex.com/blog/customizing-ranorex-reports

Regards,
Peter
Ranorex Team

Re: Sending an email of Test Results

Posted: Wed Oct 13, 2010 3:34 pm
by smalldoorman
Peter,
I ran across that tutorial after I posted this. Thing is, I'm still learning C# as I go and the tutorials written, although concise, do not help with telling me where each snippet is supposed to go.

For example I'm told to "right click on IReportLogger and select “MailLogger -> Implement Interface (implicit) -> IReportLogger” and Ranorex Studio will create stubs for the interface methods for you." But I cannot find the IReportLogger in the Studio and nothing comes up for IReport on the Ranorex website.

Are there anymore detailed steps as to what needs to go into what files at least?

Re: Sending an email of Test Results

Posted: Thu Oct 14, 2010 1:00 pm
by Support Team
Hi,

Please take a look at the sample project how we implemented the Custom Logger. Please click following link (link is also available in the blog):
http://www.ranorex.com/blog/wp-content/ ... ogging.zip
Save the zip file to your hard drive and extract it. Then please open the Ranorex Solution Project and take a look at the implementation.

Regards,
Peter
Ranorex Team

Re: Sending an email of Test Results

Posted: Thu Jun 28, 2012 2:39 pm
by Pixi6s
Hello,

This is great but I require to send a boolean for secureSSL to use our SMTP. How do I do that?

Thanks

Error:
System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.1 Client was not authenticated
at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
at System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, String from)
at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at CustomLogging.MailLogger.End() in c:\temp\CustomLogging\CustomLogging\MailLogger.cs:line 242

Re: Sending an email of Test Results

Posted: Thu Jun 28, 2012 9:38 pm
by Pixi6s
If you have any ideas please share, but it might be the way we smtp setup. I needed to use a specific email address (configured for smtp) and give email a password. So if you have no ideas, no worries. :)

Re: Sending an email of Test Results

Posted: Fri Jun 29, 2012 8:09 am
by sdaly
In c#

NetworkCredential credentials = new NetworkCredential("username", "Password");
smtp.Credentials = credentials;

//for ssl
smtp.EnableSsl = true;

Re: Sending an email of Test Results

Posted: Fri Sep 28, 2012 3:22 am
by jchou
Is there a way to access test result (failed or successful) at the end of a test case (or a test suite), so that I can put some data in email accordingly. Thanks.

Re: Sending an email of Test Results

Posted: Fri Sep 28, 2012 1:47 pm
by Support Team
Hi,

I created a solution for you where you can see how you can send the zipped report as attachment and how you can send a summary of the test run in the email body.
The Recording1 executes some actions on the Windows Calculator which should also run on your machine.
You have to edit the following files:
Program.cs: Enter the email address where you want to send the email from and where you want to send the email to and you have to specify which messages should be logged to the email body, for instance:
MailLogger.ReportLevelMail = ReportLevel.Success;
MailLogger: You have to change the network credentials in the PrepareAndSendMail method.

The Recording2 also checks in the CheckState method if the current test case failed.
I hope this will help you solve the issue!

Regards,
Markus
Ranorex Support Team

Re: Sending an email of Test Results

Posted: Mon Oct 01, 2012 7:39 am
by jchou
Thanks, Markus. I used your sample code (modified the test case to use one of mine), and it did send an email with test results, and also attached the report to the email.
One question: in my test case, I need to run multiple iterations (to cover different test sites). Currently, when one iteration failed, the whole execution stopped. (I saw some console messages saying closing down logger, etc.. Is there a way to continue to finish all iterations regardless some of them failed? My test case error behavior is set to continue with siblings when an iteration fails, but that did not seem to help.

Also, could you point me to the APIs of report contents? For example, if I want to print out the test site's URL (targetUrl?), where do I get it?

Thanks.

Joe

Re: Sending an email of Test Results

Posted: Tue Oct 02, 2012 12:00 pm
by Support Team
Hi,

You can set the "Error Behavior" of the test case to "Continue with iteration".
Please take a look at the following link: Test Case Settings.
You can print html content with the following code:

Code: Select all

// add some custom HTML message to the XML report
Report.LogHtml(ReportLevel.Info, "Link", "<a href='http://www.ranorex.com/'>Visit www.ranorex.com!</a>");
you can get the URL of the test page via the WebDocument element:
WebDocument yourWebDoc = "";
Report.LogHtml(ReportLevel.Info, "Link", "<a href='"+yourWebDoc .PageUrl+"'>YourText</a>");
Here are also the links to the Reporting section of the UserGuide and of the Online API:
Lesson 8: Reporting
Report Class.
I hope this will help you solve the issue!

Regards,
Markus
Ranorex Support Team

Re: Sending an email of Test Results

Posted: Mon Oct 22, 2012 7:54 am
by jchou
Thanks, Marcus, that (continue with iterations) worked.
One more question: I tried to implement your emailing code to a new project by porting MailLogger.cs and part of Program.cs (the code that calls MailLogger methods) to the new project. The email part seemed to work fine, but the zipped report was not generated. How is the zipped report file (.rxzlog) got generated? Or where is the code that compress the report file into a zipped file? What did I miss to create a compressed report file before it could be attached to email to be sent?

Thanks.

Re: Sending an email of Test Results

Posted: Mon Oct 22, 2012 10:43 am
by Support Team
Hi,

You find the setting in the properties window of the test suite, see attached screenshot.
ZippedReport.png
Regards,
Markus
Ranorex Support Team

Re: Sending an email of Test Results

Posted: Tue Nov 06, 2012 3:33 am
by jchou
Thanks a lot, Markus. That simple checking of Compressed Copy does the trick (I was about to copy my original project over and then add all the test cases to it. So glad to know that one click in the Compressed Copy check box saved all that replication work!)
Now here is a new problem (always one thing leads to another, right?): some receivers of my compressed copy of reports through email could not open the report, since they had not installed Ranorex on their machines. What can they do to be able to open the compressed report without installing Ranorex?