Part 2. Инструменты управления тестированием
Привет! Я Вадим Лунин, QA Manager в Альфа Банке в Беларуси. С 2022 года я работаю в банке и одно из моих направлений работы — выбор инструментов тестирования. Не так давно я начал писать цикл статей:
В этой статье я расскажу о системе управления тестированием (Test Management System), которую мы используем в Альфа Банке и почему мы сделали такой выбор. Система управления тестированием — это инструмент, который помогает организовать, планировать, выполнять и отслеживать тестовые сценарии, тестовые наборы и тестовые результаты. С помощью системы управления тестированием мы можем повысить эффективность и качество нашего процесса тестирования, а также снизить риски и издержки. При выборе системы управления тестированием мы учитывали несколько критериев, среди которых:
Интеграция с другими инструментами. Мы хотели, чтобы наша система управления тестированием была хорошо интегрирована с другими инструментами, которые мы используем в нашей работе, такими как системы отслеживания ошибок, системы автоматизации тестирования и облачные мобильные фермы. Это позволяет нам обеспечить единый поток работы, избежать дублирования данных и повысить скорость и точность нашего тестирования.
Функциональность и гибкость. Мы хотели, чтобы наша система управления тестированием имела все необходимые функции для нашего процесса тестирования, такие как создание и редактирование тестовых сценариев, назначение и запуск тестовых наборов, просмотр и анализ тестовых результатов, генерация и экспорт отчетов и дашбордов. Также мы хотели, чтобы наша система управления тестированием была гибкой и настраиваемой под наши потребности и специфику наших проектов.
Цена и поддержка. Мы хотели, чтобы наша система управления тестированием была доступной по цене и имела хорошую поддержку от разработчиков. Мы также хотели, чтобы наша система управления тестированием была обновляемой и совместимой с последними технологиями и трендами в области тестирования.
Мы выбирали из таких систем Allure TestOps, TestIT и Zephyr Squad. Мы сравнивали их по разным критериям, таким как интеграция с другими инструментами, функциональность и гибкость, цена и поддержка. Мы также изучали отзывы и рейтинги пользователей, а также пробовали бесплатные версии этих систем. По результатам нашего анализа мы выбрали Allure TestOps, потому что он лучше всего подходил нашим потребностям и специфике наших проектов.
Allure TestOps — это качественная платформа, которая без проблем интегрируется со всеми вашими фреймворками и сохраняет все данные о тестировании централизованными и прозрачными.
Allure TestOps предлагает множество преимуществ для нашего процесса тестирования, таких как:
Интеграция с другими инструментами. Allure TestOps легко интегрируется с большинством популярных инструментов для разработки и тестирования программного обеспечения. Например, мы можем связать наши тестовые сценарии в Allure TestOps с ошибками в Jira, запускать наши автоматизированные тесты в Playwright, Spring, Appium или Browserstack из Allure TestOps, а также получать подробные отчеты о результатах наших тестов в Allure TestOps.
Функциональность и гибкость. Allure TestOps имеет все функции, которые нам нужны для нашего процесса тестирования. Мы можем легко создавать и редактировать тестовые сценарии, назначать и запускать тестовые наборы, просматривать и анализировать тестовые результаты, генерировать тестовые сценарии на основе запусков автотестов, генерировать и экспортировать отчеты и дашборды. Также мы можем настраивать Allure TestOps под наши потребности и специфику наших проектов. Мы можем добавлять свои поля, фильтры, шаблоны, рабочие процессы и правила валидации в Allure TestOps.
Цена и поддержка. Allure TestOps имеет разумную цену и хорошую поддержку от разработчиков. Мы можем выбрать между облачной или серверной версией Allure TestOps в зависимости от наших предпочтений и бюджета. Мы также можем пользоваться бесплатной пробной версией Allure TestOps на 30 дней, чтобы оценить его возможности. Кроме того, мы можем обращаться к поддержке Allure TestOps по любым вопросам или проблемам, которые у нас возникают при использовании системы. Поддержка Allure TestOps быстрая, дружелюбная и профессиональная.
В этой статье я хочу рассказать не только почему мы выбрали, но и как организовали работу Allure TestOps с нашими системами. Мы используем серверную версию Allure TestOps, которая развернута в нашей платформе облачной разработки Red Hat OpenShift. Red Hat OpenShift — это платформа для разработки, развертывания и управления приложениями в облаке, которая поддерживает различные языки программирования, фреймворки и инструменты. Хранение тест-кейсов происходит в нашей базе данных PostgreSQL. PostgreSQL — это мощная и надежная система управления реляционными базами данных, которая поддерживает SQL стандарт и имеет множество расширений. Все файлы, которые используются в тест-кейсах или формируются при прогоне автотестов, хранятся в объектном хранилище Minio с использованием дисков S3. Minio — это высокопроизводительное и совместимое с S3 хранилище для объектов, которое позволяет нам хранить и обрабатывать большие объемы данных в облаке. S3 — это сервис хранения объектов, который предоставляет высокую доступность, надежность и масштабируемость.
Пример интеграции
После рассказа выбора инструмента управления тестированием, я хочу показать насколько просто можно интегрировать Allure TestOps с другими инструментами, которые используют при автоматизации тестирования веб-приложений. Для этого я разобью пример на четыре этапа:
Интеграция с инструментом автоматизации тестирования Playwright
Интеграция с системой управления проектами. Мы используем серверную версию Jira
Интеграция с CI/CD системой GitHub
Отправка нотификации
1. Интеграция с инструментом автоматизации тестирования Playwright
Для того чтобы интегрировать Playwright и Allure TestOps достаточно просто добавить к своему проекту npm-пакет allure-playwright.
Первое, что необходимо сделать это инициализировать npm-пакет следующей строкой:
npm i -D @playwright/test allure-playwright
Затем мы добавляем параметры в файл playwright.config.ts, который является файлом конфигурации для Playwright. В этом файле мы указываем, что мы хотим использовать Allure как репортер для наших тестов.
export default defineConfig({
testDir: './tests',
fullyParallel: true,
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 2 : 0,
workers: process.env.CI ? 1 : undefined,
reporter: [
['html', {open: 'never'}],
['list'],
['allure-playwright',
{
environmentInfo: {
E2E_NODE_VERSION: process.version,
E2E_OS: process.platform,
},
suiteTitle: false,
detail: true,
},
],
]
После этого мы можем добавлять аннотации Allure в наш тест с помощью специальных декораторов. Аннотации Allure позволяют нам добавлять метаданные к нашим тестам, которые помогают нам лучше организовать, анализировать и представлять результаты тестирования. В данном примере я использовал следующие аннотации:
allure.owner — эта аннотация указывает, кто является автором теста. Это полезно для определения ответственности за тест и для связи с автором в случае возникновения проблем.
allure.suite — эта аннотация указывает, к какому набору (suite) относится тест. Это полезно для группировки тестов по определенным критериям и для удобства просмотра результатов.
allure.id — эта аннотация указывает, какой идентификатор (ID) имеет тест. Это полезно для уникальной идентификации теста и для избежания дублирования тестов (ID я рекомендую указывать в названии теста, подробнее описал в этой статье).
import { test, expect } from "@playwright/test";
import { allure } from "allure-playwright";
export const TODO_ITEMS = ["buy some cheese", "feed the cat", "book a doctors appointment"];
test.describe(() => {
test.beforeEach(async () => {
allure.owner('lunin');
allure.suite('Habr');
allure.layer('UI Tests');
allure.labels(
{ name: 'jira', value: 'TESTALL-109' }
);
});
test("basic test @allure.id=19878", async ({ page }) => {
await allure.step("Visit todolist page", async () => {
await page.goto("https://demo.playwright.dev/todomvc");
});
await allure.step("Create 1st todo.", async () => {
await page.locator(".new-todo").fill(TODO_ITEMS[0]);
await page.locator(".new-todo").press("Enter");
});
await expect(
page.locator(".view label"),
"Make sure the list only has one todo item.",
).toHaveText([TODO_ITEMS[0]]);
});
});
2. Интеграция с системой управления проектами. Мы используем серверную версию Jira
У команды разработки Allure TestOps отлично описан процесс интеграции здесь. Интеграция с Jira Server (DC) подразумевает, что вы собираетесь использовать плагин Allure TestOps Jira.
Основные моменты интеграции:
Создайте (получить/сгенерировать) секреты (учетные данные) во внешней системе для использования их API.
Добавьте необходимую интеграцию на глобальном уровне Allure TestOps (вам нужно быть администратором или иметь администратора поблизости).
Добавьте необходимую интеграцию на уровне проекта и предоставьте учетные данные (секреты), которые вы получили на шаге 1.
3. Интеграция с CI/CD системой GitHub
У команды разработки Allure TestOps отлично описан процесс интеграции здесь. Интеграция Allure TestOps с GitHub является двунаправленной, это означает, что вы можете сделать следующее.
CI: Загрузка результатов теста из рабочего процесса GitHub (GitHub > Allure TestOps)
CI: Запуск отправки рабочего процесса GitHub (Allure TestOps > GitHub)
4. Отправка нотификации
Для отправки результатов прогонов тестов мы используем Allure notifications — это библиотека, позволяющая выполнять автоматическое оповещение о результатах прохождения автотестов, которое направляется в нужный вам мессенджер (Telegram, Slack, Skype, Email, Mattermost, Discord, Loop).
Заключение
Как видите, интеграция Allure TestOps с другими инструментами достаточно простая и хорошо описана в документации команды разработчиков либо можно написать в поддержку или в telegram-канал. Это позволит вам легко и быстро настроить свой процесс тестирования с помощью Allure TestOps и получать максимальную пользу от его функциональности.
Мы можем сказать, что Allure TestOps — это отличный выбор для нашей системы управления тестированием. Он помогает нам организовать, планировать, выполнять и отслеживать наше тестирование с высокой эффективностью и качеством. Также интегрируется с другими инструментами, которые мы используем в нашей работе, что позволяет нам создавать единый поток работы. Имеет все функции, которые нам нужны для нашего процесса тестирования, а также гибкий и настраиваемый под наши потребности и специфику наших проектов. Он имеет разумную цену и хорошую поддержку от разработчиков. Мы рекомендуем Allure TestOps всем, кто ищет систему управления тестированием для своих проектов.