LINUX.ORG.RU

Вышел Meta Test 2.0

 , , , ,


0

1

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

★★★★★

Проверено: CrX ()
Последнее исправление: demidrol (всего исправлений: 3)

Есть такая штука cucumber, вот она ровно для этого же. Было время когда оную впитали в внтерпрайзе ибо выглядело красиво в теории, но реальность показала , что красота дальше теории не получается. В реальности перемспользование не работает. Тестировщики должны изучать еще одну абстракцию. Тлдр - этих кактусов уже много поели. Если где еще и используется, то как рудимент

ergo ★★★★
()
Ответ на: комментарий от ergo

Есть такая штука cucumber, вот она ровно для этого же.

cucumber про BDD, он не избавляет тебя от написания тестов на на императивном языке. Вот по этому оно и не взлетело. Сабж позволяет сразу описывать тесты на декларативном DSL. Он требует минимального изучения, но он намного проще чем любой популярный ЯП.

Rodegast ★★★★★
() автор топика

Геркин все никак не сдохнет

сложных для понимания концепций вроде Page Object Model

есть мнение что писать код вам не следует

Lordwind ★★★★★
()
Последнее исправление: Lordwind (всего исправлений: 1)

Завязывать тесты на проприетарное поделие каких-то ноунеймов это даже глупее чем вообще их не делать.

zabbal ★★★★☆
()

from metatest import *

Хороший, своевременный проект. Только объясните мне, с какой целью вы рекламируете импорт в продукте, который предназначен для импортозамещения? Скобочки и знаки препинания тоже лишние. Можете убрать эту ерунду, оставив только тесты?

Lucky ★★★
()

Для описания тестов используется декларативный предметно-ориентированный язык

Пока все не будет из блоков, которые можно соединять мышкой, название считаю плагиатом! :)

pihter ★★★★★
()
Последнее исправление: pihter (всего исправлений: 1)

для создания и запуска автоматизированных тестов веб-приложений людьми без навыков программирования

HEAD[ALL(".example > a", "attr::href")](STATUS == STATUS.OK, timeout=25)

Вот это человек без навыков программирования должен написать?

monk ★★★★★
()
Ответ на: комментарий от ergo

Если где еще и используется, то как рудимент

А что вместо cucumber’а?

Тестировщики должны изучать еще одну абстракцию.

При чём здесь тестировщики? Вся мякотка cucumber’а, что огуречные сценарии могли бы уж если не писать, то читать и критиковать архитекторы, менеджеры, заказчики и т.п.

Camel ★★★★★
()

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

AleksK ★★★★
()

концепций вроде Page Object Model

Чисто из интереса погуглил - по мне так проще разобраться в этом POM, чем в этой хтони. Тем более что от лапши из дом-элементов на реальном живом сайте всё равно не убежишь)

frunobulax ★★★★★
()
Ответ на: комментарий от Lordwind

есть мнение что писать код вам не следует

Так даже в новости написано, что это для тех кто код не пишет, для использования людьми без навыков программирования.

Но, с другой стороны, человек без навыков программирования(хотя бы на уровне школьного бэйсика) такие сценарии тоже не осилит.

Loki13 ★★★★★
()
Последнее исправление: Loki13 (всего исправлений: 2)
Ответ на: комментарий от Loki13

для использования людьми без навыков программирования.

Не знаю, что за навыки здесь нужны. Как человек, который учился в школе ещё при СССР, я не понимаю, почему в примере все утверждения на русском языке помещены в кавычки, а иностранные слова записаны нормально. Это что за «намеки»? Если говорить прямо, выглядит как издевательство над родным языком.

Lucky ★★★
()
Ответ на: комментарий от Lucky

все утверждения на русском языке помещены в кавычки, а иностранные слова записаны нормально

"http://the-internet.herokuapp.com/download"
...
".example > a", "attr::href"

Эталонное «здесь вижу, здесь не вижу».

Без кавычек только ключевые слова, ну на то они и ключевые слова.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Без кавычек только ключевые слова, ну на то они и ключевые слова.

Вы программист что-ли?

Lucky ★★★
()

В принципе, система свою задачу выполняет. Но стоимость в 25 тыс. руб. для физических лиц - это очень странно. Тут бесплатно еще надо уговорить человека пользоваться именно этой системой.

Xintrea ★★★★★
()
Ответ на: комментарий от Loki13

человек без навыков программирования такие сценарии тоже не осилит.

Фокус не в том, что осилит или не осилит. А то что этот говнокод ломается на первом же рефакторинге/фиче. А поддержка/гибкость нулевые и бюджеты уже попилены. Это все равно что на CMS делать что-то сложнее лендинга. Ты вот сможешь CMS превратить в сложное веб-приложение? Думаю нет и сабж в нормальные тесты тоже никто не сможет. А начальные задачи легко решает клод+плейрайт с хромовским MCP. Главное что при усложнении это легко вкрутить в полноценный CI/CD или дать людям на доработку/усложнение/исправление.

Lordwind ★★★★★
()
Последнее исправление: Lordwind (всего исправлений: 2)
Ответ на: комментарий от Lordwind

Ну так то да. Без графического мышетыкательного создания сценариев оно вообще смысла не имеет. Если кто-то может написать вот это вот из новости, он напишет и на другом языке.

Loki13 ★★★★★
()
Ответ на: комментарий от Loki13

15 лет назад был такой Selenium IDE, записываешь макрос, потом он его гоняет. Он потом сдох, но временами стюардессу откапывали, а сейчас уже на нейронках/mcp делают. Принцип тот же, но я уже после одного месяца тыканья палочкой понял что это и зачем (спойлер: чтобы записать в резюме «автотостер»). Коллекции постмана из той же оперы. Прикол в том что сабж закрытый, без документации и если верить товарищу выше стоит 25 тыров. Я не знаю насколько альтернативно одаренным нужно быть, чтобы выбрать такое...

Lordwind ★★★★★
()
Последнее исправление: Lordwind (всего исправлений: 1)

...людьми без навыков программирования...

Ой ли?

sparkie ★★★★★
()
Ответ на: комментарий от zabbal

Завязывать тесты на проприетарное поделие каких-то ноунеймов это даже глупее чем вообще их не делать.

Как вы пришли к такому странному выводу?

Rodegast ★★★★★
() автор топика
Ответ на: комментарий от pihter

Пока все не будет из блоков, которые можно соединять мышкой, название считаю плагиатом! :)

Не путай DSL и визуальное программирование.

Rodegast ★★★★★
() автор топика
Ответ на: комментарий от monk

Вот это человек без навыков программирования должен написать?

Они это пишут, конечно после минимального обучения.

Rodegast ★★★★★
() автор топика
Ответ на: комментарий от AleksK

Что-то сценарии тут очень сильно похожи на тесты в рельсах, прямо очень сильно

Рельсы это RoR? Никогда на него не смотрел, да и браузерных тестов там явно нет.

Rodegast ★★★★★
() автор топика
Ответ на: комментарий от Rodegast

Минимального. Два вида скобок, два вида использования «=», два вида доступа к полям (через точку и Paamayim Nekudotayim). Издеваетесь?

monk ★★★★★
()
Ответ на: комментарий от Xintrea

В принципе, система свою задачу выполняет. Но стоимость в 25 тыс. руб. для физических лиц - это очень странно.

Эта цена не для человека, а для бизнеса. Если ты делаешь что то типа пет-проекта, то можешь бесплатно использовать Meta Test на локалхосте.

Rodegast ★★★★★
() автор топика
Ответ на: комментарий от splinter

Что-то не пойму, это можно вместо Postman юзать для проверки Rest API методов?

Да, можно.

Rodegast ★★★★★
() автор топика
Ответ на: комментарий от monk

Два вида скобок, два вида использования «=», два вида доступа к полям

Как раз с этим проблем меньше всего. Им сложнее всего научится искать нормальные селекторы.

Rodegast ★★★★★
() автор топика
Ответ на: комментарий от Camel

При чём здесь тестировщики?

При чём здесь тестировщики? Вся мякотка cucumber’а, что огуречные сценарии могли бы уж если не писать, то читать и критиковать архитекторы, менеджеры, заказчики и т.п.

это тул для тестировщиков. архитекторы в это *овно никогда не смотрели и не будут. про менеджеров (и тем более заказчиков) даже речи быть не может.

почему оно дохнет - потому что было притянуто за уши под соусом упрощения и продавался под видом «смотрите, даже манагер видит что тестируется». а в реальности девелоперам и тестировщикам принесли очередную абстракцию, которую нужно сопровождать и любое изменение буквы в сценарии или низлежащем матчинге с функциями - все ехало в … далеко, короче, ехало. т.е. мало того, что в разработке нужно сопровождать отношение дизайн-имплементация (в виде архитектурных схем) так еще и разрабам с тестировщиками появилась еще одна мандула для сопровождения. ради того чтобы что? чтобы левому манагеру можно было прочитать? дайте ему ридми с содержанием и описанием сценариев.

даже до появления ии и агентов это было пятое колесо в пайплайне, а с появлениям ии - даже тестировщики в том виде, в котором были, уже умирают ибо ИИ кроет любой код и юнитами, и систем и интеграционными, и даже е2е (собственно, ровно так у нас сейчас это происходит)

ergo ★★★★
()
Последнее исправление: ergo (всего исправлений: 1)
Ответ на: комментарий от Lordwind

Фокус не в том, что осилит или не осилит. А то что этот говнокод ломается на первом же рефакторинге/фиче.

На основании чего вы пришли к такому выводу?

Rodegast ★★★★★
() автор топика
Ответ на: комментарий от Rodegast

Точно. Тоже задача для непрограммистов вообще неподъёмная.

На мой взгляд, человек, который может осилить этот инструмент, может без особого труда выучить CSS и JS.

SQL и тот на порядок проще для непрограммистов (и всё равно непрограммисты им не пользуются).

monk ★★★★★
()
Ответ на: комментарий от Rodegast

Потому что Page Object для вас «сложный». Потому что навыков программирования не нужно. Потому что нет нормального ЯП и всё гвоздями прибито к полу. Потому что я уже насмотрелся на такие поделки.

Простой пример - ждать нужно не веб элемент, а кастомное событие. Шах и мат.

Lordwind ★★★★★
()
Ответ на: комментарий от Lordwind

Потому что Page Object для вас «сложный».

Мил-человек, а ты новость вообще читал? Там разве про меня написано? В новости речь идёт ософтине для мануальных тестировщиков. Вот для них POM будет сложнее сабжа.

Простой пример - ждать нужно не веб элемент, а кастомное событие.

Ну хорошо. Ты сейчас сможешь привести пример такого события?

Rodegast ★★★★★
() автор топика
Ответ на: комментарий от Rodegast

Вот для них POM будет сложнее

Холодильник пробовали открывать? Там для мяса, овощей и молока разные отсеки. Если даже на бытовом уровне это сложно, то повторю, что лучше идти на завод, а не в ойти.

пример такого события

Кафка, база, апишка, клиенты микросервисов или фикстур

Lordwind ★★★★★
()
Последнее исправление: Lordwind (всего исправлений: 1)
Ответ на: комментарий от Rodegast

Как вы пришли к такому странному выводу?

Задействовав мозг. Рекомендую - это в целом полезно. Ненаписанные тесты это плохо, но ресурсов не требует. Тесты, завязанные на проприетарное днище, которое в любой момент прокиснет - это выкинутые на помойку усилия. И деньги.

zabbal ★★★★☆
()
Ответ на: комментарий от Lordwind

Холодильник пробовали открывать?

Если ты прослеживаешь связь между POM и отсеками в холодильнике, то тебе нужно к психиатру.

Кафка, база, апишка, клиенты микросервисов или фикстур

Всё это тестируется другими инструментами.

Rodegast ★★★★★
() автор топика
Ответ на: комментарий от zabbal

Ну хорошо, допустим Mets Test через какое то время закроется. В этом случае платформа и сами тесты останутся у бизнеса, лицензия бессрочная. Не будет техподдержки и обновлений, но с такими рисками можно жить.

Rodegast ★★★★★
() автор топика
Ответ на: комментарий от Rodegast

с такими рисками можно жить

И на кой хрен мне жить с рисками, да ещё и заплатив за это когда я могу взять любое свободное или хотя бы открытое решение и жить без рисков?

zabbal ★★★★☆
()

на кой оно нужно при наличии присутствия LLM и браузерных MCP? Они таких мета-тестов нагенерят сотни.

И да. Название — говно.

demidrol ★★★★★
()
Ответ на: комментарий от zabbal

я могу взять любое свободное или хотя бы открытое решение и жить без рисков?

А вот свободных/открытых аналогов нету :) Ты конечно можешь что то делать например на selenide (он просто добавляет автоматические ожидание к selenium-у), но над ним тоже 1-2 чела работают. Если они «откиснут», то ты столкнёшься с теми же рисками.

Rodegast ★★★★★
() автор топика
Ответ на: комментарий от Rodegast

Всё это тестируется

Повторяю для тех, кто не автотестер. Чтобы написать нормальный тест, надо управлять ожиданиями. Ожидания веб элементов это мизерная часть современных сценариев, всё остальное связано с ожиданиями разных событий вне веба. Тестируется веб, а использовать приходится то что я перечислил.

свободных/открытых аналогов нету

Исполняется песня Аналоговнет! Селениум, сайпресс и плейрайт бьются в истерике.

Lordwind ★★★★★
()
Последнее исправление: Lordwind (всего исправлений: 1)
Ответ на: комментарий от Lordwind

Тестируется веб, а использовать приходится то что я перечислил.

Ну и в чём проблема?

Исполняется песня Аналоговнет! Селениум, сайпресс и плейрайт бьются в истерике.

Может уже прекратишь клоунаду? Основная идея сабжа в том что он предоставляет универсальный DSL для описания автотестов. Разве что-то из вышеперечисленного его предоставляет подобный функционал? Ну и BDD это про другое, его уже обсуждали.

Rodegast ★★★★★
() автор топика
Ответ на: комментарий от Rodegast

Ну и в чём проблема?

В том что ты AQA не понимаешь, сабж подходит только для одноклеточных лендингов. Нет, я не против лендингов, это с позиции бизнеса тупо покупать закрытую ноунейм поделку для того, что не создает бизнес-ценности, не масштабируется и никуда не интегрируется.

универсальный DSL для описания автотестов

Лолшто? Ты еще и не понимаешь что такое DSL и для чего он нужен? BDD как раз для этого, решает проблему коммуникаций ценой всего остального, а у сабжа этого и близко нет, менеджер не будет даже скобочки писать. Универсальный это значит что код можно переиспользовать, например селениумные тесты можно запускать на любом языке с минимальными доработками, потому что в основе лежит API, являющийся стандартом W3C.

Lordwind ★★★★★
()
Последнее исправление: Lordwind (всего исправлений: 1)
Ответ на: комментарий от Lordwind

В том что ты AQA не понимаешь,

Было бы чего понимать :D

Ты еще и не понимаешь что такое DSL и для чего он нужен?

Ух ты... расскажи мне про DSL, посмотрим на глубину твоего понимания реальности.

решает проблему коммуникаций ценой всего остального, а у сабжа этого и близко нет

Сабж не пытается решить проблему коммуникаций.

Универсальный это значит что код можно переиспользовать

Нет. В данном контексте универсальный означает что DSL не привязан к конкретному web-приложению

Rodegast ★★★★★
() автор топика
Ответ на: комментарий от Lordwind

Я бы объяснил, но

Ну а что же такого? Вот я программированием (не тестированием, а именно разработкой) занимаюсь почти 18 лет. И DSL сущность для меня вообще не новая, на одном проекте я даже полностью реализовал внешний DSL (с парсингом, лексическим анализом и прочим). И тут ты типа вылезаешь и говоришь что я что то не понимаю :D Может быть действительно так, ты бы пояснил...

Rodegast ★★★★★
() автор топика
Ответ на: комментарий от Rodegast
require 'rails_helper'

RSpec.describe "Управление статьями", type: :system do
  before do
    # Настройка драйвера. headless означает, что браузер не будет открывать видимое окно
    driven_by(:selenium_chrome_headless) 
  end

  it "позволяет пользователю создать статью" do
    # 1. Переходим на страницу
    visit new_article_path

    # 2. Взаимодействуем с элементами (Capybara ищет их по тексту, id или name)
    fill_in "Заголовок", with: "Моя первая статья"
    fill_in "Текст", with: "Текст для системного теста в Rails."
    
    # Можно прикрепить файл, если нужно
    # attach_file "Обложка", Rails.root.join("spec/fixtures/cover.jpg")

    click_on "Опубликовать"

    # 3. Проверяем результат на странице
    expect(page).to have_content("Статья успешно создана!")
    expect(page).to have_css("h1", text: "Моя первая статья")
  end
end

AleksK ★★★★
()
Ответ на: комментарий от AleksK

Да, похоже что эта Capybara тоже пыталась реализовать DSL. Но по ней информации как то мало, да и сам тест не то что бы мне понравился.

Rodegast ★★★★★
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.