Перейти к содержимому

Фотография

проверка состояния теста


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 velazkes

velazkes

    Новый участник

  • Members
  • Pip
  • 34 сообщений
  • ФИО:Малявко Виктор
  • Город:Минск

Отправлено 15 марта 2012 - 10:34

при написания некоторых тестов в связке селениум+тестнг возникла потребность узнавать завалился тест или нет...
т.е при условии, что тест падает, мне необходимо делать скриншот...так вот как из кода проверить прошел тест или нет ?.. есть ли вообще такая возможность, ибо писать if в каждом методе как-то не айс.
заранее благодарен
  • 0

#2 Vitalik_V

Vitalik_V

    Активный участник

  • Members
  • PipPip
  • 149 сообщений
  • ФИО:Виталий
  • Город:Харьков

Отправлено 15 марта 2012 - 10:40

при написания некоторых тестов в связке селениум+тестнг возникла потребность узнавать завалился тест или нет...
т.е при условии, что тест падает, мне необходимо делать скриншот...так вот как из кода проверить прошел тест или нет ?.. есть ли вообще такая возможность, ибо писать if в каждом методе как-то не айс.
заранее благодарен

Можно создать свой TestListener и в методе onTestFailure делать скрин.
инфа тут http://testng.org/ja...stListener.html
  • 1

#3 velazkes

velazkes

    Новый участник

  • Members
  • Pip
  • 34 сообщений
  • ФИО:Малявко Виктор
  • Город:Минск

Отправлено 15 марта 2012 - 11:03

Спасибо за помощь!
пока читал про листенер наткнулся на интересную штуку, в итоге реализация выглядит примерно так :
@AfterMethod
public void AfterMethod(ITestResult result) {
if (!result.isSuccess()) {
Screenshot.makeScreenshot();
}
firefox.close();
}
две строчки решили весь мой вопрос :)
  • 0

#4 velazkes

velazkes

    Новый участник

  • Members
  • Pip
  • 34 сообщений
  • ФИО:Малявко Виктор
  • Город:Минск

Отправлено 15 марта 2012 - 13:10

возник вопрос вот такого характера :
если возможность проверить, что например файерфокс закрыт. дело в том что есть два метода…изначально работает один и он закрывает браузер…но браузер закрывается не всегда, ибо ему иногда мешает всплывающий алерт..а второй метод как-раз и кликает по алерту…так вот, хочется проверить, закрылось ли окно браузера или нет после работы первого метода
  • 0

#5 Rara

Rara

    Активный участник

  • Members
  • PipPip
  • 83 сообщений
  • ФИО:Кондрашов Юрий Алексеевич
  • Город:Минск, Беларусь


Отправлено 16 марта 2012 - 07:53

возник вопрос вот такого характера :
если возможность проверить, что например файерфокс закрыт. дело в том что есть два метода…изначально работает один и он закрывает браузер…но браузер закрывается не всегда, ибо ему иногда мешает всплывающий алерт..а второй метод как-раз и кликает по алерту…так вот, хочется проверить, закрылось ли окно браузера или нет после работы первого метода

Какая-то странная логика у вашего приложения. Вначале закрываем браузер, а потом кликаем по алерту. Может лучше эти два действия поменять местами? :)
public void closeBrowser() {
   try {
      Alert alert = driver.switchTo().alert();
      alert.accept();
   } catch (Exception e) {
      // Ничего не делаем. Просто алерта в этот раз не было.
   }
   driver.close();
}

  • 1
Я бы переписал жизнь, но Бог не дает мне исходники

#6 velazkes

velazkes

    Новый участник

  • Members
  • Pip
  • 34 сообщений
  • ФИО:Малявко Виктор
  • Город:Минск

Отправлено 16 марта 2012 - 11:52


возник вопрос вот такого характера :
если возможность проверить, что например файерфокс закрыт. дело в том что есть два метода…изначально работает один и он закрывает браузер…но браузер закрывается не всегда, ибо ему иногда мешает всплывающий алерт..а второй метод как-раз и кликает по алерту…так вот, хочется проверить, закрылось ли окно браузера или нет после работы первого метода

Какая-то странная логика у вашего приложения. Вначале закрываем браузер, а потом кликаем по алерту. Может лучше эти два действия поменять местами? :)
public void closeBrowser() {
   try {
      Alert alert = driver.switchTo().alert();
      alert.accept();
   } catch (Exception e) {
      // Ничего не делаем. Просто алерта в этот раз не было.
   }
   driver.close();
}


есть BeforeMethod и там происходит driver.close(),а после его выполнения идет BeforeTest, в котором я должен кликнуть по алерту “Точно ли вы хотите выйти с этой страницы”. Дело в том, что алерт сам по себе всплывает как-то рандомно, и, соответственно, если алерт не выскочил и файерфокс удачно закрылся - BeforeTest падает... т.е тест проходит хорошо, а валится лишь аннотация одна
  • 0

#7 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 16 марта 2012 - 12:15

а почему вы не хотите проверять наличие окна фаерфокса с определённым названием? Есть окно - браузер открыт, нет окна - закрыт
  • 0

#8 velazkes

velazkes

    Новый участник

  • Members
  • Pip
  • 34 сообщений
  • ФИО:Малявко Виктор
  • Город:Минск

Отправлено 16 марта 2012 - 12:29

а почему вы не хотите проверять наличие окна фаерфокса с определённым названием? Есть окно - браузер открыт, нет окна - закрыт


дело в том, что тестируется порядка 10 страниц... 100% алерт выскакивает только на одной...
на остальных же - рандом. как я думаю, зависит ,будет алерт или нет, от скорости моего инета...ибо если не все елементы подгрузились, а нужный мне уже есть и тест прошел - то браузер может и не закрыться. и вот именно это и надо как-нить выяснить.. просто я думаю, что может есть более изящный способ проверки, чем писать проверку для имени каждой конкретной страницы.
  • 0

#9 velazkes

velazkes

    Новый участник

  • Members
  • Pip
  • 34 сообщений
  • ФИО:Малявко Виктор
  • Город:Минск

Отправлено 16 марта 2012 - 12:52

вопрос решен
пошел другим путем и написал обработчик для алерта...
т.е после закрытия он просто ждет и если алерта нету - все ок и наоборот...
если кому интересно, могу поделиться кодом :)

всем спасибо за помощь !
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных