Отличительные черты платформы автоматизации TestProject |
03.09.2021 00:00 |
Автор: Сумон Дей (Sumon Dey) Честно говоря, стоит мне столкнуться с новым инструментом тест-автоматизации – неважно, коммерческим или открытым – как я сразу отношусь к нему скептически. Не потому, что я сомневаюсь в функциональности, возможностях или (сверкающих) новых фичах, которые дает этот инструмент – я сомневаюсь, будет ли от него толк как для тестирования, так и для тест-инженеров. Выбор неверного инструмента может повлечь за собой нежелательную потерю денег, времени и сил. Нам это не нужно. Инструмент, как минимум, должен быть достаточно гибким для кастомизации под наши нужды, бесшовно масштабироваться для Web, мобильных устройств и API, генерировать хорошие информативные отчеты или поддерживать их генерацию, интегрироваться с CI-серверами или другими инструментами для запуска в CI/CD, предоставлять функции повторного использования, поддерживать кросс-браузерность, запускаться на любой ОС, и требовать минимальной поддержки. Бесплатная, облачная, живущая силами сообщества платформа TestProject обладает всеми этими качествами, внедренными поверх Selenium WebDriver & Appium. В ней также есть хорошо распределенные и доступные для переиспользования функции тест-запуска и валидации, встроенная отчетность и система хранения отчетов, и масса других замечательных штук. Я писал множество статей на разные темы в блоге TestProject, а также посещал ряд вебинаров по инструментам и технологиям автоматизации, организованных командой TestProject – однако никогда не пробовал пользоваться этим инструментом. В прошлом месяце, узнав про релиз хороших новых функций, я решил исследовать эту платформу, и в этой статье я расскажу про самые, с моей точки зрения, замечательные ее функции. Прежде чем мы начнем, разберемся, как установить TestProject за два простых шага. Шаг 1. Откройте любой браузер, перейдите по ссылке (https://app.testproject.io/signup/), и зарегистрируйтесь для создания бесплатной учетной записи TestProject.
Шаг 2. Скачайте, установите, запустите и зарегистрируйте TestProject Agent. Мне было любопытно, что же такое TestProjectAgent. Попробую объяснить простыми словами. Это кросс-платформенный локально запускаемый компонент автоматизации, который будет общаться с облачным репозиторием TestProject и запускать ваши тесты локально или удаленно. Этот десктопный компонент нужно установить на вашу систему (Windows/macOS/Linux) и зарегистрировать его через вашу учетную запись TestProject. Выгода тут в том, что он возьмет на себя весь труд устранения сложностей установки и управления различными драйверами и зависимостями, необходимыми для запуска ваших Selenium/Appium-тестов.
Скачав его на жесткий диск, установите агент, следуя стандартному процессу установки, и запустите его. При запуске он попросит вас авторизоваться. Затем вам нужно зарегистрировать агент, перейдя на вкладку "Agents" портала TestProject и кликнув по кнопке "Register Agent". Как только регистрация завершена, вы увидите экран, как на картинке ниже. Вот и все! Больше вам ничего не нужно – можно приступить к запуску ваших тестов при помощи TestProject.
Теперь, когда мы закончили с установкой, пройдемся по функциям, которые привлекли мое внимание. 1) OpenSDK (Software Development Kit) на Java, Python и C# Экспериментируя с функциями, я обнаружил одну из лучших штук в TestProject – OpenSDK. Это единый интегрированный интерфейс для добавления кода автоматизации Selenium и Appium под Web, Android и iOS-приложения. Сейчас TestProject OpenSDK поддерживает три популярных языка – Java, Python и C#. Вот какие преимущества я в нем нашел:
Для начала использования OpenSDK нам надо всего лишь следовать шагам установки (о которых говорилось выше) и получить Development Token, который находится во вкладке Integrations нашей учетной записи TestProject. Для запуска автотеста на Java с использованием OpenSDK нужно добавить зависимость TestProject OpenSDK Maven (в файле maven.pom.xml), а не зависимость Selenium. <dependency> При использовании Gradle нужно добавить эту зависимость в файл build.gradle: compile group: 'io.testproject', name: 'java-sdk', version: '0.64.4-RELEASE' Вот пример теста с использованием OpenSDK: package com.seleniumCapabilities.demo; По умолчанию локальный TestProject Agent будет общаться с локальным сервером Selenium или Appium, запускать тесты, генерировать и хранить отчеты в централизованном облачном репозитории. Для удаленного запуска нужно инициализировать удаленный драйвер для облачных провайдеров (вроде SauceLabs или BrowserStack). В этом случае нам также нужно установить и передать кастомную возможность (cloud:URL), как указано ниже: import io.testproject.sdk.drivers.web.ChromeDriver;
2) Отчеты Вторая фича, которая привлекла мое внимание – это функция отчетности TestProject. Генерация отчетов, которые могут предоставить ценную информацию о запуске автотестов – это важная, неотъемлемая часть любого фреймворка тест-автоматизации. Так как Selenium WebDriver и большинство других библиотек и инструментов автоматизации не имеют встроенных отчетов, нам нужно пользоваться внешними пакетами и библиотеками, и писать код, чтобы подогнать отчеты под нужды бизнеса. По умолчанию TestProject предоставляет несколько красивых детализированных отчетов – "Summary Report", с краткой информацией о запуске и упавших шагах, и "Full Report", содержащий всю информацию о запуске, в форматах HTML, PDF, link/URL. Отчеты также можно получить через RESTful API. Нам не нужно писать дополнительный код, чтобы к тестам прикреплялись скриншоты. Они будут прикреплены автоматически после завершения прогона. Ниже – дашборд отчетов (со сгенерированными отчетами) для теста, который я запустил через TestProject. Summary Report: Full Report: 3) Аддоны Следующая, по-моему мнению, уникальная особенность – это аддоны, предоставляемые TestProject – они создаются при помощи глобального сообщества тестировщиков. Аддоны TestProject – это набор закодированных действий с возможностью повторного использования, которые можно интегрировать в наши тесты. Набор аддонов – это не просто коллекция бесплатных решений автоматизации, созданных блестящими умами сообщества автоматизаторов, но и отличный способ вдохновить множество людей на разработку новых функциональностей, которые можно подключить к бесплатной платформе TestProject для всеобщего использования. Вот список популярных аддонов:
Возьмем, к примеру, аддон “PDF Actions”. При помощи этого аддона можно выполнять различные PDF-действия – например, поиск строки внутри PDF, валидация текста, или получение слов/символов из PDF. Кликнув по кнопке Install, мы получим всю широту возможностей этого аддона и сможем использовать их в тестах. 4) TestProject Share Center Одна из последних фич TestProject – это “TestProject Share Center”. При помощи этой фичи мы одним кликом можем сотрудничать и делиться нашими Web, мобильными и API-тестами с кем угодно в мире за секунды – через почту или уникальную ссылку. Контрагентом может быть команда разработки, бизнес-аналитики, тест-команда или менеджеры, которые могут использовать тесты и управлять ими через свою учетку TestProject. Чтобы поделиться тестом, нужно сделать следующее: Шаг 1: Откройте контекстное меню теста и кликните на Share Test. Шаг 2. Мы можем или добавить email человека, с которым хотим поделиться, или получить ссылку и отправить эту ссылку контрагенту. 5) Самоисцеляющаяся технология на основе ИИ Я энтузиаст машинного обучения и ИИ, поэтому мое внимание привлекла еще одна фича TestProject – самоисцеляющаяся технология на основе ИИ, находящаяся внутри умного тест-рекордера на основе Selenium. Так как TestProject создан на основе Selenium, вы можете извлечь пользу из Selenium, используя дополнительные ИИ-функции, экономящие ваше время и справляющиеся с наиболее распространенной проблемой тестов – поиском элементов. Слово "самоисцеляющаяся" используется тут потому, что после записи теста и генерации скрипта автоматизации, в случае изменений интерфейса, напрямую влияющих на скрипт, эта технология позволит убедиться, что тест не упадет при следующем прогоне, несмотря на изменения интерфейса. Сейчас технология поддерживает динамические элементы, iFrames, поп-апы, кастомные атрибуты, несколько окон/вкладок, адаптивные ожидания, и меню по наведению курсора. Записывая тест, тестировщик получит предупреждение, если для прогона существует способ получше, и сможет просмотреть и подтвердить предложенные изменения. Если инструмент самолечения использовался в ходе прогона для восстановления после падения, в отчетах появится особая иконка. Используя этот механизм, TestProject может отслеживать и выбирать наиболее устойчивую стратегию локации элементов до старта теста, и при необходимости чинить тесты в ходе прогона. Это приводит к улучшенной производительности и сокращению времени на прогон, быстрому созданию тестов, быстрой идентификации веб-элементов, устойчивым тестам и простоте дебага. 6) Интеграция с Cucumber, JUnit/TestNG и ExtentReport Еще в TestProject мне нравится, что мы можем писать код автотестов, интегрировать любую библиотеку на выбор, и позднее использовать встроенные возможности TestProject для большей кастомизации, что дает большую гибкость. Возьмем, к примеру, использование TestProject SDK с Cucumber, JUnit/TestNG, и ExtentReport – мы можем создавать тесты в Selenium и просматривать отчёты и результаты на платформе TestProject. Так как мы в этом случае используем OpenSDK, нам не нужно поддерживать браузерные драйверы (ChromeDriver, GeckoDriver). Нам нужно лишь внести небольшое изменение – вместо зависимости Selenium нужно использовать зависимость TestProject SDK (совместно с зависимостями Cucumber, TestNG, и ExtentReport) в pom.xml или build.gradle файлах. Я создал Java-проект (см. структуру проекта ниже) и добавил сценарий Cucumber в файл Feature. Сценарий был успешно выполнен, и детальный отчет появился в разделе TestProject "Trends and Reports". Заключение Вышеупомянутые функции – это те, что бросились мне в глаза. У платформы множество других возможностей – запись и проигрывание, создание тест-заданий и расписаний, параметризация тестов, валидация после нахождения элементов и выполнения действий, и т. д. Мне также понравилась официальная документация – она очень точная, ясная, и ее легко понять. Знакомясь с инструментом, я сначала исследую его и выявляю его лучшие стороны, и у TestProject таких сторон немало. |