Media is too big
VIEW IN TELEGRAM
Финально допричесываю презентацию🎉
Я расскажу весь свой спикерский опыт, пройдемся от поиска идеи до непосредственного выступления на сцене!😅
Обязательно приходите, стартуем через 30 минут
ссылка на эфир
Я расскажу весь свой спикерский опыт, пройдемся от поиска идеи до непосредственного выступления на сцене!
Обязательно приходите, стартуем через 30 минут
ссылка на эфир
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
А у вас было такое «погружение» на новой работе ?🙀
Чет неделя трудная выдалась, а как у вас? Скидывайте что вас порадовало на неделе, в комментарии, пора выдохнуть и посмеяться🎉
Всех с наступающими выходными😅
#мемница
Чет неделя трудная выдалась, а как у вас? Скидывайте что вас порадовало на неделе, в комментарии, пора выдохнуть и посмеяться
Всех с наступающими выходными
#мемница
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣13 9💯2😁1 1
Media is too big
VIEW IN TELEGRAM
"Если ты не автоматизируешь, зачем знать про автоматизацию?"
Так мне ответили на собеседовании, когда я задал стандартный вопрос: "Что можно автоматизировать, а что нельзя?"
И, конечно, нельзя автоматизировать всё. Во-первых, это накладно и потребует вдвое большего объёма инвестиций на поддержку, во-вторых, сложно и иногда невозможно автоматизировать некоторые проверки, например, проверку удобства использования.😺
Поэтому важно держать баланс между автоматизацией и ручным тестированием на проекте, и главное — не писать автотесты "в стол".
Потому что и такие истории бывают!
Поэтому автоматизация должна быть прозрачной!😅
И бизнес готов платить за это, потому что ручной труд QA специалистов не намного дешевле зарплаты разработчика, а задач у QA, помимо "нажимания кнопок", выше крыши: анализ требований, составление стратегии и плана тестирования, анализ результатов, а также внедрение и влияние на метрики обеспечения качества. Всё это ценно, и пока с этим не может справиться ИИ.
Поэтому базовое понимание процесса автоматизации у QA должно быть, даже если автоматизацию выполняют разработчики. Что именно они автоматизируют, понимать надо, а то мало ли что они там покрывают🤔
По традиции, с вас🎉 , если согласны, а если нет — пишите в комментариях, с чем не согласны, поболтаем.❤️
#воскрессобес
Так мне ответили на собеседовании, когда я задал стандартный вопрос: "Что можно автоматизировать, а что нельзя?"
Мне кажется, это БАЗА. Даже если на проекте ещё нет автотестов, возможно, с тебя они как раз и начнутся. Автоматизация — это не просто модное слово, и внедрять её нужно не потому, что так модно, а потому что это способ снизить рутину ручных проверок и избежать проблем типа: "Я недоглядел!" и "Ой, блин, пропустил!", когда в тысячный раз выполняешь одни и те же тесты.🙀
И, конечно, нельзя автоматизировать всё. Во-первых, это накладно и потребует вдвое большего объёма инвестиций на поддержку, во-вторых, сложно и иногда невозможно автоматизировать некоторые проверки, например, проверку удобства использования.
Поэтому важно держать баланс между автоматизацией и ручным тестированием на проекте, и главное — не писать автотесты "в стол".
Потому что и такие истории бывают!
Автотесты пишут, но при этом они не интегрированы в пайплайны и запускаются у одного какого-то QA/DEV, а остальная команда никак с автотестами не взаимодействует!
Поэтому автоматизация должна быть прозрачной!
И бизнес готов платить за это, потому что ручной труд QA специалистов не намного дешевле зарплаты разработчика, а задач у QA, помимо "нажимания кнопок", выше крыши: анализ требований, составление стратегии и плана тестирования, анализ результатов, а также внедрение и влияние на метрики обеспечения качества. Всё это ценно, и пока с этим не может справиться ИИ.
Поэтому базовое понимание процесса автоматизации у QA должно быть, даже если автоматизацию выполняют разработчики. Что именно они автоматизируют, понимать надо, а то мало ли что они там покрывают
По традиции, с вас
#воскрессобес
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Уже больше двухсот голосов, большое вам спасибо 😅
Для меня это важно в первую очередь потому, что после ревью у меня прибавилась зона ответственности и пришло +3 QA-инженера в команду. Таким образом, у меня теперь будет 11 человек, что уже немало.
Мне повезло — все мои руководители были крутыми, со своими приколами, конечно, но поругать их особенно не за что!
Но я слышал разные истории про руководителей, и мне не хочется допустить эти ошибки, своих хватает 😂
Этот опыт тоже важен, поэтому, пожалуйста, пройдите еще один опрос "За что вы цените своего руководителя". Как и в прошлый раз, проголосовать можно только за одно качество, чтобы не получить размытых цифр, как при мультивыборе, и вы голосовали только за то, что действительно важно.
Когда соберем данные, я их использую для самоанализа и сделаю доклад, где соберу свой опыт становления лидом, что прокачивал, что недостаточно прокачивал и вообще "Что качать, чтобы стать лидом и не выгореть".
Ставьте🎉 , если горите, но не выгораете, и голосуйте в опросе ниже:
Кто еще не голосовал, проголосуйте, пожалуйста, ваш голос очень важен👍
Для меня это важно в первую очередь потому, что после ревью у меня прибавилась зона ответственности и пришло +3 QA-инженера в команду. Таким образом, у меня теперь будет 11 человек, что уже немало.
И я уже сейчас чувствую, что начинают появляться косяки, и мне это не нравится😡
Мне повезло — все мои руководители были крутыми, со своими приколами, конечно, но поругать их особенно не за что!
Но я слышал разные истории про руководителей, и мне не хочется допустить эти ошибки, своих хватает 😂
Кстати, в комментариях коллеги также делились историями про своих руководителей, у которых нет негативных качеств, а только положительные!
Этот опыт тоже важен, поэтому, пожалуйста, пройдите еще один опрос "За что вы цените своего руководителя". Как и в прошлый раз, проголосовать можно только за одно качество, чтобы не получить размытых цифр, как при мультивыборе, и вы голосовали только за то, что действительно важно.
Когда соберем данные, я их использую для самоанализа и сделаю доклад, где соберу свой опыт становления лидом, что прокачивал, что недостаточно прокачивал и вообще "Что качать, чтобы стать лидом и не выгореть".
Ставьте
Please open Telegram to view this post
VIEW IN TELEGRAM
Ровно год назад я опубликовал интервью с Димой, моим коллегой, который в том году пришёл к нам в Лавку 💙 без опыта, стажёром тестировщиком, а год спустя он уже стал Middle QA!😅
В новом видео на канале можно узнать о пути Димы от стажёра до мидла, его типичном рабочем дне, о процессах и команде, а также о плюсах и минусах работы в Яндексе: Смотрите на Ютуб.👍
Для начинающих тестировщиков Дима поделился полезными ссылками, которые сам использовал при обучении и развитии в профессии QA:
- QA-библия
- Бесплатный курс по тестированию на Stepik
- Тренажер начинающего тестировщика (Задача с собеседований)
- Десятичасовой курс по JavaScript
Ставьте🎉 , если понравился формат. В следующем видео — обзор офиса, как и обещал!
В новом видео на канале можно узнать о пути Димы от стажёра до мидла, его типичном рабочем дне, о процессах и команде, а также о плюсах и минусах работы в Яндексе: Смотрите на Ютуб.
Для начинающих тестировщиков Дима поделился полезными ссылками, которые сам использовал при обучении и развитии в профессии QA:
- QA-библия
- Бесплатный курс по тестированию на Stepik
- Тренажер начинающего тестировщика (Задача с собеседований)
- Десятичасовой курс по JavaScript
Диман, ты — красава! В смысле, очень красивый, ну и коллега вроде норм. Продолжай в том же духе, рад с тобой работать!❤️
Ставьте
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
А как у вас проходят встречи по проектам ?🤔
#мемница а это значит, можно немного расслабится, накидайте смешного в комментарии, плиииз🎉
#мемница а это значит, можно немного расслабится, накидайте смешного в комментарии, плиииз
Please open Telegram to view this post
VIEW IN TELEGRAM
😁27🤣9👍2 2
Media is too big
VIEW IN TELEGRAM
Сегодня 14-й день моего погружения в автоматизацию!🎉
За это время я успел написать 2 автотеста. Один уже на проде, а второй проходит через муки код-ревью.
На самом деле тесты на нашем проекте писать несложно благодаря прекрасной организации кода автотестов с помощью Page Object Model.
У каждой страницы приложения есть отдельная папка с тестом, а также вынесены фикстуры, хелперы и весь низкоуровневый код.
Это нереально упрощает вход для новых автоматизаторов, но вместе с этим и усложняет его!😺
Я в начале сказал про муки код-ревью. Оно у нас достаточно жесткое. Нельзя писать автотесты как попало, нужно опираться на КОДЕКС — свод правил, как писать автотесты правильно!
Несоответствие кодексу сразу выявляется AI-ревьюером, который проверяет код на соответствие требованиям. Да, иногда он галлюцинирует, но в большинстве своем выдает дельные замечания!
Поэтому, просматривая записи собеседований автоматизаторов и мок-собесы, я постоянно натыкался на вопросы про POM.
Бизнес заинтересован в том, чтобы даже тесты были быстро читаемыми и легко поддерживаемыми для их масштабирования и поддержки.
Если вы хотите тоже погрузиться в автоматизацию, этой теме нужно посвятить отдельное время в программе обучения. Ведь это не просто Best Practice — это то, что точно спросят на собеседовании.🎉
#воскрессобес
За это время я успел написать 2 автотеста. Один уже на проде, а второй проходит через муки код-ревью.
На самом деле тесты на нашем проекте писать несложно благодаря прекрасной организации кода автотестов с помощью Page Object Model.
У каждой страницы приложения есть отдельная папка с тестом, а также вынесены фикстуры, хелперы и весь низкоуровневый код.
Тесты читать — одно удовольствие. Даже без знаний кода достаточно базового английского!😅
Это нереально упрощает вход для новых автоматизаторов, но вместе с этим и усложняет его!
Я в начале сказал про муки код-ревью. Оно у нас достаточно жесткое. Нельзя писать автотесты как попало, нужно опираться на КОДЕКС — свод правил, как писать автотесты правильно!
Несоответствие кодексу сразу выявляется AI-ревьюером, который проверяет код на соответствие требованиям. Да, иногда он галлюцинирует, но в большинстве своем выдает дельные замечания!
Приятно работать там, где так заботливо подходят к организации автоматизации, ведь так бывает далеко не всегда!🤔
Поэтому, просматривая записи собеседований автоматизаторов и мок-собесы, я постоянно натыкался на вопросы про POM.
Бизнес заинтересован в том, чтобы даже тесты были быстро читаемыми и легко поддерживаемыми для их масштабирования и поддержки.
Если вы хотите тоже погрузиться в автоматизацию, этой теме нужно посвятить отдельное время в программе обучения. Ведь это не просто Best Practice — это то, что точно спросят на собеседовании.
#воскрессобес
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11 9👍5🔥2
Наконец-то завершил видео про нижегородский офис Яндекса.
Также поделился своей историей о том, почему выбрал именно офисный формат, хотя есть возможность удаленной работы.
Видео уже на канале. Приятного просмотра:
Смотреть видео
Как вам видео? Пожалуйста, дайте обратную связь. Сейчас готовлю видео про офис "Лавки" в Москве и хочу сделать его еще лучше!
Как только пост наберет 100 реакций🎉 , выпускаю следующее видео про офис.
Также поделился своей историей о том, почему выбрал именно офисный формат, хотя есть возможность удаленной работы.
Видео уже на канале. Приятного просмотра:
Смотреть видео
Как вам видео? Пожалуйста, дайте обратную связь. Сейчас готовлю видео про офис "Лавки" в Москве и хочу сделать его еще лучше!
Как только пост наберет 100 реакций
Please open Telegram to view this post
VIEW IN TELEGRAM
Вчера отметили выпускной Летней Школы Обеспечения Качества Яндекса 🎉
Три месяца пролетели, как миг, и за это время вы стали для меня по-настоящему родными людьми❤️
Что было:
• Пришло более 3000 заявок в школу.
• Ребята решили непростые отборочные задачи и прошли собеседование.
• Более 70 студентов зачислены после строгого отбора.
• За два месяца реализовали четыре полноценные проекта: автотесты на API, функциональные тесты, скринтесты и автотесты под Android и iOS.
• Писали на четырех языках программирования (Java, Kotlin, SWIFT, JavaScript).
• Меньше чем за месяц реализовали настоящий боевой проект вместе со студентами других школ (фронтенд- и бэкенд-разработчиками, менеджерами, аналитиками, девопсами и дизайнерами).
Над проектом трудились более 50 коллег (менторы, лекторы, собеседующие, менеджеры, методисты).
Сейчас готовим портфолио студентов и начинаем нанимать, то есть работа над ШОКом не заканчивается, а наоборот выходит на самый важный этап!
Скоро проведем ретро и обсудим, что было круто, а что можно улучшить, чтобы в следующем году сделать школу еще более полезной для студентов🎉
… Слезы радости
Три месяца пролетели, как миг, и за это время вы стали для меня по-настоящему родными людьми
Было сложно, я знаю, но вы справились, и я вами горжусь!
Что было:
• Пришло более 3000 заявок в школу.
• Ребята решили непростые отборочные задачи и прошли собеседование.
• Более 70 студентов зачислены после строгого отбора.
• За два месяца реализовали четыре полноценные проекта: автотесты на API, функциональные тесты, скринтесты и автотесты под Android и iOS.
• Писали на четырех языках программирования (Java, Kotlin, SWIFT, JavaScript).
• Меньше чем за месяц реализовали настоящий боевой проект вместе со студентами других школ (фронтенд- и бэкенд-разработчиками, менеджерами, аналитиками, девопсами и дизайнерами).
Над проектом трудились более 50 коллег (менторы, лекторы, собеседующие, менеджеры, методисты).
Вам тоже хочется сказать огромное спасибо, без вас бы ничего не получилось, это точно 🙏
Сейчас готовим портфолио студентов и начинаем нанимать, то есть работа над ШОКом не заканчивается, а наоборот выходит на самый важный этап!
Скоро проведем ретро и обсудим, что было круто, а что можно улучшить, чтобы в следующем году сделать школу еще более полезной для студентов
… Слезы радости
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥32 16❤12🔥3👍1😭1
Media is too big
VIEW IN TELEGRAM
20 день моего погружения в автоматизацию на TS+Playwright и сегодня хочу поговорить про ожидания !
Базово в Selenium используется Polling-based подход:
Selenium постоянно опрашивает DOM каждые 500мс
В Playwright же используется Event-driven подход:
Playwright слушает события браузера и реагирует мгновенно
Подготовил для себя и вас памятку по ожиданиям в PW , сохрани чтобы не потерять :
Явные ожидания элементов на странице:
Ожидания страницы:
Ожидание API запросов: (работает из коробки и постоянно использую в АТ)
Ожидания событий:
И кастомные ожидания с waitForFunction:
На собесах, вопросы про ожидания в автотестах тоже часто присутствуют, поэтому сохраняй, чтобы не забыть !
С вас🎉 если было полезно!
#воскрессобес
Это головная боль автоматизаторов из прошлого, потому что в Selenium были только явные ожидания, которые нужно прописывать и про это душили на собесах.😡
Базово в Selenium используется Polling-based подход:
Selenium постоянно опрашивает DOM каждые 500мс
В Playwright же используется Event-driven подход:
Playwright слушает события браузера и реагирует мгновенно
И это уже жирнючий плюс к скорости PW автотестов!
Подготовил для себя и вас памятку по ожиданиям в PW , сохрани чтобы не потерять :
Явные ожидания элементов на странице:
test('явные ожидания элементов', async ({ page }) => {
await page.goto('https://example.com')
// Ожидание появления элемента
await page.locator('#dynamic-content').waitFor()
// Ожидание видимости
await page.locator('.modal').waitFor({ state: 'visible' })
// Ожидание скрытия
await page.locator('.loading-spinner').waitFor({
state: 'hidden',
timeout: 5000
})
// Ожидание присутствия в DOM
await page.locator('#new-item').waitFor({ state: 'attached' })
// Ожидание удаления из DOM
await page.locator('#removed-item').waitFor({ state: 'detached' })
})
Ожидания страницы:
test('ожидания состояния страницы', async ({ page }) => {
await page.goto('https://example.com')
// Ожидание полной загрузки
await page.waitForLoadState('load')
// Ожидание завершения сетевых запросов
await page.waitForLoadState('networkidle')
// Ожидание готовности DOM
await page.waitForLoadState('domcontentloaded')
// Ожидание конкретного URL
await page.waitForURL('**/dashboard')
})
Ожидание API запросов: (работает из коробки и постоянно использую в АТ)
test('ожидания API запросов', async ({ page }) => {
// Ожидание конкретного запроса
const responsePromise = page.waitForResponse('**/api/users')
await page.locator('#load-users').click()
const response = await responsePromise
expect(response.status()).toBe(200)
// Ожидание запроса с условием
const apiResponse = page.waitForResponse(response =>
response.url().includes('/api/data') && response.status() === 200
)
})
Ожидания событий:
test('ожидания событий браузера', async ({ page }) => {
// Ожидание новой страницы/вкладки
const [newPage] = await Promise.all([
page.context().waitForEvent('page'),
page.locator('#open-new-tab').click()
])
// Ожидание скачивания файла
const [download] = await Promise.all([
page.waitForEvent('download'),
page.locator('#download-btn').click()
])
await download.saveAs('./downloads/' + download.suggestedFilename())
})
И кастомные ожидания с waitForFunction:
test('кастомные ожидания', async ({ page }) => {
await page.goto('https://example.com')
// Ожидание изменения количества элементов
await page.waitForFunction(() => {
return document.querySelectorAll('.item').length > 5
})
})
На собесах, вопросы про ожидания в автотестах тоже часто присутствуют, поэтому сохраняй, чтобы не забыть !
С вас
#воскрессобес
Please open Telegram to view this post
VIEW IN TELEGRAM
Когда ты погружаешься в автоматизацию тестирования или только думаешь в эту сторону, голова взрывается от кучи вопросов 🙀
Поэтому в этот четверг, 28 августа, в 19:00 я позвал на прямой эфир Всеволода Егорова из Яндекс.Музыки — профессионального автоматизатора на TS+Playwright и лектора летней школы обеспечения качества.
Трансляцию, думаю, провести в «Телемосте». Мои тесты показали, что онловит даже на парковке работает, но если знаете живые сервисы для стрима — пишите в комментариях!
Приносите свои вопросы, и мы, как всегда, лампово расспросим Севу обо всём, что нужно знать новичку в автоматизации тестирования!
Ставь🎉 , если придёшь и интересны такие эфиры! Увидимся ❤️
Как подойти к обучению?
На что делать упор в первую очередь?
Как не допустить ошибок?
Поэтому в этот четверг, 28 августа, в 19:00 я позвал на прямой эфир Всеволода Егорова из Яндекс.Музыки — профессионального автоматизатора на TS+Playwright и лектора летней школы обеспечения качества.
Также рекомендую к прочтению его статью на Хабре
как обучить ручных тестировщиков автоматизации
на проекте — просто бомба!
👍
Трансляцию, думаю, провести в «Телемосте». Мои тесты показали, что он
Приносите свои вопросы, и мы, как всегда, лампово расспросим Севу обо всём, что нужно знать новичку в автоматизации тестирования!
Ставь
Please open Telegram to view this post
VIEW IN TELEGRAM
Хотели бы посмотреть на штаб-квартиру Яндекса изнутри?
Заценить тут
• Сделал обзор корпусов Розы
• Показал, что находится внутри
• Заглянул в музей Яндекса
• И был свидетелем редкого явления — «схватки вежливости 2 роверов» (природа Москвы прекрасна😅 )
Если понравилось, ставьте🎉
И не забывайте про эфир завтра в 19:00, где зададим вопросы по автоматизации настоящему гуру Playwright — Всеволоду Егорову!
Пока был в командировке, заснял для вас один день в «Красной Розе».
Заценить тут
• Сделал обзор корпусов Розы
• Показал, что находится внутри
• Заглянул в музей Яндекса
• И был свидетелем редкого явления — «схватки вежливости 2 роверов» (природа Москвы прекрасна
Если понравилось, ставьте
И не забывайте про эфир завтра в 19:00, где зададим вопросы по автоматизации настоящему гуру Playwright — Всеволоду Егорову!
Please open Telegram to view this post
VIEW IN TELEGRAM
Это мы тестируем телемост на стабильность, тест говорит что все работает как надо!
Напоминаю что через час встречаемся на эфире
Ссылка на прямой эфир (Телемост)
Мы зададим вопросы по автоматизации , гуру Playwright, прекрасному лектору и просто приятному человеку Всеволоду Егорову
Короткая повестка:
Приходите и со своими вопросами — зададим их в прямом эфире! Подключайтесь через час, не опаздывайте. И расскажите коллеге, которому это может быть полезно. Увидимся
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Пока делал проект по требованиям от заказчика, осознал как не просто бывает разработчикам…
Как вам результат? Получилось похоже или не по требованиям и надо переделать?
Всем прекрасных выходных🎉
Как вам результат? Получилось похоже или не по требованиям и надо переделать?
Всем прекрасных выходных
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня моя старшая дочь пошла в первый класс 😅
Очень волнительный момент: как будто вчера сам пошёл в школу, а уже дочь провожаю…
Но что это я — это же праздник, поэтому поздравляю всех с Днём знаний!🎉
А ещё у меня стартует осенняя арка с обучающим контентом.
🔵 Будет выходить много видео и материалов по обучению профессии QA-инженера.
🔵 Готовится видео с базой по тестированию.
🔵 Видео по программированию для ручных тестировщиков.
🔵 И гайд по автоматизации — с нуля до полноценного проекта.
🔵 Ну и, конечно, будут видео с разборами вопросов на собеседованиях и по поиску работы.
Ещё раз — всех с праздником, прекрасной недели!🎉
Очень волнительный момент: как будто вчера сам пошёл в школу, а уже дочь провожаю…
Желаю тебе лёгкой учёбы: будет непросто, но у тебя всё получится!❤️
Но что это я — это же праздник, поэтому поздравляю всех с Днём знаний!
А ещё у меня стартует осенняя арка с обучающим контентом.
Через две недели — в отпуск, и как раз смогу сконцентрироваться на контенте.
Ещё раз — всех с праздником, прекрасной недели!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤52 23👍14🔥2👏1
Media is too big
VIEW IN TELEGRAM
Сегодня 28 день моего погружения в автоматизацию 🎉
Если интересны ежедневные отчеты моего 60-дневного марафона по автотестам, можно приобрести доступ в закрытое сообществе: QA-Profi
Сегодня хочу поговорить про проверки в Playwright
Главное преимущество: проверки в Playwright - это не статичные сравнения, а динамические ожидания, которые подстраиваются под реальное поведение веб-приложений.
Playwright повторяет проверки каждые несколько миллисекунд, пока условие не выполнится или не истечет таймаут. Это исключает flaky тесты из-за временных задержек DOM.
Вместо AssertionError: false Playwright показывает:
• Что ожидалось vs что получили
• Скриншот момента ошибки
• Путь к элементу и его текущее состояние
• Лог всех действий до ошибки
Собрал для вас шпаргалку по проверкам в Playwright:
Проверки текста :
Проверки состояний элементов:
Проверки атрибутов и стилей:
Проверка количества элементов:
Проверки страницы:
Soft assertions (не останавливают тест):
Если интересны ежедневные отчеты моего 60-дневного марафона по автотестам, можно приобрести доступ в закрытое сообществе: QA-Profi
Там я и коллеги помогаем с разбором резюме, поиском работы и ответами на все вопросы новичков в тестировании!
Сегодня хочу поговорить про проверки в Playwright
Потому что это спрашивают как на собесах, так и в работе без этого никуда!😺
Главное преимущество: проверки в Playwright - это не статичные сравнения, а динамические ожидания, которые подстраиваются под реальное поведение веб-приложений.
Playwright повторяет проверки каждые несколько миллисекунд, пока условие не выполнится или не истечет таймаут. Это исключает flaky тесты из-за временных задержек DOM.
А еще информативные ошибки - это отдельный кайф😅
Вместо AssertionError: false Playwright показывает:
• Что ожидалось vs что получили
• Скриншот момента ошибки
• Путь к элементу и его текущее состояние
• Лог всех действий до ошибки
Собрал для вас шпаргалку по проверкам в Playwright:
Проверки текста :
// Точное совпадение
await expect(page.locator('h1')).toHaveText('Добро пожаловать');
// Частичное совпадение
await expect(page.locator('.error')).toContainText('Ошибка');
// Регулярки для сложных случаев
await expect(page.locator('#phone')).toHaveText(/^\+7\s\d{3}\s\d{3}-\d{2}-\d{2}$/);
Проверки состояний элементов:
await expect(page.locator('#submit')).toBeEnabled();
await expect(page.locator('#terms')).toBeChecked();
await expect(page.locator('.modal')).toBeVisible();
Проверки атрибутов и стилей:
await expect(page.locator('#link')).toHaveAttribute('href', '/dashboard');
await expect(page.locator('.btn')).toHaveClass('btn-primary');
await expect(page.locator('#error')).toHaveCSS('color', 'rgb(255, 0, 0)');
Проверка количества элементов:
await expect(page.locator('.product')).toHaveCount(12);
await expect(page.locator('.review')).toHaveCount({ gte: 5 }); // минимум 5
Проверки страницы:
await expect(page).toHaveURL(/.*dashboard.*/);
await expect(page).toHaveTitle('Личный кабинет');
Soft assertions (не останавливают тест):
await expect.soft(page.locator('#optional')).toBeVisible();
await expect.soft(page.locator('#another')).toHaveText('test');
// Тест продолжится даже если проверки упадут!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤6👍5 2
Пока был в Москве, встретился со своим коллегой Эриком Бурыгиным!
Видео на YouTube: https://www.youtube.com/watch?v=PQtbnlHg3GY
Эрик рассказал о своём пути в профессию тестировщика, как он рос в карьере и как его занесло в создание курсов Практикума по тестированию, автоматизации и разработке.
Кстати, у него тоже есть Телеграм-канал, где он делится моментами работы QA-Лидом, публичными выступлениями и рассказывает о том, как работать и жить счастливо. Подписывайтесь: @Erik_is_typing
Если видео понравилось, ставьте реакцию🎉 Увидимся!
Видео на YouTube: https://www.youtube.com/watch?v=PQtbnlHg3GY
На мой взгляд, самым счастливым тестировщиком!
И это несмотря на его работу лидом команды тестирования в нескольких проектах!
Эрик рассказал о своём пути в профессию тестировщика, как он рос в карьере и как его занесло в создание курсов Практикума по тестированию, автоматизации и разработке.
А ещё он поделился, что помогает ему оставаться таким счастливым и не выгорать😅
Кстати, у него тоже есть Телеграм-канал, где он делится моментами работы QA-Лидом, публичными выступлениями и рассказывает о том, как работать и жить счастливо. Подписывайтесь: @Erik_is_typing
Если видео понравилось, ставьте реакцию
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥8 8🤬3👍1