Запуск многих тестов на Selenium RC+Java+maven
#1
Отправлено 31 октября 2011 - 15:29
Пример. Есть очень много автоматизированных тестов.
Каждый раз при запуске автоматизированного теста создается новый профайл.
Соответственно много времени тратиться на его создание.
Как сделать так, чтобы 1 раз создать профайл и запускать именно его и в следущий раз не тратить постоянно столько времени на его создание ? К тому же тьму профайлов FF не выдерживает мой ПК ))
___
Еще вопрос, как грамотно делать автоматизированные тест кейсы.
Допустим надо проверить добавляется ли на портал данные об автомобиле.
Выполняем следующие шаги
1)Логинемся на портале
2)Добавляем данные об автомобиле
3)Если все хорошо, мы получили true, если что-то не сработало - false.
Надо ли после шага 3 выходить с портала. Просто получается, что мы не чистим кэш, поэтому остаемся залогинены. И кейс валится
_____
Заранее извиняюсь, что не искал ответы на форуме, просто очень устал на работе :(
#2
Отправлено 31 октября 2011 - 17:36
Я почти ничего не понял, но, судя по тому, что произошло, мы переделали @before @after , заюзали @beforeClass и @afterClass - получилось что браузер рестартует и перелогинивается не раз в тест, а раз в класс.
Если надо - завтра подсмотрю как это сделано и допишу.
#3
Отправлено 01 ноября 2011 - 05:26
Ну да, классы тестов наследуются от класса в котором и определены должным образом @before @after @beforeClass @afterClassЕсли надо - завтра подсмотрю как это сделано и допишу.
Итого - рестарт браузера с перелогиниванием - раз в класс.
#4
Отправлено 01 ноября 2011 - 07:36
import java.io.BufferedWriter; import java.io.IOException; import Helper.Report; import com.unitedinternet.portal.selenium.utils.logging.LoggingDefaultSelenium; import com.unitedinternet.portal.selenium.utils.logging.LoggingSelenium; public class SeleniumSingl { public static final String HOST = "localhost"; public static final int PORT = 4444; public static final String BROWSER = "*firefox C:/Program Files (x86)/Mozilla Firefox/firefox.exe"; public static final String URL = "URL"; protected LoggingSelenium selenium; private static SeleniumSingl instance; protected BufferedWriter loggingWriter; private SeleniumSingl() { Report report = new Report(); selenium = new LoggingDefaultSelenium(report.getProcessor()); selenium.start(); selenium.open("/"); } public static SeleniumSingl getInstance() { if (null == instance) { instance = new SeleniumSingl(); } return instance; } public LoggingSelenium getSelen() { return selenium; } public void tearDown() { selenium.stop(); try { if (null != loggingWriter) { loggingWriter.close(); } } catch (IOException e) { // do nothing } } }
затем в начале каждого теста
selenium = SeleniumSingl.getInstance().getSelen();
для завершения работы селениума
SeleniumSingl.getInstance().tearDown();
#5
Отправлено 01 ноября 2011 - 07:53
Я писал для этого отдельный класс
затем в начале каждого теста
selenium = SeleniumSingl.getInstance().getSelen();
для завершения работы селениума
SeleniumSingl.getInstance().tearDown();
Угу, это логичный и правильный первый шаг.
Второй - тестовые классы наследуем от SeleniumSingl, а getSelen() и tearDown() помечаем как @before и @after, чтоб не копипастить.
#6
Отправлено 01 ноября 2011 - 11:01
Как сделать так, чтобы 1 раз создать профайл и запускать именно его и в следущий раз не тратить постоянно столько времени на его создание ? К тому же тьму профайлов FF не выдерживает мой ПК ))
Запускаешь ФФ с параметром -ProfileManager
Создаешь собственно профайл. Сохраняешь его туда, где твои скрипты его увидят.
Потом говоришь селениуму чтобы его использовал:
-firefoxProfileTemplate "path to the profile"
для мавена щас не помню конкретно, что-то типа:
<selenese
....
browser="*firefox" timeoutInSeconds="180"
firefoxProfileTemplate="${project.resorce.directory}/path to the profile"
...
кроме того в созданном профиле можно отключить все ненужное, что ускорит запуск тестов, и сделает их немного стабильнее.
вот тут несколько полезных, хоть и немного устаревших советов: http://girliemangalo...enium-rc-tests/
Сообщение отредактировал snark: 01 ноября 2011 - 11:13
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных