Рубрика «playwright»

Пару месяцев назад я попросил агента проверить форму обратной связи после рефакторинга. Через несколько минут получил отчёт: все проверки пройдены, форма работает корректно. Зелёные галочки, уверенный тон.

Я тогда только начинал отдавать тестирование агенту, поэтому работал по схеме «доверяй, но проверяй»: следом прошёл форму руками, с открытой вкладкой Network. Снаружи всё честно: валидация зелёная, кнопка активная, тост «Спасибо!» показывается, сервер отвечает 200. А в payload вместо темы обращения уходит строка [object Object]. Агент проверил всё, кроме того, что реально уходит на сервер.

Читать полностью »

«Нам нужно сделать регрессионное, функциональное и интеграционное тестирование» — а ты автоматизатор и уже задумываешься о том, что попал куда‑то не туда. Или же ты новичок, решивший пойти в тестировщики, смотришь вакансии и видишь, что этих видов тестирования чуть ли не сотня. Как же понять, что от тебя требуют и куда идти? Попробуем разобраться.

Важно сразу сказать, что виды тестирования разделяют по категориям — всё равно что разработчиков делят не только по яп, но и по тому, где этот яп применяется. Ведь java backend разработчик и java mobile разработчик это совершенно разные вещи!

Читать полностью »

В общем, базовая история с аудитом страниц: мы каждый месяц отправляли подрядчику несколько страниц на проверку. Отбирали несколько максимально разных. Если находились проблемы на одной, мы также правили и на однотипных. В месяц так проверяли 4–6 страниц. И тут, из очевидных минусов — оплата подрядчика и ожидание.

Учитывая, что по сути нужно проверять однотипные вещи, вроде title, description, H1 и, например, ошибки в консоли, то я подумал, почему бы не попробовать отдать это агенту. Да, в деталях всё не так просто, но общая процедура каждый раз плюс‑минус одинаковая, а значит, можно настроить сценарий. 

Читать полностью »

Коротко. Сервис открывает чужой сайт и считает штраф по КоАП. Внутри двухуровневая проверка по 22 правилам: дешёвые эвристики на cheerio там, где хватает регулярок, и Claude через российский прокси там, где нужно понять смысл текста. На выходе балл от 0 до 100, список нарушений со статьями КоАП и вилкой штрафа. Законы в основе: 152-ФЗ о персональных данных, 242-ФЗ о локализации, закон о рекламе, закон о защите прав потребителей. Ниже стек, архитектура и грабли. Самая обидная грабля в том, что b в JavaScript не образует границу слова перед кириллицей, и детектор молча слепнет на русском тексте.

Зачем я вообще это делал

Читать полностью »

Один из лучших способов по-настоящему разобраться в инструменте — понять, как он устроен изнутри. С большинством JavaScript-библиотек у меня работает так: мне не нужно заглядывать в исходники, потому что по дизайну API уже можно примерно представить его реализацию. Но API фикстур в Playwright поставил меня в тупик. Минимальный тест выглядит следующим образом:

import { test, expect } from "@playwright/test";

test("basic test", async ({ page }) => {
  await page.goto("https://playwright.dev/");

  await expect(page).toHaveTitle(/Playwright/);
});

В этом примере мы запрашиваем у Playwright фикстуру pageЧитать полностью »

Было время, когда платили разработчикам за создание сайтов. Потом появились конструкторы типа WordPress. И WP с его многочисленными плагинами стал золотым стандартом для создания сайтов и лендингов.

Но пришел OpenClaw и все поменялось. Теперь своим зоопарком лендингов я управляю через TG бота:

  • Убери с сайта X вот это

  • Добавь на сайт Y вот то

  • Поменяй стиль сайта Z на …

  • Создай новую страничку для …

  • Убери все товары/услуги типа “…”

  • Откати последние изменения на сайте XM

  • Замени иконку на сайте XS на более современную

  • Читать полностью »

Утро, кофе, открываешь GitLab, а CI красный. Классика. Лезешь в отчёт, а там портянка на 5 экранов и TimeoutError где-то в недрах клика по кнопке. Селектор нормальный, data-testid="checkout-submit". Чтобы понять, что именно сломалось (может отвалилась база или фронт не отрисовал кнопку, возможно, юзер тупит), нужно лезть в код теста и дебажить глазами.

Бесит нереально. Ты или твой коллега тратите время не на фикс багов, а на расследование.

Классический POM: Как мы жили раньше?

Обычно все начинается красиво. Вы пишете чистый Page Object.

Читать полностью »
Как я воссоздал веб-сайт 1996 года при помощи Claude - 1

Вчера до вершины популярности Hacker News добрался этот пост Джоны Гловера:

Читать полностью »

Коротко:
Мы разработали систему для автоматического определения набора тестов на основе git diff. Связали модули проекта с бизнес-фичами через трассировку выполнения кода во время тестов. Теперь любой релиз можно оценить на достаточность покрытия e2e-тестами. Решили вопрос селективного запуска на всех уровнях пирамиды тестирования. Что важно — маппинг tests->feature->files создаётся и поддерживается автоматически при поддержке тестов, без дополнительной ручной работы.

Проблема: что запускать и как понять достаточно ли покрытия?

Мини-глоссарий перед началом

Глава 1. Как все начиналось. Немного истории и воды о моем личном опыте.

Всем привет!
Меня зовут Майнура.

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

Читать полностью »

https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js