Вышел Meta Test 2.0

Meta Test это российская программная платформа для создания и запуска автоматизированных тестов веб-приложений людьми без навыков программирования. В основе платформы лежит концепция языково-ориентированного программирования. Для описания тестов используется декларативный предметно-ориентированный язык, что позволяет избавится от создания тестового «фреймворка» и сложных для понимания концепций вроде Page Object Model. Но тем не менее поддерживается исполнения в тестах обычного кода на языке python что позволяет гибко работать с источниками тестовых данных, отправлять API запросы и даже создавать новые команды для встроенного языка.
Основные изменения:
- Расширения для поддержки браузеров chromium, edge и safari были перенесены из дистрибутива в репозиторий для расширений.
- Улучшена система отчётов. Доработан отчёт для allure.
- В механизм расширений была добавлена поддержка команд.
- Изменено поведение большинства команд, некоторые команды были переименованы.
- Добавлены команды для поддержки js-alerts.
- Доработан раннер тестов. Добавлена поддержка статистики что позволяет автоматически ранжировать тесты по времени запуска и запускать только упавшие тесты.
- Добавлена начальная поддержка HTTP запросов. С их помощью можно напрямую обращаться к веб-серверу минуя взаимодействия с браузером.
Этот механизм в первую очередь предназначен для дополнения браузерного тестирования, а не для создания самостоятельных api-тестов.
Например тест приведённый ниже переходит на url http://the-internet.herokuapp.com/download и получает все ссылки находящиеся в контейнере с классом example. Затем для каждой ссылки выполняется HEAD запрос код статуса которого должен быть равным 200.
from metatest import *
TEST["Проверка доступности ссылок для скачивание файлов"](
URL("http://the-internet.herokuapp.com/download")
, "Проверяем доступность всех URL файлов"
, HEAD[ALL(".example > a", "attr::href")](
STATUS == STATUS.OK
, timeout=25
))
>>> Meta Test
