Можете написать PageFactory.initElements в конструкторе PageObject и тогда не надо будет его писать каждый раз. Во всяком случае будет доступна ленивая инициализация елементов PageObject.
- Форум тестировщиков
- → Публикации elvis
85 публикаций создано elvis (учитываются публикации только с 05 июня 2023)
Отправлено автор: elvis 12 марта 2016 - 12:37 в Selenium - Functional Testing
Можете написать PageFactory.initElements в конструкторе PageObject и тогда не надо будет его писать каждый раз. Во всяком случае будет доступна ленивая инициализация елементов PageObject.
Отправлено автор: elvis 29 марта 2016 - 05:51 в Selenium - Functional Testing
Привет!
Я тоже считаю, что PageFactory не нужна. Более того, я думаю, что объявление элементов как полей класса пэдж-обжекта - неправильно. Это компроментирует одно из ключевых понятий ООП (ведь пэдж-обжект - это объект, верно?) - инкапсуляцию.
Смотрите, как можно сделать Page Object ещё гораздо проще. Без всяких фактори.
import static com.codeborne.selenide.*; public class ReallySimplePageObject { public void find(String word){ $("#lst-ib").sendKeys("Искать что-нибудь"); $(By.name("btnK")).click(); } } @Test public void canSearchWithGoogle() { ReallySimplePageObject searchPage = open("https://www.google.com.ua", ReallySimplePageObject.class); searchPage.find("Искать что-нибудь"); }
Ага, и копи-пейстить эти локаторы, если они используются в ReallySimplePageObject.class неоднократно? Ведь всякие случаи бывают. Изменится локатор, искать его тоже в методе будете? Безымянный и с трёхэтажным xpath. Тут я не совсем согласен. Лучше объявить эти локаторы By в начале класса. Бывают конечно и исключения.. но на то они и исключения.
Отправлено автор: elvis 15 сентября 2016 - 07:15 в Автоматизированное тестирование
возьмите любой веб-проект с гитхаба, установите локально и автоматизируйте до посинения
Отправлено автор: elvis 16 сентября 2016 - 06:50 в Автоматизированное тестирование
Molechka как сняла с языка.
Отправлено автор: elvis 14 сентября 2016 - 10:01 в Автоматизированное тестирование
Самый простой способ - это selenide
http://selenide.org/quick-start.html
Там есть ссылки на примеры на гитхабе
селенид хорош, но для меня сейчас больше актуален селениум.
а поподробнее - чем вам голый селениум актуальнее удобной обёртки вокруг него же?
Отправлено автор: elvis 08 августа 2016 - 12:57 в Автоматизированное тестирование
ребят, ну что вы как маленькие. Читаем документацию
можешь в ассерт вставить сообщение которое будет вываливаться при фейле. И в это сообщение можешь любую информацию о переменных вывести. Элементарные вещи спрашиваете.
Отправлено автор: elvis 08 августа 2016 - 14:26 в Автоматизированное тестирование
По поводу варианта elvis
по мне
ошибка expected [true] but found [false]
выглядит менее читаемо в отчете, чем
ошибка
не совсем понял о чём вы? Выглядеть оно будет не так.
Отправлено автор: elvis 11 августа 2016 - 07:01 в Автоматизированное тестирование
Немного не в тему, но такой функционал есть в gauge https://github.com/getgauge . Там кроме сценариев и спецификаций (аналог feature) есть ещё понятие concept, который составляется из существующих шагов, хранится в отдельном файле и может быть указан как шаг в любом сценарии. Если есть желание попробовать что-то новое, то gauge неплохая альтернатива cucumber. http://getgauge.io/d...s/concepts.html
Отправлено автор: elvis 12 мая 2016 - 15:06 в Автоматизированное тестирование
Я пробовал, давным-давно, на десктоп-приложении.
Могу сказать, что это извращение, и реальной пользы от этого подхода достичь вряд ли возможно.
То, что вы этим решили позаниматься - хорошо и похвально, но строить на этом все тестирование продукта - провальная затея.
А никто и не говорит про полное тестирование. Просто есть некоторые места где это бы пригодилось. И почему же всё таки извращение? Существует, насколько я знаю даже не один фреймворк поддерживающий такой вид проверок. Даже, если не ошибаюсь Yandex это использует (где-то об этом читал).
Отправлено автор: elvis 12 мая 2016 - 14:03 в Автоматизированное тестирование
Заморочился вникнуть в тему тестирования графики веб приложения при помощи референсных скриншотов. Кто пользовался таким методом тестирования, и что можете сказать?
Навскидку, первые проблемы с которыми я столкнулся - если шрифт чуть по другому рендерится в разных браузерах, то тесты упадут. Попробовал метод так называемого fuzzy сравнения изображений, который позволяет определить некоторый допуск, но с ним есть одна загвоздка - как выбрать такой порог допуска, чтобы и незначительные отклонения игнорировать и отлавливать ошибки, где скажем появилась запятая не там где надо, или кавычки пропали?
Отправлено автор: elvis 14 июля 2016 - 07:10 в Автоматизированное тестирование
Отправлено автор: elvis 11 мая 2016 - 06:57 в Автоматизированное тестирование
"//a[@href='/welcome']"
И не советую использовать полный путь xpath как вы это делаете. Добавится какой-нибудь элемент в промежутке и все локаторы слетят. Пользуйтесь атрибутами элементов для поиска.
Отправлено автор: elvis 27 сентября 2016 - 12:32 в Автоматизированное тестирование
а приоритеты тестам в коде как назначаете?
Отправлено автор: elvis 11 апреля 2016 - 12:13 в Автоматизированное тестирование
Поделитесь опытом, коллеги. Кто как логирует прогресс тестов, и логируете ли вообще. В случае когда все тесты идут один за другим нет вопросов, а вот с параллельными тестами возникает каша в консоли. Интересует конечно прежде всего варианты для Java.
Отправлено автор: elvis 12 апреля 2016 - 17:28 в Автоматизированное тестирование
Жесть, но есть над чем поработать. В итоге конечно, будет всё в каше, но по названию тестового класса можно grep'ом отфильтровать что надо. Плюс наверное буду писать для каждого тест класса отдельный лог файл.
Отправлено автор: elvis 26 марта 2016 - 12:06 в Автоматизированное тестирование
Я что-то не совсем понимаю. В чём проблема поженить Jenkins c TFS? Есть же соответствующие плагины
Отправлено автор: elvis 02 апреля 2016 - 09:50 в Selenium - Functional Testing
при чём тут селениум?
Отправлено автор: elvis 04 апреля 2016 - 13:48 в Selenium - Functional Testing
C огурцом особенно не связывался, поэтому не могу ничего посоветовать, но селениум тут точно ни при чём. За параллельный запуск он не отвечает. А гуглить пытались?
Вот какой-то пример сразу https://opencredo.co...ts-in-parallel/
Отправлено автор: elvis 29 сентября 2016 - 07:06 в Автоматизированное тестирование
.
Отправлено автор: elvis 26 апреля 2016 - 17:17 в Автоматизированное тестирование
Ну первое, что на ум приходит - пусть твой тест, например читает переменные окружения через System.getProperty("sendTo") а их можно очевидно устновить из командной строки.
-DsendTo=mail@mail.ru -DnumberOfDays=30
Но вообще, на мой взгляд запускать тесты из jar - извращение в чистом виде.
Отправлено автор: elvis 27 апреля 2016 - 14:47 в Автоматизированное тестирование
Но вообще, на мой взгляд запускать тесты из jar - извращение в чистом виде.
А как ещё это можно сделать, подскажите, пожалуйста.
Я знаю несколько способов:
1) Из среды разработки (например, Eclipse).
2) Выгрузить в другую прогу (например, в JMeter) и запускать из неё.
3) Через командную строку (тогда можно подключить Jenkins и настроить в нём задания).
Точно так же и локально с командной строки запускаете, если Jenkins не настроен. Тем же maven или gradle и передавайте им какие хотите параметры.
Отправлено автор: elvis 25 мая 2016 - 17:38 в Автоматизированное тестирование
Поставь брейк поинт в IDE на одном из таких тестов и посмотри куда оно ходит для повторного вызова.
Отправлено автор: elvis 23 августа 2016 - 20:47 в Автоматизированное тестирование
приведите больший кусок кода. элемент li там явно не один?
Отправлено автор: elvis 27 июня 2016 - 06:43 в Автоматизированное тестирование
что значит не запускает браузер? Вполне себе запускает, просто проблема в том, что у агента нет никакого физического монитора, и ему нужно указать виртуальный дисплей (не знаю как это делается на винде, на linux это xvfb). Или есть вариант запускать тесты с headless драйвером вроде phantomjs.
Отправлено автор: elvis 11 июля 2016 - 14:33 в Автоматизированное тестирование
а мне кажется лучше проверить текущий URL и в зависимости от него установить локатор. Иначе вы будете тратить время на таймаут, пока будете ловить исключение.
Community Forum Software by IP.Board Русификация от IBResource
Лицензия зарегистрирована на: Software-Testing.Ru