es
Feedback

¡No caigas en manos de tramposos! Telemetrio encuentra y marca estos canales 👉 Si quieres ver la etiqueta, suscríbete

Библиотека тестировщика | QA, тестирование, quality assurance, manual testing, autotesting, ручное тестирование, автотесты

Библиотека тестировщика | QA, тестирование, quality assurance, manual testing, autotesting, ручное тестирование, автотесты

Ir al canal en Telegram

Все самое полезное для тестировщика в одном канале. Наши курсы: https://clc.to/wlBkTA По рекламе: @tproger_sales_bot Учиться у нас: https://proglib.io/w/12538d6f Для обратной связи: @proglibrary_feeedback_bot

Mostrar más
8 954
Suscriptores
Sin datos24 horas
-167 días
-6330 días
Atraer Suscriptores
oct '26
octubre '26
+40
en 1 canales
septiembre '26
+54
en 0 canales
Get PRO
agosto '26
+50
en 1 canales
Get PRO
julio '26
+58
en 1 canales
Get PRO
junio '26
+98
en 1 canales
Get PRO
mayo '26
+119
en 1 canales
Get PRO
abril '26
+103
en 2 canales
Get PRO
marzo '26
+174
en 3 canales
Get PRO
febrero '26
+278
en 3 canales
Get PRO
enero '26
+135
en 1 canales
Get PRO
diciembre '25
+88
en 2 canales
Get PRO
noviembre '25
+113
en 0 canales
Get PRO
octubre '25
+141
en 4 canales
Get PRO
septiembre '25
+123
en 1 canales
Get PRO
agosto '25
+107
en 2 canales
Get PRO
julio '25
+138
en 0 canales
Get PRO
junio '25
+93
en 0 canales
Get PRO
mayo '25
+102
en 0 canales
Get PRO
abril '25
+141
en 7 canales
Get PRO
marzo '25
+218
en 52 canales
Get PRO
febrero '25
+170
en 31 canales
Get PRO
enero '25
+192
en 52 canales
Get PRO
diciembre '24
+129
en 50 canales
Get PRO
noviembre '24
+113
en 50 canales
Get PRO
octubre '24
+163
en 36 canales
Get PRO
septiembre '24
+241
en 57 canales
Get PRO
agosto '24
+326
en 35 canales
Get PRO
julio '24
+328
en 36 canales
Get PRO
junio '24
+331
en 29 canales
Get PRO
mayo '24
+354
en 36 canales
Get PRO
abril '24
+363
en 35 canales
Get PRO
marzo '24
+472
en 31 canales
Get PRO
febrero '24
+379
en 29 canales
Get PRO
enero '24
+351
en 26 canales
Get PRO
diciembre '23
+356
en 24 canales
Get PRO
noviembre '23
+289
en 5 canales
Get PRO
octubre '23
+494
en 22 canales
Get PRO
septiembre '23
+514
en 0 canales
Get PRO
agosto '23
+378
en 0 canales
Get PRO
julio '23
+206
en 0 canales
Get PRO
junio '23
+127
en 0 canales
Get PRO
mayo '23
+291
en 0 canales
Get PRO
abril '23
+133
en 0 canales
Get PRO
marzo '23
+336
en 0 canales
Get PRO
febrero '23
+194
en 0 canales
Get PRO
enero '23
+200
en 0 canales
Get PRO
diciembre '22
+269
en 0 canales
Get PRO
noviembre '22
+353
en 0 canales
Get PRO
octubre '22
+185
en 0 canales
Get PRO
septiembre '22
+256
en 0 canales
Get PRO
agosto '22
+247
en 0 canales
Get PRO
julio '22
+259
en 0 canales
Get PRO
junio '22
+422
en 0 canales
Get PRO
mayo '22
+57
en 0 canales
Get PRO
abril '22
+184
en 0 canales
Get PRO
marzo '22
+241
en 0 canales
Get PRO
febrero '22
+110
en 0 canales
Get PRO
enero '22
+198
en 0 canales
Get PRO
diciembre '21
+146
en 0 canales
Get PRO
noviembre '21
+285
en 0 canales
Get PRO
octubre '21
+182
en 0 canales
Get PRO
septiembre '21
+205
en 0 canales
Get PRO
agosto '21
+260
en 0 canales
Get PRO
julio '21
+213
en 0 canales
Get PRO
junio '21
+237
en 0 canales
Get PRO
mayo '21
+340
en 0 canales
Get PRO
abril '21
+1 819
en 0 canales
Fecha
Crecimiento de Suscriptores
Menciones
Canales
26 octubre+2
25 octubre0
24 octubre+1
23 octubre+1
22 octubre+2
21 octubre+5
20 octubre0
19 octubre+3
18 octubre+1
17 octubre0
16 octubre+1
15 octubre0
14 octubre+2
13 octubre+1
12 octubre+8
11 octubre+2
10 octubre+1
09 octubre+2
08 octubre+2
07 octubre+1
06 octubre0
05 octubre+1
04 octubre+1
03 octubre0
02 octubre+2
01 octubre+1
Publicaciones del Canal
Данные в UI есть, а page.route молчит Мок Playwright не срабатывает, хотя страница показывает данные. Один из возможных участников цепочки — Service Worker. В документации Playwright отдельно разобран случай с MSW: его Service Worker забирает запросы, и они становятся невидимыми для page.route() и browserContext.route(). Для теста, которому нужен перехват средствами Playwright, документация предлагает блокировать Service Workers. Настройка Playwright Test:
import { defineConfig } from '@playwright/test'

export default defineConfig({
  use: { serviceWorkers: 'block' },
})
Перехват задавайте до действия, которое отправляет запрос. Если при заблокированном SW обработчик начал получать запросы, это повод разобраться с маршрутом запроса в исходной среде. Само по себе это не диагноз «баг приложения». У такой проверки есть цена: среда изменилась. Прогон с serviceWorkers: 'block' не проверяет настоящий путь через SW, его кеш и offline-поведение. Для них нужен отдельный сценарий со включённым Service Worker. Почему Service Worker влияет на перехват #тест_драйв

2
📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше. В Proglib Academy действует акция: покупаешь один кур
📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше. В Proglib Academy действует акция: покупаешь один курс, а второй получаешь в подарок. Например, можно совместить два направления по работе с ИИ: 💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений. 📍 Разница в цене — почти 50 тысяч рублей. Можно освоить больше, не выходя за рамки запланированного бюджета. А если тебе интереснее Python, алгоритмы, backend или DevOps — выбирай другую пару курсов из каталога. Акция действует до 31 октября включительно ⏳ ⏮️ Пора прокачать свой стек
394
3
Warning тоже можно проверить тестом Функция обработала ошибку, но забыла записать предупреждение. Если такой лог нужен для диагностики, одного правильного результата функции мало. В pytest фикстура caplog даёт доступ к записям логов. В record_tuples каждая запись — это имя logger, числовой уровень и уже сформированное сообщение. import logging def reject_payment(): logging.getLogger('payments').warning('payment rejected: %s', 'timeout') def test_warning_is_contract(caplog): with caplog.at_level(logging.WARNING, logger='payments'): reject_payment() assert ('payments', logging.WARNING, 'payment rejected: timeout') in caplog.record_tuples Проверка наличия нужной тройки допускает другие записи. Сравнение всего вывода целиком сделало бы тест зависимым от посторонних логов. at_level меняет уровень временно, в пределах блока. Если захват пуст, проверьте настройку logging: dictConfig может удалить обработчик caplog с root logger. Для записей из другой стадии теста используйте get_records('setup') или соответствующее имя стадии. Это учебный logger. Показанный тест и проверка отсутствия записи без вызова функции прошли на pytest 9.0.3: 2 passed. Реальная платёжная система здесь не тестировалась. Работа с логами в pytest #тест_драйв
392
4
Горизонтальный скролл при увеличении: когда это дефект Страница при 100% выглядит аккуратно. Увеличиваете масштаб — и для чтения каждой строки приходится двигать её вправо и влево. Для обычного вертикального контента это повод проверить reflow. Критерий WCAG 2.2 1.4.10, уровень AA требует при ширине, эквивалентной 320 CSS px, сохранять информацию и функции без прокрутки в двух направлениях. Для частей, которым по смыслу нужна двумерная компоновка, есть исключения. Что проверить — Доведите CSS-ширину viewport до 320 px. Один из вариантов — исходный viewport 1280 CSS px и browser zoom 400%. Сверяйте фактическую ширину, а не разрешение экрана. — Прочитайте текст, заполните форму, доберитесь до кнопок. Ничего не должно теряться из-за нового расположения блоков. — Если на странице таблица или карта, определите границы исключения. Горизонтальная прокрутка такой части сама по себе ещё не доказывает нарушение. Ловушка с таблицей Исключение не распространяется на её заголовок, поиск и пагинацию. Обычный текст внутри ячеек тоже должен перестраиваться, если ему не нужна двумерная компоновка. Pinch zoom и увеличение только текста не равнозначны browser zoom. Этот чек-лист проверяет один критерий и не подтверждает соответствие всему WCAG. Официальное объяснение Reflow от W3C #теория_на_пальцах
440
5
Первый тест ждал 503, второй сразу получил 200 Учебный мок WireMock устроен так: первый запрос возвращает 503 и переводит сценарий из Started в Recovered. Следующие запросы в этом состоянии получают 200. Один тест прошёл эту цепочку. Следующий ждёт исходный 503, но получает 200. В такой ситуации проверьте, не осталось ли состояние от предыдущего теста. В JSON поле requiredScenarioState задаёт состояние, в котором подходит заглушка. newScenarioState переводит сценарий дальше. Само начало нового теста не означает возврата к Started. Перед повтором сценария — Посмотрите текущее состояние через GET /__admin/scenarios. — На изолированном тестовом экземпляре пустой POST /__admin/scenarios/reset сбрасывает все сценарии. — Для одного сценария, например retry, используйте пустой PUT /__admin/scenarios/retry/state. Общий reset может сбросить состояние соседнего параллельного теста. Поэтому для параллельных прогонов нужна изоляция экземпляров или сценариев, а не только сброс «перед каждым тестом». Цепочка 503 → 200 проверяет поведение клиента на заданных ответах мока. Восстановление настоящего внешнего API она не подтверждает. Состояния и сброс сценариев WireMock #теория_на_пальцах
512
6
😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция! До 31 октября в Proglib Academy можно выбрать два курса
😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция! До 31 октября в Proglib Academy можно выбрать два курса и заплатить только за один. Например, можно совместить: 💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений. Вместе курсы стоят 108 000 ₽, но по акции оба обойдутся в 59 000 ₽. Экономия — 49 000 ₽ 🔥 Интересуют Python и ИИ или алгоритмы и архитектура? Можно выбрать любые два курса из каталога. Акция действует до 31 октября включительно ⏳ ⏬ Собрать свой учебный билд
522
7
Checks красные, а CI зелёный В отчёте k6 есть неуспешные проверки ответов, но шаг CI завершился успешно. Прежде чем искать ошибку в пайплайне, посмотрите на thresholds. check фиксирует результат проверки. Сам по себе он не меняет код завершения k6. Критерий провала всего прогона задаёт threshold по метрике. Например, в скрипт с checks можно добавить такой учебный порог: export const options = { thresholds: { checks: ['rate>0.9'], }, } Он требует больше 90% успешных checks. Ровно 90% уже не проходит. Если хотя бы один threshold нарушен, k6 завершает прогон с ненулевым кодом. Шаг CI должен учитывать этот код. Число 90% здесь показывает синтаксис, а не рекомендуемую планку качества. Порог выбирают из требований продукта. То же относится к http_req_duration: ['p(95)<200']: это пример ограничения 95-го перцентиля времени запросов в миллисекундах. Порог не задаёт профиль нагрузки. Зелёный результат одного прогона не доказывает, что сервис выдержит любое число пользователей. Checks и thresholds в документации k6 #тест_драйв
544
8
Два NULL при UNIQUE. Это баг? В PostgreSQL 18 у необязательного поля external_id стоит обычный UNIQUE. Вы создаёте две записи без внешнего идентификатора, в обеих сохраняется NULL. База принимает их. Заводим дефект? Подсказка: уникальность и обязательность значения — разные требования. Сам по себе второй NULL не нарушает обычный UNIQUE в PostgreSQL 18. По умолчанию два NULL не считаются равными при этой проверке. Если по требованиям допустим только один NULL, проверьте вариант UNIQUE NULLS NOT DISTINCT. Если значение обязательно, нужен NOT NULL. Перед выводом сверяйте требования с реальным DDL таблицы. Проверьте три случая: два одинаковых непустых значения, два разных и два NULL. Отдельно посмотрите, что API сохраняет из пустой строки и отсутствующего поля запроса. Это разные входные данные, и приложение может их преобразовывать. Поведение PostgreSQL не стоит переносить на все СУБД. Ограничения в PostgreSQL 18 #теория_на_пальцах
567
9
Новый уровень ИТ-практик: Импульс Т1 снова в Москве 🚀 19 ноября столица примет ИТ-конференцию Импульс Т1. Мы создаём среду,
Новый уровень ИТ-практик: Импульс Т1 снова в Москве 🚀 19 ноября столица примет ИТ-конференцию Импульс Т1. Мы создаём среду, где специалисты получают не просто полезную информацию, а рабочие инструменты, применимые в проектах уже на следующий день. Импульс Т1 2026 — это: 🔹5 направлений деловой программы; 🔹130+ экспертных спикеров; 🔹70+ прикладных активностей; 🔹2 000+ участников сообщества. Уникальный формат — учимся через действие: каждый участник собирает индивидуальный трек, объединяя доклады и практические тренажеры. Среди них ⬇️ 🔘Код-ретрит – оттачиваем инженерные практики, парное программирование и TDD; 🔘Зона арх-каты – разбираем архитектурные кейсы, ищем уязвимости и моделируем решения на интерактивной карте; 🔘Ресурсные игры – проверяем командные коммуникации и скорость принятия решений в условиях жестких ограничений; 🔘Стенд доступности – тестируем интерфейсы и сценарии с точки зрения инклюзивности и доступной среды. Ваше участие — это возможность: ✔️ прокачать практические навыки на реальных задачах; ✔️ поделиться опытом и создать сильное профессиональное окружение вокруг себя; ✔️забрать передовые практики раньше конкурентов. 📆 Дата: 19 ноября 2026 года. 📍 Место: г. Москва, ул. Волочаевская, д. 48, стр. 1, Дворец культуры завода «Серп и молот» (LOFT#8). Покажите экспертизу на деле, осваивайте новейшие подходы и двигайте ИТ-индустрию вперёд! Регистрация по ссылке. О рекламодателе
513
10
Импульс Т1: возвращаемся с главным ИТ-событием осени ⚡️ 19 ноября в Москве состоится одна из самых значимых ИТ-конференций го
Импульс Т1: возвращаемся с главным ИТ-событием осени ⚡️ 19 ноября в Москве состоится одна из самых значимых ИТ-конференций года — Импульс Т1. Это масштабная площадка для обмена практическим опытом и формирования актуальных инженерных навыков. Мероприятие объединит более 2000 участников ИТ-отрасли: программистов, архитекторов, инженеров, лидеров технологического рынка — всех, кто создает цифровое будущее. Вас ждет: 🔹5 направлений деловой программы; 🔹130+ спикеров со всей страны; 🔹70+ активностей от практиков индустрии. Главная особенность года — «практические тренажеры», когда каждый участник формирует свой маршрут и сразу отрабатывает теорию на практике: 🔘Код-ретрит — развитие навыков парного программирования, разработка через тестирование и фокус на качестве кода в реальных условиях; 🔘Ресурсные игры — командная работа с ограничениями ресурсов и времени, практика решений конфликтов и ретроспективы; 🔘Зона арх-каты — стресс-тест архитектуры на прочность, поиск слабых мест и интерактивная карта решений; 🔘Стенд доступности — практическое погружение в цифровую доступность и опыт взаимодействия людей с ОВЗ с ИТ-сервисами. Зачем участвовать? ✔️ Получить реальные инструменты для ежедневной работы. ✔️ Показать экспертизу на деле и обменяться опытом с ведущими инженерами. ✔️ Быть в курсе ключевых трендов и опережать индустрию. ✔️ Стать частью сообщества технологических лидеров отрасли. 📆 Дата: 19 ноября 2026 года. 📍 Где встречаемся: г. Москва, ул. Волочаевская, д. 48, стр. 1, Дворец культуры завода «Серп и молот» (LOFT#8). Получите доступ к опыту лидеров отрасли и новым ИТ-решениям, регистрируйтесь по ссылке. О рекламодателе
121
11
Тестируем не запрос, а цепочку действий В учебной корзине добавление работает. При удалении товар исчезает, а общая цена оста
Тестируем не запрос, а цепочку действий В учебной корзине добавление работает. При удалении товар исчезает, а общая цена остаётся прежней. Одиночный happy path этого не показывает. Проверка модели — Храним простой эталон корзины. — Hypothesis выбирает цепочки add/remove. — После каждого шага сравниваем итог с суммой позиций модели. В проверенном примере Hypothesis 6.169 сократил сбой до add(pen) → remove(pen): товара нет, сумма всё ещё 20. Исправленный вариант прошёл прогоны с max_examples=50 и stateful_step_count=20. Найденную цепочку сохраняем как регрессионный пример. Успешный прогон не доказывает корректность всех сценариев. Документация Навигация: Вакансии Библиотека тестировщика #теория_на_пальцах
627
12
☔️ Планы на выходные снова испортила погода? У нас есть план получше. Выходные — хороший повод заняться тем, на что вечно не хватает времени. Например, освоить новый навык или углубиться в знакомую тему. 📍 В Proglib Academy покупаешь один курс, а второй получаешь в подарок. Платишь только за один! Вот несколько сочетаний: 💥 ⁠Разработка ИИ-агентов + ⁠Python 💥 ⁠Machine Learning + ⁠Математика для Data Science Можно выбрать и другие курсы — под свои интересы и цели. ⏳ Акция действует до 18 октября. ➡️ ⁠Выбрать курсы и оставить заявку
785
13
Пять минут без sleep: проверяем таймаут интерфейса Тест ждёт выхода по бездействию? В Playwright временем можно управлять чер
Пять минут без sleep: проверяем таймаут интерфейса Тест ждёт выхода по бездействию? В Playwright временем можно управлять через page.clock. Короткий маршрут 1. Вызываем install до запуска таймеров страницы. 2. Через fastForward переносим часы к границе таймаута. 3. Проверяем: действие пользователя сбрасывает отсчёт, а бездействие меняет состояние UI. В учебном тесте на Playwright 1.62.1 проверены обе ветки без пяти минут ожидания. setFixedTime фиксирует Date, а для управления таймерами нужен установленный clock. Это проверка браузерного поведения. Серверный срок жизни токена таким тестом не подтверждается. Документация Навигация: Вакансии Библиотека тестировщика #тест_драйв
762
14
Новый уровень ИТ-практик: Импульс Т1 снова в Москве 🚀 19 ноября столица примет ИТ-конференцию Импульс Т1. Мы создаём среду,
Новый уровень ИТ-практик: Импульс Т1 снова в Москве 🚀 19 ноября столица примет ИТ-конференцию Импульс Т1. Мы создаём среду, где специалисты получают не просто полезную информацию, а рабочие инструменты, применимые в проектах уже на следующий день. Импульс Т1 2026 — это: 🔹5 направлений деловой программы; 🔹130+ экспертных спикеров; 🔹70+ прикладных активностей; 🔹2 000+ участников сообщества. Уникальный формат — учимся через действие: каждый участник собирает индивидуальный трек, объединяя доклады и практические тренажеры. Среди них ⬇️ 🔘код-ретрит – оттачиваем инженерные практики, парное программирование и TDD; 🔘зона арх-каты – разбираем архитектурные кейсы, ищем уязвимости и моделируем решения на интерактивной карте; 🔘ресурсные игры – проверяем командные коммуникации и скорость принятия решений в условиях жестких ограничений; 🔘стенд доступности – тестируем интерфейсы и сценарии с точки зрения инклюзивности и доступной среды. Ваше участие — это возможность: ✔️ прокачать практические навыки на реальных задачах; ✔️ поделиться опытом и создать сильное профессиональное окружение вокруг себя; ✔️забрать передовые практики раньше конкурентов. 📆 Дата: 19 ноября 2026 года. 📍 Место: г. Москва, ул. Волочаевская, д. 48, стр. 1, Дворец культуры завода «Серп и молот» (LOFT#8). Покажите экспертизу на деле, осваивайте новейшие подходы и двигайте ИТ-индустрию вперёд! Регистрация по ссылке. О рекламодателе
448
15
👀 Как вы смотрите видео? Разбираете урок, слушаете интервью фоном или начинаете на телефоне, а продолжаете на большом экране? Хотим узнать, что делает просмотр удобным для вас. Вспомните последнее видео — ролик, урок, фильм или серию сериала — и расскажите о своём опыте. Если детали не запомнились, можно так и ответить. 🕰️ Опрос займёт около 3 минут. В результатах сможете сравнить свои привычки с ответами других участников. А разработчики и инженеры видеоплатформы расскажут, что происходит по ту сторону экрана, пока вы смотрите видео. 🔗 Поделиться опытом 🐸 Библиотека программиста
612
16
Showboat и Rodney помогают показать работу ИИ-агента Саймон Уиллисон собирает демонстрации кода с помощью двух своих инструме
Showboat и Rodney помогают показать работу ИИ-агента Саймон Уиллисон собирает демонстрации кода с помощью двух своих инструментов. Showboat выполняет команды и записывает их вывод в документ. Rodney управляет Chrome из командной строки и делает скриншоты интерфейса. uvx showboat --help Эту команду автор предлагает дать агенту: в справке есть всё необходимое, чтобы тот создал документ с демонстрацией новой функции. Уиллисон замечал и обход механизма: агент напрямую правит текст отчёта. Тогда записанный вывод может расходиться с реальным запуском. Содержимое демонстрации тоже требует проверки. #ии #инструменты
874
17
Вспомните последний раз, когда ИИ сделал для вас рабочий результат: код, тесты, документацию или требования. Как вы его проверяли?
776
18
🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы, а сами работают с данными, инструм
🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы, а сами работают с данными, инструментами и выполняют цепочки действий. На курсе «Разработка ИИ-агентов» разбираем всё, что нужно для этого уровня: ⬇️ RAG и работа с данными ⬇️ MCP и инструменты ⬇️ структурированный вывод ⬇️ контроль качества и стоимости ⬇️ мультиагентные системы ⬇️ AgentOps Курс полностью в записи — проходите материалы в своём темпе, без привязки к расписанию. ⏰ 4 октября цена вырастет на 10 000 ₽. Если давно хотели разобраться в AI-агентах — сейчас ещё можно зайти по текущей цене. 🔗 ⁠Посмотреть курс
1 076
19
🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать его в разработку так, чтобы он дейст
🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать его в разработку так, чтобы он действительно экономил время. На курсе «ИИ для разработчиков» собираете AI-workflow на своём проекте: от задачи и планирования до тестов, ревью и PR 🤩 Разберёте AI-агентов, MCP, контекст проекта, безопасность и контроль расходов на модели. 📍 Только сегодня, 30 сентября — скидка 10 000 ₽ Промокод: LastcallAI 🤩 ⁠Присоединиться к курсу
1 033
20
🎁 Вот как может выглядеть подарок человеку, у которого уже всё есть ☝️🎬 Не очередная кружка, сертификат или носки 😄 А собс
🎁 Вот как может выглядеть подарок человеку, у которого уже всё есть ☝️🎬 Не очередная кружка, сертификат или носки 😄 А собственный музыкальный клип, где главный герой — он сам. Его любимый трек. Его образ. Его история ❤️ С ClipChat не нужны съёмки и монтаж: загружаете трек, AI придумывает концепцию и раскадровку, создаёт сцены, сохраняет образ героя и собирает всё в готовый клип. А реакция потом одна: «ПОДОЖДИ… ЭТО КАК ВООБЩЕ СДЕЛАЛИ?!» 😳🔥 🎬 Создать свой клип в ClipChat
439