Robot Framework
На русском
Хабр
Selenium с Robot Framework — тест пользовательского интерфейса
FaryaRos
22 ноя 2024 в 22:37
Selenium с Robot Framework — тест пользовательского интерфейса
Перевод с английского. Контент так себе не думаю, что это статья уровня хабра. Много не очень хорошо организованных скриншотов. Из интересного - используется DataDriver,
но про него ничего толком не сказано.
Как я перестал бояться и полюбил автоматизацию мобильных приложений — Robot Framework
Никита Кулаченков kulac (Яндекс Практикум) 5 мар 2024 в 09:00
Как я перестал бояться и полюбил автоматизацию мобильных приложений — Robot Framework
Статья про тестирование мобильных приложений. Проверять что-там делается я пока не буду. Из интересного - рассказывают про настройку рабочей среды. Робот тесты простые.
Статья MaxRokatansky 19 авг 2023 в 17:05 4 метода тестирования Python-приложений с командной строкой (CLI) - не про робот, там просто рекламируется в конце курс от Otus
This version of ChromeDriver only supports Chrome version XX
13 дек 2022 в 12:37
Linux. Robot Framework: Message: session not created: This version of ChromeDriver only supports Chrome version XX
Эта статья пригодится тем, кто столкнулся с такой же проблемой и ищет ответ в сети.
В целом всё что там написано это не про Robot Framework а про
системную переменную PATH
и
Selenium
Автоматизированное тестирование облачного провайдера Open Telekom Cloud на основе Robot Framework
Artem Lifshits arti_l (Deutsche Telekom IT Solutions) 9 фев 2022 в 16:03
Автоматизированное тестирование облачного провайдера Open Telekom Cloud на основе Robot Framework
Используют
Openstack
это интересно.
Упомянута проблема с отладкой упавших тестов.
Пример без пустых строк, читается тяжело.
Про теги уже было, например
здесь
Я, как видимо и
Владимир Васяев
предпочитаю --include вместо -i для наглядности.
Отличнаая картинка, правда сходу непонятно в чём отличие Production от Pre-Production.
Далее навалено много кода, непонятно насколько это можно воспроизвести в домашних условиях, проверять что там происходит я, конечно, не буду.
Тестирование устройств с помощью Robot Framework
krikkit 8 июля 2021 в 14:00
Тестирование устройств с помощью Robot Framework
Это просто обзор по верхам.
Robot Framework для автоматизации тестирования: ограничения и плюшки
ArkadiyHachikyan
1 мар 2021 в 13:55
Robot Framework для автоматизации тестирования: ограничения и плюшки
Здесь тестируется что-то на RaspberryPI 4B. Из интересного - используется робот библиотека robotframework-seriallibrary и питоновская pygatt
Так как завязано на железо проверить что-то нет возможности. С точки зрения робота тесты очень простые.
Robot Framework vs Pytest
Владимир Васяев (Maxilect) 1 окт 2020 в 15:36
Robot Framework vs Pytest
В самом начале статьи делается интересное заявление:
Фактически, Pytest - реализация xUnit фреймворка для Python.
Если вы всю жизнь работали с jUnit или nUnit (двумя самыми распространенными представителями этого семейства для Java и .NET соответственно),
то в Pytest найдете ровно те же стандарты - быстро поймете, что происходит, будете следовать привычным подходам написания юнит-тестов.
xUnit-фреймворки - это надстройки над языком программирования или библиотеки в них, которые удобно использовать самим разработчикам.
За счет этого они довольно распространены и популярны.
А теперь сравним это с тем, что написано на сайте jetbrains.com
Pytest and unittest are two popular testing frameworks for Python.
Pytest is known for its simplicity, scalability, and powerful features such as fixture support and parameterization.
It has a concise syntax and a rich plugin ecosystem.
On the other hand, unittest is a built-in testing framework that follows the xUnit style and is part of the Python Standard Library. It has features such as test discovery, fixture support, and test suites. Pytest offers advantages like automatic test discovery, skip/xfail tests, and powerful assertion introspection. It also supports parallel test execution and offers easy mocking and patching. However, it is not part of the Python Standard Library and may have a moderate learning curve for beginners.
То есть unittest это реализация xUnit для Python а не Pytest
Далее автор сам это косвенно подтверждает не включая Pytest в xUnit
В xUnit фреймворках есть аннотации, заменяющие настройки suite setup, а в Pytest есть фикстуры со scope=”class”.
В следующем абзаце немного углубляемся в тему Suite Setup
Обычно этот вопрос в Pytest приходится обходить через создание отдельной фикстуры, куда загружаются данные.
Эта фикстура впоследствии подтягивается в тесты.
Другой путь - воспользоваться средствами Python, создав статическое поле у класса, которое будет общим для всех его инстансов
(например, self.__class__.test_id = 2).
Но на мой взгляд, это тоже костыль - к полям класса через подчеркивание не стоит обращаться извне.
Надо уточнить не явлется ли Suite Setup в роботе тоже своего рода фикстурой.
Почему для нового проекта я взял Robot Framework
Владимир Васяев 10 окт 2019 в 10:33
Почему для нового проекта я взял Robot Framework
Это статья написана в блоге Maxilect, но автор уже не Дмитрий Мастеров как в
Мой опыт знакомства и работы с Robot Framework
Эта статья мне кажется очень полезной. В ней много примеров.
Робот с 2019-го года изменился, об этом я как раз напишу ниже, к идее с написанием
названий тест кейсов на русском языке я отношусть с осторожностью.
Сегодня поддержка русского языка есть, но будет ли она завтра? Как показывает практика, в любой момент всё
может измениться. В общем надо где-то хранить исходники робота, чтобы потом форкнуть если что-то пойдёт не так.
А кроме того, Robot Framework позволяет писать параметрические тесты (шаблоны), что сильно ускоряет работу автоматизатора.
Pytest позволяет писать шаблоны ещё лучше с помощью parametrize, о чем позднее писал этот же автор в статье Robot Framework vs Pytest
Один из принципиальных моментов — то, что keyword (аналоги обычных методов в Robot Framework, которые исторически почему-то называют именно так) можно писать по-русски.
В результате тексты тестов, конечно, далеки от литературного языка, но с первого взгляда становится понятно, что там происходит.
Нужно это в первую очередь не конечным разработчикам, а, например, стейкхолдерам.
Они могут самостоятельно открывать тесты и видеть, что именно там происходит: “Выбрать случайный элемент из…” и т.п.
keyword написано по-английски, стейкхолдерами - по-русски. Я сам постоянно сталкиваюсь с проблемой перевода, выглядит не очень. Как делать правильно - пока загадка.
Тегами я осуществляю привязку автотестов к Jira. Когда баг из трекера закрывается, а тест из красного становится зеленым, у нас остается история, что именно изменилось.
Спустя много месяцев, если тест снова станет красным, мы сможем увидеть, какие действия были предприняты для исправления проблемы в прошлый раз, и даже предположить,
что привело к повторному воспроизведению бага.
Отличная тема. Но пока что не понял как это технически реализовано. Что именно будет видно в Jira ? Если тест упал обычно нужно смотреть на продукт или в код, т.е. в случае автора - в Gitlab
Еще один специальный тег у меня добавлен для некритичных багов. GitLab не дает нам ничего делать со сборкой, если падает хотя бы один тест.
Это логично — пока все баги не исправятся, мы не можем выпустить продукт или даже недельный спринт.
Но низкоприоритетные и незначимые баги есть и у нас.
Для них-то я и выделил тег, позволяющий Robot Framework не ронять всю сборку, если конкретно эти тесты (тесты с этим тегом) не проходят.
Видимо, имеется в виду опция
--noncritical
которая
устарела
после версии 4.0.
Сейчас рекомендуется использовать альтернативу robot:skip-on-failure. Хотя у --noncritical как мне кажется есть свои преимущества.
Далее в статье будут примеры кода на роботе. Это большой плюс для статьи.
В разделе про Шаблонные (параметрические) тесты
нужно обратить внимание читателя на строку
Test Template Smoke-тест
Так как именно она пропускает все тесты через шаблон.
Имея шаблон как единую точку входа, мы можем легко добавить проверку года рождения ученого
Проверить наличие слова на странице [Arguments] ${text} ${expected_word} Should contain ${text} ${expected_word} msg=Не найдено искомое слово ${expected_word}!
Важно чётко понимать что мы проверяем в этом тесте. Я уверен, что автор статьи понимает, но в обучающих статьях важно проговаривать такие детали.
Если года рождения ученого на странице нет - тест упадёт, то есть сделает своё дело.
Но если год рождения указан неверно, а настоящий год рождения указан, например, как год женитьбы - это ошибкой не будет. То есть получится ложноположительный (false positive) результат.
Аналогично Force Tags в файле __init__.robot (см. пример в нашем репозитории) позволяет задать теги для всех тестов в директории, включая вложенные.
Эта статья написана в 2019-м году. Сейчас нужно иметь в виду, что Force Tags заменены на Test Tags
Хочу обратиться ко всем авторам статей связанных с программированием: пожалуйста указывайте как называются ваши
файлы и как они расположены относительно друг друга.
Это не так сложно как кажется, достаточно освоить команду
tree
и выкладывать в свои статьи нужную часть вывода.
Переходим в раздел Keyword на python
Первое, что хочу отметить: для создания своих ключевых слов не нужен
декоратор
@keyword и не нужны классы. Достаточно импортировать модуль с
функцией
и эта функция может
быть использована как ключевое слово.
Если удобнее использовать ООП - можно создать модуль и одноимённый
класс
.
Методы
этого класса могут
быть использованы как ключевые слова и без @keyword.
@keyword нужен для дополнительного функционала, например, для создания ключевых слов на русском языке
Подведём итог:
Чтобы успешно импортировать ArrayGeneratorLibrary так как это делает автор, нужно сделать две вещи:
1. Назвать файл с этим классом
ArrayGeneratorLibrary.py
- как обойти это условие для библиотек с
ООП
я не знаю.
2. Добавить родительскую директорию в PYTHONPATH. Этого можно не делать и импортировать например как
Library ../libraries/ArrayGeneratorLibrary.py
если они лежат в соседних директориях.
Строка
ROBOT_LIBRARY_SCOPE = 'GLOBAL'
наверняка нужна автору для его реальных тестов, но в данном примере она необязательна.
Никак не влияет на качество теста, просто отмечу, что evens это такая народность в России, а odds это что-то вроде шансов.
Правильно писать even_numbers и odd_numbers.
[Return] устарело и его рекомендуется заменить на RETURN.
Робот тестирует SAP ERP
Korolevmv (АльфаСтрахование)
2 июл 2019 в 15:34
Робот тестирует SAP ERP
Статья большая но по верхам. Кода мало. Возможно будет интересно тем кто тестирует SAP. Проверять это я, конечно, не буду.
Мой опыт знакомства и работы с Robot Framework
Дмитрий Мастеров (Maxilect)
25 сен 2018 в 11:15
Мой опыт знакомства и работы с Robot Framework
Описаны различные возможные ситуации при выборе стека. Кода нет, но почитать можно.
RoboCon 2018: отчёт о первой конференции по Robot Framework
Luftkrieger (Nexign) 16 фев 2018 в 13:19
RoboCon 2018: отчёт о первой конференции по Robot Framework
Просто отчёт о конференции. Кода там нет.
| Введение |
| Документация |
| Пример |
Автор статьи: Андрей Олегович