Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

"Умная" библиотека для тестирования web UI под robot framework

selenium
webdriver
Теги: #<Tag:0x00007f7b60fc0c00> #<Tag:0x00007f7b60fc0a70>

(Станислав Александрович) #1

Сейчас использую robot framework и библиотеку selenium для автоматизации web UI. Однако часто получаю так называемые flaky тесты. В докладе с гейзенбага о способах борьбы с такими тестами советуют использовать selenide. Однако для robot framework я таковой не нашел.
Поделитесь опытом, есть ли какие-либо аналоги под robot framework??


(Maxim Zaitsev) #2

Selenide сам по себе фреймворк. Искать фреймворк для фреймворка ?
Не проще ли использовать сразу selenide (для python: selene)


(Станислав Александрович) #3

Я пока только разбираюсь и подбираю наилучший вариант. Тесты на selene оставлю про запас. Мне в общем то нравится сам robot, его key driven структура очень удобна в написании тестов. Если вариантов не окажется, то да, придется использовать вариант с тестами на selene. Ну и возможно, есть какие-либо уже готовые библиотеки для robot, которые позволят осуществить “умные” нажатия.


(Maxim Zaitsev) #4

Я бы робот оставил про запас :slight_smile: Ну каждому свое.
Следует иметь ввиду, что многие нестандартные ситуации будут приводит к поиску “готовой библиотеки под robot” или необходимости пилить свою.
Зачем это все, когда можно использовать средства языка программирования напрямую …


(Станислав Александрович) #5

Почитал доку по selene, и правда все выглядит удобно. Однако как быть с запуском тестов и отчетами? Мне пока не очень понятно в каком это будет виде. Для робота например есть плагин в jenkins и результаты запуска отображаются сразу


(Maxim Zaitsev) #6

Запуск тестов: https://docs.pytest.org/en/latest/
Отчеты: https://github.com/allure-framework/allure-python
Плагин для Jenkins: https://plugins.jenkins.io/allure-jenkins-plugin

В Jenkins настраиваем джобу:


Сборка:
Выполнить команду Windows (или shell): py.test --alluredir ./allure-results ./tests

Послесборочные операции:
тут указываем allure report (выбираем из списка шагов)

Конечно, придется попотеть чуток, чтобы освоить эти инструменты.
Советую поиграться отдельно, то есть сначала разобраться с запуском тестов через pytest, потом с отчетами, потом уже когда все будет понятно - настроить джобу.


(Евгений) #7

Сейчас использую robot framework и библиотеку selenium для автоматизации web UI. Однако часто получаю так называемые flaky тесты

А можно больше конкретики о том, на каких действиях падают тесты и какие технологии в вашем UI? А вообще это решается написанием киворда или ресурса с кивордами, обёртывающие selenium киворды и учитывающие ваше конкретное приложение


(Станислав Александрович) #8

спасибо, в ближайшее время посмотрю


(Станислав Александрович) #9

Web на react.js, сложности часто возникают с ожиданием загрузки данных на странице, сейчас решаю вопрос добавлением wait until element is not visible class:preloader…
Однако периодически получаю ошибку: element is not attached to the page document
Также периодически ошибки возникают при развертывании свойств элементов (нужен клик на div, например), в качестве ошибки - элемент не найден
Клик пробовал сделать через Click element, а также mouse down + mouse up
Библиотеки для react на robot я не нашел


(Евгений) #10

да, тоже такое было, автоматизация была маленьким адом. Во-первых, ожидайте наличие контрола на странице. Во-вторых, можно и нужно ожидать что элемент enabled и visible, а далее, если необходимо ожидайте наличия нужного атрибута в контроле.
Думаю, для начала нужно это реализовать.

Если этого будет мало, то можно еще проверять состояния контролов и аппликейшена с помощью javascript (есть киворд Execute Javascript)


(Станислав Александрович) #11

Добавил enable и visible - проблемы периодически возникают, но стало заметно лучше, благодарю