RU

Пагинация. Ошибки тестирования списков и курсоров

Пагинация ломается не только внутри запроса к базе. Это цепочка: бэкенд определяет порядок и границу страницы, фронт хранит курсор и объед…

пагинацияавтоматизация тестированиятестирование APIE2E-тестированиеPlaywrightкурсорная пагинацияинтеграционные тестыгонки запросовтестирование фронтендаобработка ошибок
Habr
RU

Как я перенёс проверку цен с VPS на компьютеры пользователей — и зачем всё-таки оставил сервер

Сначала PriceTrack проверял страницы маркетплейса на VPS. Селекторы были корректными, но сервер вместо карточек товара получал 403. В итоге я перенё…

архитектура ПОdesktop-приложениеPythonFastAPIPlaywrightпарсингмаркетплейсылокальная обработкараспределённая системаWindows
Habr
RU

Playwright не спасает от флапающих тестов: разбираемся, как он ждёт на самом деле

Локально тесты проходят стабильно, а в CI начинают падать в случайных местах — знакомая картина даже для проектов на P…

PlaywrightPythonpytest-playwrightавтотестыUI-тестированиеAPI-тестированиефлапающие тестыCIавтоожиданиелокаторы.
Habr
RU

Браузер вместо API: как я объединил DeepSeek, Qwen и ChatGPT в одного локального агента

Я хотел получить локального AI-агента без отдельного API для каждой модели — и превратил браузерные сессии DeepSeek, Qwen и ChatGPT в единый транспо…

AI-агентыLLMDeepSeekQwenChatGPTPlaywrightChromiumNode.jsopen sourceVS Code
Habr
RU

Как я учил AI‑аудитора проверять сайты и не ломать отчеты

В общем, базовая история с аудитом страниц — мы каждый месяц отправляли подрядчику несколько страниц на проверку. Отбирали неско…

AI-агентыАвтоматизацияАудит сайтовPlaywrightSEO-аудитGoogle SheetsAccessibilitySquirrelscanllm
Habr
RU

Тестирование поиска и фильтров: чек-лист + как автоматизировать каждый пункт на Playwright

Поиск кажется простым: поле ввода, запрос, список результатов. Но именно поэтому его тестируют поверхностно — «ввёл слово, что-то нашлось, ок». А ре…

Playwrightавтоматизация тестированияe2eтестирование поискаQAфильтрыdebounceXSSчек-листend-to-end
Habr
RU

Я собрал линтер для юридического соответствия сайтов. Сложнее всего было отличить Google Analytics от CSS‑переменной

Коротко . Сервис открывает чужой сайт и считает штраф по КоАП. Внутри двухуровневая проверка по 22 правилам: дешёвые эвристики на che…

152-ФЗперсональные данныекомплаенсprompt cachingрегулярные выражениякириллицаLLMPlaywrightаудит сайтаNext.js
Habr
RU

Основы парсинга сайтов: от HTML до готового датасета для NLP

Даже сильная NLP‑модель быстро упирается в банальную проблему: ей нужны данные, причём не абстрактные «готовые датасеты», а текс…

парсинг сайтовPythonHTMLBeautifulSouprequestsPlaywrightNLPдатасеточистка данныхязыковые модели
Habr