Robot Framework

Содержание
тестирование мобильных приложений
тестирование Open Telekom Cloud
Тестирование устройств с помощью Robot Framework
Robot Framework vs Pytest
Почему для нового проекта я взял 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

Просто отчёт о конференции. Кода там нет.

Основы
Введение
Документация
Пример

Автор статьи: Андрей Олегович

Похожие статьи
Основы
Архитектура
Библиотеки
Переменные: set, reassign…
if else: Условные операторы
in: Оператор принадлежности к списку
Циклы
Перенос на новую строку
[Tags]: теги
JSON
Передача аргументов в кейворд
Evaluate
Поддержка Robot в PyCharm
Ошибки

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.com
Пишите на info@aredel.com если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: