Playwright + ChatGPT. Мини-практикум

«Playwright уже 4 года удерживает лидерство в своей сфере, по многим причинам — интеграция с другими рабочими инструментами и GitHub, имея поддержку мощного спонсора (Microsoft), и, конечно, благодаря большому комьюнити.

Внедрение ChatGPT в QA-процессы сделало очевидной важную вспомогательную роль ИИ в устранении проблем с тестовыми окружениями и языками. Такой помощник упрощает процессы, обогащает инструментарий, обеспечивает адаптируемый подход. Конечно, опыт и скиллы тестировщиков по-прежнему решают (тестирует-то все равно человек, а не машина), но теперь люди получили очень толкового (и очень быстрого!) помощника.

С момента выпуска Microsoft в 2020 году Playwright в тот же год вырвался в топ благодаря полноценной поддержке всех браузеров (Chrome, Firefox, Edge и WebKit). Имея «врожденную» способность интегрироваться со всеми языками и обеспечивать стабильность результатов, Playwright быстро стал едва ли не основным элементом современных QA-процессов в вебе. О беспроблемном внедрении и радушном принятии в QA-сообществе свидетельствуют стабильная уже 4 года база пользователей и количество звезд на GitHub.

( Лидерство Playwright нехотя признается и идейными, упорными его недоброжелателями. Также Playwright является самым быстрым QA-фреймворком, по результатам независимых исследований.)

Далее расскажу, как ChatGPT упрощает задачи в Playwright; например, помогает найти причины ошибок, транслировать код с одного языка на другой, и настраивать вводы и нужные результаты. Я собрал несколько характерных кейсов, чтобы показать уровень ChatGPT-4 на практике.

Генерация кода на TypeScript

В основном работая не на TypeScript, я использовал ChatGPT, чтобы переводить некоторые проекты на TS. ChatGPT оказался очень сообразительным, «схватывая» суть кода и переводя его на TypeScript. Можно сказать, он помог мне выучить этот язык, «сгладил кривую обучения».

Первый промпт: «Переведи мне этот код на TypeScript»:

Такой результат получен:

С уточняющими комментариями. Отлично. Также ChatGPT включил в сгенерированный код импорт Playwright, необходимый для UI-теста.

Ок. Далее я дал новую задачу:

Ответ получился очень детализированным:

Переключение на другой язык часто вызывает проблемы с типами данных. К счастью, ChatGPT справляется с этим неплохо, и добавляет комментарии:

Полная версия чата здесь: https://chat.openai.com/share/9656950e-b8a8-477d-afbc-f555a11db748.

Интеграция с GitHub Actions через ChatGPT

Когда UI-тест запущен, самое время создать workflow для выполнения теста с помощью GitHub Actions. Это обеспечит бесшовную интеграцию тестирования в цикл разработки, повышая надежность CI/CD-конвейера.

Для этого я написал промпт:

как запустить UI-тест playwright с помощью GitHub actions при каждом слиянии в main-ветку

ChatGPT быстро выдал простое и понятное пошаговое руководство.

Желая получить доступ к Playwright-репорту из GitHub Action, я дописал следующий промпт:

как сохранить репорт Playwright, созданный во время GitHub action, чтобы потом иметь к нему доступ?

ChatGPT порекомендовал artifact uploading feature на GitHub. Однако я столкнулся с проблемой, когда задача загрузки не выполнялась если UI-тест завершался с ошибкой, и я ввел следующий промпт:

Я хочу изменить так, чтобы артефакт загружался даже при ошибке в GitHub action

Предложение ChatGPT было полезным, но оно приводило к ложнопозитивному срабатыванию, когда GitHub Action казалось успешным, даже если UI-тест падал с кодом ошибки. Это потребовало дальнейшей доработки:

если нужно экспортировать репорт Playwright только в случае failure, как мне добавить это в GitHub action?

Завершая эту часть практикума, могу сказать, что создание упорядоченного процесса для UI-тестов — очень полезно для любого проекта. Это хорошо интегрирует тестирование в цикл разработки, и повышает общую эффективность и надежность CI/CD-конвейера. На протяжении всего процесса внедрение ChatGPT оказалось полезным для совершенствования подхода, подчеркивая необходимость четкой коммуникации и итеративной обратной связи. Пример выше показывает ценность продуманных, точных промптов-уточнений, и также показывает простоту решения кажущихся проблем с ChatGPT.

Полный чат я сохранил здесь: https://chat.openai.com/share/2998ae7d-3d76-49a4-87ae-f16793c0171e.

Обработка ошибок в ChatGPT

У каждого есть опыт с невнятными сообщениями об ошибках, которые отправляют нас в кроличью нору бесконечных поисков в Google, чтения форумов и статей. К счастью, ChatGPT позволяет не нырять в океан нерелевантной информации. Далее пример, как ChatGPT помог справиться с ошибкой, возникшей при настройке GitHub action.

Вот сообщение об ошибке:

ChatGPT предложил два решения: запустить браузер в headless-режиме, или использовать xvfb-run для симуляции окружения. Учитывая, что тестирование связано с Chrome-расширением, которое требует запуска в headless-режиме, я решил взять подход xvfb-run. Обычно, получив такое сообщение об ошибке, я погружаюсь в форумы и статьи. На этот раз ChatGPT решил проблему, быстро предоставив мне два надежных варианта. Я выбрал второй вариант, попробовал xvfb-run, и все заработало. Это сэкономило мне массу времени.

Внимательность и опыт

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

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

Точность и продуманность промптов — это скилл, который будет решающим в работе с ChatGPT. Правильный промпт — основа всего. 

Нужно освоить этот специфический скилл: «чувствовать ChatGPT». Развивать критическое мышление, и нарабатывать опыт. ИИ автоматизирует рутинные, часто повторяемые и не слишком сложные задачи, и делает это иногда очень эффективно. Но ИИ не понимает нюансы проекта, и не адаптируется так быстро и гибко, как это делает человек с опытом.

Выводы

Возможно, стоит со временем обратить внимание на такие поделки, как Auto Playwright и ZeroStep. Эти инструменты призваны упростить некоторые аспекты QA, и они ориентированы, судя по всему, на компании, в которых нет выделенных QA-команд. При этом важно понимать, что эти фреймворки, какими бы инновационными они не казались, вряд ли смогут заменить опытных тестировщиков. Как уже говорилось выше, ИИ в его нынешнем состоянии просто не в состоянии воспроизвести знания, критическое мышление и опыт людей. После беглого знакомства с этими системами я сомневаюсь в их эффективности, по сравнению с работой квалифицированного тестировщика.

Со временем ИИ будет играть важную роль в упрощении и ускорении рутинных задач, особенно таких как стабильность селекторов — распространенная проблема. Любой, кто сталкивался с селекторами, знает, как с ними бывает сложно, и способность ИИ быстро определять нестабильные селекторы, предлагая действенные (и быстрые) исправления, может значительно улучшить этот аспект.

«Костыль» в виде ChatGPT в оптимизации стандартных QA-задач Playwright определенно убедил меня продолжать использовать его в будущих проектах (особенно для обработки простых ошибок для экономии времени). Рекомендую QA-автоматизаторам, да и разработчикам поработать с ним, и изучать потенциал ИИ-ассистентов (не только ChatGPT).»

Источник


Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас