- Robot Framework — Unix and Linux Installation
- Setting Path at Unix/Linux
- In the csh shell
- In the bash shell (Linux)
- In the sh or ksh shell
- Install PIP
- Command
- Install Robot Framework
- Command
- Command
- Install wxPython
- Install Ride
- Command
- Command
- Conclusion
- Robot Framework — Установка Unix и Linux
- Установка пути в Unix / Linux
- В оболочке csh
- В оболочке bash (Linux)
- В оболочке ш или кш
- Установить PIP
- команда
- Установите Robot Framework
- команда
- команда
- Установите wxPython
- Установить Ride
- команда
- команда
- Заключение
- Robot framework in linux
- Тестирование устройств с помощью Robot Framework
- Robot Framework
- Тестируемое устройство
- Пишем тесты для embedded-устройства
- Используем готовые библиотеки
- Пишем собственную библиотеку
Robot Framework — Unix and Linux Installation
Let us now see a few simple steps to install Python on Unix/Linux machine. Open a Web browser and go to https://www.python.org/downloads/.
- Follow the link to download zipped source code available for Unix/Linux.
- Download and extract files.
- Editing the Modules/Setup file if you want to customize some options.
- run ./configure script
- make
- make install
This installs Python at standard location /usr/local/bin and its libraries at /usr/local/lib/pythonXX where XX is the version of Python.
Setting Path at Unix/Linux
To add the Python directory to the path for a particular session in Unix −
In the csh shell
type setenv PATH «$PATH:/usr/local/bin/python» and press Enter.
In the bash shell (Linux)
type export ATH=»$PATH:/usr/local/bin/python» and press Enter.
In the sh or ksh shell
type PATH=»$PATH:/usr/local/bin/python» and press Enter.
Note − /usr/local/bin/python is the path of the Python directory
Install PIP
Now, we will check for the next step, which is pip installation for python. PIP is a package manager to install modules for python.
PIP gets installed along with python and you can check the same in command line as follows −
Command
Here we are still not getting the version for pip. We need to add the pip path to Environment variables so that we can use it globally. PIP will be installed in Scripts folder of python as shown below −
Go back to environment variables and add the path of pip to the variables list. Add C:\Python27\SCripts to environment variables as follows −
Now open your command line and check the version of pip installed −
So now, we have python and pip installed.
Install Robot Framework
We will now use pip – python package manager to install the robot framework and the command for it is as follows −
Command
Once the installation is done, you can check the version of robot framework installed as shown below −
Command
So, we can see Robot Framework 3.0.4 is installed.
Install wxPython
We need wxPython for Robot Framework Ride, which is an IDE for Robot Framework.
For windows to get the required download for wxPython, go to the following URL −
And, download 32 or 64-bit wxpython for windows as per your Windows Operating system.
Download the 32-bit wxPython and install the same.
Once the installation is done, it opens the command line and auto runs some commands as shown below −
wxPython is now installed.This module is required for the RIDE Ide to be used for Robot Framework which is the next step.
On Linux, you should be able to install wxPython with your package manager. For example, on Debian based systems such as Ubuntu running sudo apt-get install pythonwxgtk2.8 ought to be enough.
, you should use wxPython binaries found from the wxPython download page. wxPython2.8 only has 32 bit build available, so Python must be run in 32-bit mode also. This can be done globally by running
or, just for the RIDE execution −
Install Ride
Ride is Robot Framework IDE. We can use pip to install it as shown below.
Command
Once the installation is done, open the command prompt and type the following command to open the Ride-IDE.
Command
The above command opens the IDE as follows −
So we are done with the installation of Robot Framework and can get started working with it.
Conclusion
We now know how to install python, pip, robot framework and also get RIDE installed to work with test cases in robot framework.
Источник
Robot Framework — Установка Unix и Linux
Теперь давайте рассмотрим несколько простых шагов для установки Python на Unix / Linux-машину. Откройте веб-браузер и перейдите по адресу https://www.python.org/downloads/ .
- Перейдите по ссылке, чтобы скачать сжатый исходный код, доступный для Unix / Linux.
- Скачивайте и извлекайте файлы.
- Редактирование модуля / файла настройки, если вы хотите настроить некоторые параметры.
- запустить ./configure скрипт
- делать
- сделать установку
Это устанавливает Python в стандартном месте / usr / local / bin и его библиотеках в / usr / local / lib / pythonXX, где XX — версия Python.
Установка пути в Unix / Linux
Чтобы добавить каталог Python к пути для конкретной сессии в Unix —
В оболочке csh
введите setenv PATH «$ PATH: / usr / local / bin / python» и нажмите Enter.
В оболочке bash (Linux)
введите export ATH = «$ PATH: / usr / local / bin / python» и нажмите Enter.
В оболочке ш или кш
введите PATH = «$ PATH: / usr / local / bin / python» и нажмите Enter.
Примечание — / usr / local / bin / python — это путь к каталогу Python
Установить PIP
Теперь мы проверим следующий шаг — установку pip для python. PIP — менеджер пакетов для установки модулей для Python.
PIP устанавливается вместе с python, и вы можете проверить это в командной строке следующим образом:
команда
Здесь мы до сих пор не получаем версию для pip. Нам нужно добавить путь к пипсам к переменным окружения, чтобы мы могли использовать его глобально. PIP будет установлен в папке Scripts на python, как показано ниже —
Вернитесь к переменным окружения и добавьте путь pip в список переменных. Добавьте C: \ Python27 \ SCripts в переменные окружения следующим образом:
Теперь откройте вашу командную строку и проверьте версию установленного pip —
Итак, теперь у нас установлены Python и pip.
Установите Robot Framework
Теперь мы будем использовать менеджер пакетов pip — python для установки фреймворка робота, и команда для него следующая:
команда
После завершения установки вы можете проверить версию установленной платформы робота, как показано ниже —
команда
Итак, мы видим, что установлен Robot Framework 3.0.4.
Установите wxPython
Нам нужен wxPython для Robot Framework Ride, который является IDE для Robot Framework.
Чтобы окна получили необходимую загрузку для wxPython, перейдите по следующему URL —
И загрузите 32- или 64-битный wxpython для Windows в соответствии с вашей операционной системой Windows.
Скачайте 32-битный wxPython и установите его.
Как только установка завершена, она открывает командную строку и автоматически запускает некоторые команды, как показано ниже —
wxPython теперь установлен. Этот модуль необходим для использования RIDE Ide для Robot Framework, что является следующим шагом.
В Linux вы должны иметь возможность установить wxPython с вашим менеджером пакетов. Например, на системах на основе Debian, таких как Ubuntu, достаточно запустить sudo apt-get install pythonwxgtk2.8.
, вы должны использовать двоичные файлы wxPython, найденные на странице загрузки wxPython. В wxPython2.8 доступна только 32-битная сборка, поэтому Python также должен работать в 32-битном режиме. Это можно сделать глобально, запустив
или, только для выполнения RIDE —
Установить Ride
Ride — это Robot Framework IDE. Мы можем использовать pip для его установки, как показано ниже.
команда
После завершения установки откройте командную строку и введите следующую команду, чтобы открыть Ride-IDE.
команда
Приведенная выше команда открывает IDE следующим образом:
Итак, мы закончили установку Robot Framework и можем начать работать с ним.
Заключение
Теперь мы знаем, как установить python, pip, роботизированную среду, а также установить RIDE для работы с тестовыми примерами в роботизированной среде.
Источник
Robot framework in linux
Robot Testing Framework
Robot Testing Framework is a generic and multi-platform testing framework for the test driven development (TDD) which is initially designed for the robotic systems. However, it can be used for any TDD system. The framework provides functionalities for developing and running unit tests in a language and middleware independent manner. The test cases are developed as independent plug-ins (i.e., using scripting languages or built as dynamically loadable libraries) to be loaded and executed by an automated test runner. Moreover, a fixture manager prepares the setup (e.g., running robot interfaces, simulator) and actively monitors that all the requirements for running the tests are satisfied during the execution of the tests. These functionalities along with other facilities such as the test result collector, result formatter and remote interface allow for rapid development of test units to cover different levels of system testing (see the block diagram).
Robot Testing Framework library does not depend on any external library. The Robot Testing Framework framework has a robottestingframework-testrunner utility (see Running test case plug-ins using robottestingframework-testrunner) to easily run the test cases which are built as plug-ins. Test cases can be organized in test suites using simple XML files. The robottestingframework-testrunner uses TinyXml library for parsing the suite XML files. Robot Testing Framework build system check for the installation of TinyXml and, in case, it cannot find any installed version of TinyXml library, it uses the internal version which is delivered with the Robot Testing Framework.
- On Linux/Mac: The installation is easy, straightforward and uses the CMake build system.
- On Windows: The installation is easy, straightforward and uses the CMake build system. Get CMake for windows if you have not yet installed. Then simply run the CMake and, set the project (robot-testing-framework) root folder and the desired build folder. Configure and generate project solution for your favorite IDE (e.g. Visual Studio 17). Then open the solution from your IDE and build the project.
The only thing you need to configure is the RobotTestingFramework_DIR environment variable so that CMake can find Robot Testing Framework libraries and header files.
/.bashrc $ echo ‘export PATH=$PATH:$RobotTestingFramework_DIR/bin’ >>
» C:\> setx.exe PATH «%PATH%;%RobotTestingFramework_DIR%/ /bin» «>
Notice: If you have not installed Robot Testing Framework in the standard system path (e.g., on Linux without make install ) then You need to expand your system PATH environment variable.
Enabling Python, Ruby, Lua, . Plugins
To use Robot Testing Framework with other languages,
Источник
Тестирование устройств с помощью Robot Framework
Robot Framework
Robot Framework (далее — Robot) — инструмент для автоматизированного тестирования, написан на Python. Robot используется для автоматического тестирования в разных областях разработки: от web-фронтенда и бекенда до embedded-устройств. По умолчанию Robot предоставляет базовый набор функций (например, работу со строками, возможность запуска внешних программ, подключение по Telnet), но с помощью внешних библиотек возможности фреймворка могут быть значительно расширены.
В данной статье речь пойдёт о применении Robot для тестирования простого embedded-устройства с применением встроенных функций, с использованием сторонней библиотеки, а также с помощью кастомной библиотеки на Python. В качестве среды для запуска Robot будет использоваться RaspberryPI 4B (далее — rPi) с установленной Raspberry Pi OS. Эта платформа была выбрана для демонстрации, т.к. rPi содержит встроенный Bluetooth-адаптер и внешние GPIO-пины, удобные для тестирования устройств. Тестируемое устройство — плата DOIT ESP32S Devkit V1 с прошивкой на Arduino.
Тестируемое устройство
В качестве примера рассмотрим простое устройство, реализованное на отладочной плате DOIT ESP32S Devkit V1 — она построена на SoC ESP32 со следующими характеристиками:
32-разрядный CPU с тактовой частотой до 240 МГц
Внешние GPIO x 34
Wi-Fi 802.11b/g/n и много другой периферии (PWM, SPI, DAC, ADC, . ), которая не используется в данной статье
Для примера был создан Arduino-скетч, работающий следующим образом: ESP32 принимает данные по UART, при получении символа «1» контроллер зажигает светодиод (пин D2); при получении символа «0» светодиод отключается. Также в прошивке реализован BLE GATT-сервис с одной read-only характеристикой, которая содержит текущее состояние светодиода (подробнее про BLE GATT-сервисы можно прочитать здесь. Таким образом, управление светодиодом осуществляется через UART, а с помощью BLE можно узнать текущее состояние светодиода.
Исходный код скетча
Схема подключения плат в тестовом стенде:
Установка Robot
Для запуска тестов из данной статьи необходимо установить несколько пакетов:
Также для работы с внешними пинами понадобится утилита wiringpi, которую можно установить из репозитория Raspberry Pi OS:
Пример теста в Robot
Перед тем, как перейти к написанию тестов для нашего девайса, рассмотрим как выглядят тест-кейсы в Robot в целом. Все тесты содержатся в файлах с расширением .robot, причём в одном файле можно написать сразу несколько тест-кейсов, объединённых в один тест-сьют. В файле .robot есть несколько секций, названия секций выделяются тремя знаками *. В наших примерах будут использоваться секции: *** Settings *** (в ней подключаются внешние библиотеки и задаются настройки тестов), *** Variables *** (для объявления переменных), *** Keywords *** (для создания собственных ключевых слов, которые затем можно использовать в тестах) и *** Test Cases *** (для написания тест-кейсов). Более подробное описание секций и другую информацию об Robot можно найти в официальном User Guide.
Каждый тест-кейс состоит из набора ключевых слов, которые запускаются последовательно друг за другом. Некоторые ключевые слова принимают на вход аргументы — например, ключевое слово Log принимает один обязательный аргумент — message, который сохранится в log-файле по завершении теста. В качестве разделителя имени ключевого слова и аргумента в Robot могут использоваться:
несколько пробелов подряд (от двух и больше). В примерах в данной статье в качестве разделителя используются 4 пробела подряд
Некоторые ключевые слова возвращают значение, которое можно записать в переменную. Например, ключевое слово Set Variable используется для записи аргумента в указанную переменную $
Ключевые слова могут завершаться успешно (Success) и неуспешно (Fail). В случае, если ключевое слово завершилось неуспешно, тест-кейс, в котором произошёл вызов ключевого слова, так же завершается с результатом Fail. Например, ключевое слово Should Be Equal As Strings сравнивает строки, и возвращает Fail, если они не равны.
В Robot присутствует большое количество встроенных ключевых слов, также существует возможность создавать собственные ключевые слова в разделе *** Keywords ***.
Рассмотрим следующий тест-сьют в качестве примера:
Для запуска данного тест-сьюта надо сохранить его в отдельный файл и запустить следующей командой:
Как можно увидеть, Test Case Pass Example завершился успешно, а Test Case Fail Example завершился неуспешно. Узнать подробнее, на каком ключевом слове тест-кейс завершился неудачей, можно, посмотрев лог-файл simple_test.log:
Как видно из лог-файла, ключевое слово Should Be Equal As Strings во втором тест-кейсе завершилось с результатом Fail, т.к. переменная $ не равна Hello world.
Также в лог-файле можно увидеть, что при запуске тест-сьюта помимо исполнения ключевых слов, описанных в секции *** Test Cases *** вызывались ключевые слова из секции *** Settings ***: Suite Setup и Suite Teardown вызываются в начале и в конце тест-сьюта соответственно, а Test Setup и Test Teardown в начале и в конце каждого тест-кейса соответственно. Секция Setup используется для предварительных настроек необходимых для каждого тест-кейса, а Teardown для операций, которые необходимо выполнять в конце теста независимо от его результата (например, для закрытия программ запущенных внутри теста, или для удаления временных файлов).
Пишем тесты для embedded-устройства
Для проверки функций, реализованных в описанном выше скетче, напишем два тест-кейса: Test LED Switch On и Test LED Switch Off. Каждый из данных тест-кейсов будет содержать следующий сценарий:
отправка команды для включения/отключения LED («1» в первом случае, и «0» во втором) по UART (через USB)
проверка состояния светодиода с помощью чтения линии GPIO.0 на rPi
проверка значения GATT-характеристики с помощью BLE
Используем готовые библиотеки
Для начала напишем основу теста с использованием сторонних (будем использовать стороннюю библиотеку SerialLibrary для отправки команды по UART) и встроенных библиотек (будем использовать встроенную библиотеку Process для запуска утилиты gpio, которая позволяет читать состояние пина rPi).
Для включения/отключения светодиода нам необходимо создать ключевые слова, которые отправляют «1» либо «0» по UART. Для этого сначала необходимо в секции *** Settings *** подключить библиотеку SerialLibrary (Library SerialLibrary), а также вызвать на этапе Test Setup ключевое слово для конфигурирования последовательного порта (Open Serial Port). Непосредственно включение и отключение светодиода будет производиться ключевыми словами Turn LED On и Turn LED Off, внутри которых происходит вызов Write Data, реализованного в библиотеке SerialLibrary.
Для проверки состояния светодиода создадим ключевое слово, внутри которого происходит вызов утилиты gpio. Для запуска внешних программ в Robot есть встроенная библиотека Process. Для нашей задачи подойдёт ключевое слово Run Process, которое принимает на вход название вызываемой программы и передаваемые аргументы, а возвращает результат выполнения команды, в т.ч. вывод программы в stdout. Для чтения состояния пина GPIO.0 нужно вызвать gpio read 0, после чего проверить, вывела программа «1» или «0». Для сравнения состояния пина с ожидаемым будем использовать ключевое слово Should Be Equal As Integers.
В итоге у нас получился следующий тест-сьют:
Пишем собственную библиотеку
В скетче реализован BLE GATT-сервис с одной характеристикой, доступной для чтения. Данная характеристика содержит текущее состояние светодиода: «1» если светодиод включен и «0» если он выключен. UUID характеристики был сгенерирован случайным образом и захардкожен в скетче — ece27bad-3d4b-4072-8494-76a551f0b6cc.
Дополним тест чтением характеристики через BLE. В Robot существует возможность создавать собственные библиотеки для расширения функционала. Чтобы не писать весь функционал BLE с нуля, воспользуемся готовым модулем pygatt и напишем к нему небольшую надстройку на Python, в которой реализуем класс с единственной функцией — чтение характеристики BLE-устройства. В качестве аргументов будем передавать данной функции адрес устройства и UUID характеристики. Сама по себе функция достаточно примитивна, так как является надстройкой над pygatt, и производит следующую последовательность операций: подключается в BLE-адаптеру через последовательный порт (в rPi 4B есть встроенный Bluetooth-адаптер), открывает Bluetooth-соединение с удалённым устройством, читает значение характеристики и возвращает его наружу.
Исходный код библиотеки:
После подключения данной библиотеки (с помощью Library BluetoothTesting.py) Robot автоматически создаст ключевое слово Read Char Value (при его вызове фактически вызывается функция read_char_value()). При этом данное ключевое слово принимает на входе два аргумента: $
Итоговый тест проверяет корректность работы устройства, а именно: отправляет по UART команду на включение, либо отключение светодиода, проверяет корректность состояния светодиода в BLE GATT-сервисе и проверяет фактическое состояние светодиода с помощью чтения состояния GPIO-пина. Оба написанных тест-кейса проходят успешно:
Заключение
Тестирование в сфере embedded-устройств несколько сложнее, чем тестирование чисто программных продуктов, т.к. требует создания отдельного тестового стенда для подключения к внешним интерфейсам тестируемого устройства. Но решение этих сложностей окупается уменьшением ошибок в выпускаемом продукте и возможностью контролировать качество в процессе разработки и поддержки устройства. За рамками данной статьи осталось множество вопросов, связанных с тестированием в embedded, например: автоматическое тестирование железа без цифровых интерфейсов, интеграция Robot Framework в Jenkins, подключение измерительных приборов к тестовому стенду и т. д. Но, надеюсь, что этот короткий обзор возможностей Robot-а поможет embedded-командам по крайней мере начать применять практики автоматизированного тестирования в своих разработках.
Источник