Действия при неудачном тесте
#1
Отправлено 17 мая 2011 - 15:43
Как правильно организовать процес? Используется Selenium + testNg/junit + java + eclipse
Помогите разобраться или определиться куда копать! Нагуглить так ничего и не смог.
#2
Отправлено 17 мая 2011 - 17:15
Смотреть статус теста в @AfterTest?Для начала основная задача - при неудачном тесте просто отправить EMAIL. В дальнейшем можно сделать с отчетом об ошибке и скриншотом, но для начала просто - если тест упал - то отправить письмо!
Как правильно организовать процес? Используется Selenium + testNg/junit + java + eclipse
Помогите разобраться или определиться куда копать! Нагуглить так ничего и не смог.
#3
Отправлено 18 мая 2011 - 07:22
На счёт получения результатов, можно поднять хадсон у себя поставить на него junit аддон, и он сам будет автоматом собирать данные и отсылать даж эти результаты на указанные мыла.
Возникает другой вопрос как прицепить к этому письму скриншоты которые были сняты.
#4
Отправлено 18 мая 2011 - 09:25
Не нужны результаты на мыло.. нужно просто отправить письмо при падении теста..и он сам будет автоматом собирать данные и отсылать даж эти результаты на указанные мыла.
Да, вот сэтим не могу разобраться... может кто-нибудь объяснить как это работает ?Смотреть статус теста в @AfterTest?
#5
Отправлено 18 мая 2011 - 09:34
А что именно не получилось применить из описанного в статье "Selenium+TestNG: Автоматическое снятие скриншотов при неуспешном прохождении теста"?Я читал статьи... со скриншотами проблем нету.. снимаются... единственное что не получилось, сделать так чтоб скриншот снимался при падении теста... (к чему собственно топик и был поднят... ) Но спасибо за линк..
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#6
Отправлено 18 мая 2011 - 09:35
Да, чтобы отправлять письмо, listener придется переделать, чтобы он не в отчёт добавлял снятый скриншот, а отправлял его на указанный адрес. Для отправки используйте JavaMail.Не нужны результаты на мыло.. нужно просто отправить письмо при падении теста..
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#7
Отправлено 18 мая 2011 - 09:42
Проще использовать IInvokedMethodListener2 или IInvokedMethodListener.Да, вот сэтим не могу разобраться... может кто-нибудь объяснить как это работает ?Смотреть статус теста в @AfterTest?
Но если хочется -- можно проверять статус выполненного теста в @AfterMethod (именно в нём, а не в @AfterClass или @AfterTest, ведь Вы же статус каждого метода собираетесь проверять, верно?).
Для этого надо в список параметров добавить параметр типа ITestResult:
@AfterMethod public static void checkStatus(ITestResult result) { if (result.isSuccess()) { return; } else { // test failed!!! do whatever you want } }
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#8
Отправлено 18 мая 2011 - 10:58
А что именно не получилось применить из описанного в статье "Selenium+TestNG: Автоматическое снятие скриншотов при неуспешном прохождении теста"?
Статьи пока только прочитал..
попробую применить когда разберусь как вообще лисенеры работают... (моцк вскипает) скриншоты снимаю пока Loggingselenium
на него и поглядываюДля отправки используйте JavaMail.
Это выглядит как то что нужно... сегодня сяду изучать...@AfterMethod
А где можно доступно прочитать как этим пользоваться? (можно даже на английском)Проще использовать IInvokedMethodListener2 или IInvokedMethodListener.
#9
Отправлено 18 мая 2011 - 15:32
http://testng.org/do...estng-listenersА где можно доступно прочитать как этим пользоваться? (можно даже на английском)Проще использовать IInvokedMethodListener2 или IInvokedMethodListener.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#10
Отправлено 18 мая 2011 - 21:07
import javax.mail.*; import javax.mail.internet.*; import java.util.Properties; public class SimpleMail { private static final String SMTP_HOST_NAME = "smtp.gmail.com"; private static final int SMTP_HOST_PORT = 465; private static final String SMTP_AUTH_USER = "XXXXX@gmail.com"; private static final String SMTP_AUTH_PWD = "YYYYY"; public void sendMail(String subj, boolean isOk) throws Exception{ Properties props = new Properties(); props.put("mail.transport.protocol", "smtps"); props.put("mail.smtps.host", SMTP_HOST_NAME); props.put("mail.smtps.auth", "true"); // props.put("mail.smtps.quitwait", "false"); Session mailSession = Session.getDefaultInstance(props); mailSession.setDebug(true); Transport transport = mailSession.getTransport(); MimeMessage message = new MimeMessage(mailSession); message.setSubject("TestResults"); message.setContent(subj, "text/plain"); if (isOk) message.addRecipient(Message.RecipientType.TO, new InternetAddress(SetUp.OkSubject)); else message.addRecipient(Message.RecipientType.TO, new InternetAddress(SetUp.failSubject)); transport.connect (SMTP_HOST_NAME, SMTP_HOST_PORT, SMTP_AUTH_USER, SMTP_AUTH_PWD); transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO)); transport.close(); } }
public class TestListener extends TestListenerAdapter { @Override public void onTestFailure(ITestResult tr) { notificate(false); } @Override public void onTestSkipped(ITestResult tr) { notificate(false); } @Override public void onTestSuccess(ITestResult tr) { notificate(true); } private void notificate(boolean isTestPassed) { SimpleMail sl = new SimpleMail(); if (!isTestPassed) { try { sl.sendMail(SetUp.failTextForMail, false); } catch (Exception e) { e.printStackTrace(); } } else { try { sl.sendMail(SetUp.OkText,true); } catch (Exception e) { e.printStackTrace(); } } } }
примерно как-то так, код старый - я его давно не смотрел
но, думаю, первые шаги поможет сделать
ну и аннотацию добавьте, конечно, к тесту чтобы слушатель работал
@Listeners(myPackage.TestListener.class)
#11
Отправлено 19 мая 2011 - 11:00
#12
Отправлено 20 мая 2011 - 02:42
Если что-то непонятно - спрашивайте
#13
Отправлено 20 мая 2011 - 11:06
Selenium+TestNG: Автоматическое снятие скриншотов при неуспешном прохождении теста
Разобрался, настроил... при падении теста скрин снимается и летит на почту..
Осталась нерешенная проблема:
не могу понять как конфигурировать testnghelper чтобы добавить автоматический запуск сервера с разными браузерами...
(чтобы не запускать сервер вручную)
В идеале было б добавить класс с вариантами запуска сервера с разными браузерами и вызывать их из отдельных тестов по очереди.
подскажите как лучше это организовать ?
#14
Отправлено 26 мая 2011 - 13:11
но возникла такая проблема - при использовании Jenkins у меня отправляется отчет с результатами тестов из предыдущей сборки, так как новые результаты тестов сохраняются в папку с отчетами уже после завершения сборки и прогона тестов, а отправка отчета срабатывает раньше, во время запуска тестов.
Можно это как-то поправить?
#15
Отправлено 27 мая 2011 - 03:33
можно, но вам не в эту темуМожно это как-то поправить?
это уже специфика настроек средства непрерывной интеграции
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных