Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023)

Материал из 0x1.tv

Докладчик
Сергей Иванов

Доклад посвящён интеграции фреймворка автоматического тестирования OpenQA с системой виртуализации Proxmox Virtual Environment. В докладе рассматривается как сам процесс интеграции, так и работа данных компонентов на примерах тестирования дистрибутивов и пакетов.

Видео

on youtube

Презентация

Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023).pdf Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023).pdf Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023).pdf Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023).pdf Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023).pdf Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023).pdf Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023).pdf Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023).pdf Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023).pdf Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023).pdf Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023).pdf Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023).pdf Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023).pdf Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023).pdf Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023).pdf Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023).pdf

Thesis

Доклад посвящён интеграции фреймворка автоматического тестирования OpenQA с системой виртуализации Proxmox Virtual Environment. В докладе рассматривается как сам процесс интеграции, так и работа данных компонентов на примерах тестирования дистрибутивов и пакетов.

Отдел тестирования компании «Базальт СПО» занимается различными видами проверок, в том числе тестированием дистрибутивов и сборочных заданий для стабильных репозиториев. Тестовые сценарии постоянно улучшаются, их количество разрастается, расширяется тестовое покрытие. Этот процесс ведёт к увеличению трудозатрат на тестирование и повышает вероятность появления ошибки со стороны тестировщика (так называемый «человеческий фактор»). Самым оптимальным решением в данной ситуации является автоматизация части рутинных тестовых сценариев.

В отделе тестирования уже разработана инфраструктура для автоматической проверки сборочных заданий, что помогает сократить время выполнения задач. О данном решении было рассказано на прошлой конференции в рамках доклада «Автоматизация процессов в рамках тестирования сборочных заданий для стабильных репозиториев ОС ALT Linux». Однако в разработанной инфраструктуре присутствует недостаток: система не способна тестировать графические приложения. Автоматизировано лишь тестирование приложений, работу которых можно проверить через консоль.

Данный недостаток решается использованием такого инструмента как OpenQA — открытого фреймворка, позволяющего в полностью автоматическом режиме проводить тестирование различных компонентов операционной системы. Данный фреймворк уже используется в отделе тестирования для проверки установки дистрибутивов (про это было также рассказано на конференции в 2022 году). Кроме того, OpenQA задействуется для проверки сборочных заданий, содержащих пакеты, связанные с установщиком системы. В настоящий момент активно идёт внедрение возможностей OpenQA для тестирования остального функционала сборочных заданий, а не только компонентов, касающихся установки.

OpenQA состоит из нескольких компонентов, одним из который является OpenQA-Worker. По умолчанию OpenQA запускает тестируемый образ на виртуальных машинах qemu, на которых выполняются различные тесты.

В свою очередь, каждая виртуальная машина имеет свои характеристики, (по умолчанию это 25GB HDD, 2GB RAM).

Запуск большого количества параллельно работающих тестов вынуждает использовать под OpenQA-Worker отдельный высокопроизводительный сервер.

Кроме того, в случае возникновения каких-либо ошибок в процессе выполнения OpenQA-тестов виртуальные машины, на которых упали тесты, удаляются. Это вынуждает вручную разворачивать машины для воспроизведения / исправления возникших ошибок.

Обозначенные проблемы можно решить использованием системы виртуализации Proxmox Virtual Environment вместо отдельного сервера. В OpenQA, помимо бекендов, работающих напрямую со средствами виртуализации (qemu, libvirt, hyperv, virtualbox), существуют бекенды, подключающиеся по VNC / SSH к уже существующим виртуальным / реальным машинам, но не осуществляющие их менеджмент (создание, удаление, настройка и т. п.).


Вследствие этого необходима разработка программной обвязки, осуществляющая создание виртуальных машин на PVE и запуск OpenQA-тестов, которые будут подключаться к созданным машинам и работать с ними, так, как если бы использовался бекенд qemu.

Подробности данной интеграции будет рассмотрены в текущем докладе.

Cсылки


Интеграция OpenQA с Proxmox Virtual Environment (Сергей Иванов, OSSDEVCONF-2023)!.jpg

Примечания и ссылки