Как стать автором
Обновить
83.21

Тестирование веб-сервисов *

Семь раз оттесть, один раз деплой

Сначала показывать
Порог рейтинга
Уровень сложности

Не вырубишь топором… — ВКонтакте хранит удаленные публикации

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров15K

Некоторые изменения в законодательстве и инцидент с Алексеем Вишней заставили многих пользователей соц.сетей тщательно почистить свои странички от старых публикаций. Но удаляются ли на самом деле крамольные высказывания с серверов или хранятся вечно и при запросе заинтересованных людей могут быть приобщены к делу?

Давайте проверим...
Всего голосов 25: ↑24 и ↓1+31
Комментарии51

Генерация документации из моделей с помощью Pydantic

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.4K

Привет, меня зовут Роман Брылунов, я QA Automation в команде сервиса транспорта 2ГИС. Мы автоматизируем сервисы транспортных сценариев, таких как построение маршрутов для разных видов транспорта, построение пешеходных маршрутов, решение задачи коммивояжера. Основная часть наших тестов — функциональные тесты логики приложения.

С сервисами общаемся по HTTP, но есть и несколько внутренних сервисов со взаимодействием по gRPC. Все ответы, полученные от сервисов, мы предварительно валидируем перед обработкой в тесте. Для валидации используем библиотеку Pydantic. Это позволяет нам описывать формат взаимодействия с помощью моделей и обрабатывать ответы в виде Python-объектов вместо словаря после стандартного парсинга JSON. Тесты встроены в CI, успешное прохождение тестов является блокирующим условием для влития кода. Таким образом, чтобы внести изменения в API, необходимо актуализировать модели в тестах. В противном случае ответ от сервиса не пройдёт валидацию при прогоне тестов. 

Мы стараемся всесторонне подходить к контролю качества продукта, в том числе хотим, чтобы у продукта была красивая и актуальная документация. У наших сервисов была документация, но она обновлялась вручную. А у нас есть модели запросов и ответов, которые точно соответствуют текущему формату API. Мы подумали, что будет здорово использовать эти модели для формирования документации. Попробовали и успешно внедрили. Расскажу о том, как можно это сделать.

Читать далее
Всего голосов 9: ↑9 и ↓0+10
Комментарии2

Нагружать может каждый

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров2.7K

Как понять, что нам нужно нагрузочное тестирование? Как быть, если при этом у нас мало опыта и ресурсов? Сегодня обсудим, насколько трудоёмок этот процесс, как не получить гору проблем и не сжечь больше ресурсов, чем хочется.

Меня зовут Ксения Бирюкова, я владелец продукта Платформы Сфера, разработанной холдингом Т1. В одном из моих проектов мы с командой пытались проводить нагрузочное тестирование. Тогда это казалось очень сложным: пробовали тестировать каждый модуль отдельно, связь с legacy-монолитом не помогала, возникали проблемы с написанием генератора псевдо-уникальных персональных данных и многое другое. И хотя результат был достигнут, ресурсов мы потратили гораздо больше, чем планировали. В итоге собрали список ошибок и задумались, как сделать нагрузочное тестирование менее болезненным. Разберём на своих и чужих примерах.

Читать далее
Всего голосов 6: ↑6 и ↓0+7
Комментарии0

Шпаргалка по XPath и CSS-селекторам

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров7.8K

Для написания автотестов используются XPath и CSS-селекторы. Они помогают найти элемент на странице, чтобы потом с ним как-то взаимодействовать (кликнуть, ввести текст, или что-то другое).

Я видела много статей о том, что это вообще такое, но мне очень не хватало шпаргалки по разным селекторам, причем в разрезе «Вот он в CSS и он же в XPath» для сравнения. 

А мне такое для студентов надо. Поэтому решила сделать сама. Вдохновлялась страничкой «Xpath cheatsheet», но сделала на свой вкус — под автоматизацию, а не XPath вообще. И с комментариями, с ними удобнее. 

Пишите, если где-то накосячила. Хотя я все селекторы проверяла на тестовых страницах, но мало ли… И надеюсь, вам такая шпаргалка тоже пригодится! =)

Читать далее
Всего голосов 12: ↑12 и ↓0+16
Комментарии12

Истории

Почему JOOQ — идеальный инструмент для работы с БД при интеграционном тестировании API

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.8K

Привет! Меня зовут Евгений, я SDET-специалист в SimbirSoft. Хочу поделиться примером того, как я автоматизировал тестирование API, заменив встроенные JDBC-средства на JOOQ. И расскажу, почему считаю это лучшим решением.

Все началось с того, что передо мной поставили задачу автоматизировать тестирование API с проверкой данных в БД. Так как проект только начинался, а я один отвечал за эту часть работы, то надо было сделать всё с нуля. Мне хотелось сделать все идеально (удобно, понятно, масштабируемо, с удобной поддержкой кода). Получилось все, кроме одного — масштабирование сверки данных из БД. Об этом и пойдет речь. А в конце вы найдете ссылку на исходный код.

Читать далее ?
Всего голосов 5: ↑4 и ↓1+3
Комментарии5

Умные настройки Chrome для стабильной автоматизации тестов

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.2K

Привет!

Как часто у вас возникают проблемы с браузером при запуске автоматических тестов?
Если тесты выполняются пару раз за спринт, то ошибки могут показаться незначительными. Но в моем случае, где скрипты работают постоянно в качестве мониторинга, ошибки браузера становятся настоящей проблемой. В этой статье я собрал некоторые опции для запуска Chrome, которые позволили сократить количество ошибок и улучшить качество мониторинга.

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии2

Тестируем внешнее django-приложение при помощи pytest

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров1.9K

Я не буду спрашивать, как вы попали в такую ситуацию. Я в неё как-то попала, значит, и вы тоже могли. Я просто расскажу, как из неё выбраться.

Итак, у вас есть джанго-приложение, апишка к нему, и вы хотите написать автотесты на пайтест, находясь вне этого джанго-приложения. Погнали.

Читать далее
Всего голосов 3: ↑2 и ↓1+3
Комментарии0

Автотесты E2E для самых маленьких

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров4.3K

Автотесты E2E для самых маленьких

История о том, как можно делать автотесты без автотестеров (ну почти)

Дано:

1. Проект с небольшим бюджетом

2. Максимальное возможное количество тестировщиков на проекте = 2

3. Тим лид или автоматизатор, у которого есть еще несколько других проектов. Т.е. постоянно писать и обслуживать тесты не может

Найти:

1. Регрессионное тестирование за минимальное время

2. Потратить на это минимальное количество денег/времени/сил

Читать далее
Всего голосов 12: ↑12 и ↓0+14
Комментарии5

Написание тестов для асинхронного кода с помощью XCTest

Время на прочтение6 мин
Количество просмотров588


Если вы когда-нибудь думали о проведении юнит-тестирования в Xcode, вы наверняка обращали внимание на XCTest. Это довольно простой фреймворк на Objective-C и Swift. Однако тестирование асинхронного кода всегда было немного сложным из-за таких конструкций, как делегаты и коллбэки (функции обратного вызова).

В этой статье мы начнём с рассмотрения классического способа тестирования асинхронного кода, чтобы убедиться, что мы все на одной волне относительно плюсов и минусов классического асинхронного теста. После этого мы рассмотрим, как async / await кардинально меняет способ написания юнит-тестов для асинхронного кода, и как он может повлиять на то, что тесты оказываются успешными и неудачными.
Читать далее
Всего голосов 11: ↑10 и ↓1+11
Комментарии0

Как подготовить данные для запроса в Postman через pre-request

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров4.5K

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

В Postman тоже есть возможность подготовить себе данные для запроса. Причем это можно использовать не только для автоматизации, но и для ручного прогона. Удобно же, когда можно запустить конкретный запрос на конкретный метод, а он отработает успешно хоть на пустой базе, хоть на заполненной.

Подготовка данных делается через функцию pm.sendRequest() в pre-request скриптах, и в этой статье я покажу, как её использовать. Показывать буду в стиле «бери и повторяй» с примерами на бесплатной системе Users.

Читать далее
Всего голосов 6: ↑5 и ↓1+7
Комментарии0

Python QA: введение в Unit Tests

Время на прочтение5 мин
Количество просмотров1.2K

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

Одним из наиболее распространенных методов тестирования в Python являются модульные тесты, или Unit Tests. Эти тесты позволяют разработчикам проверить отдельные компоненты и функции своего кода на соответствие ожидаемому поведению. В результате Unit Tests становятся надежным инструментом для обеспечения качества программного обеспечения и минимизации возможных ошибок.

Данная статья призвана погрузить вас в мир Unit Tests в Python. Мы рассмотрим основные принципы написания тестов, научимся создавать простые и эффективные тесты для вашего кода, а также рассмотрим некоторые лучшие практики и советы по их использованию. После ознакомления с этой статьей вы сможете использовать Unit Tests для обеспечения качества вашего Python‑кода и повысить уверенность в его надежности.

Читать далее
Всего голосов 8: ↑6 и ↓2+7
Комментарии1

7 ножей в спину web-отладки

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров1.5K

Вообще наша компания занимается разработкой смартфонов и софта к ним для слепых и слабовидящих. Но порой возникают ситуации, когда приходится отлаживать не только свои приложения, но и разбираться с чужими. Обычно это происходит в случае, когда приложение глючит или не работает вовсе именно на наших телефонах. Поскольку наша аппаратная платформа не похожа на традиционные Android-смартфоны да и сам код фреймворка доработан рашпилем, мы готовы к подобным сюрпризам. Так случилось и в этот раз. Клиент жаловался, что у него есть проблемы с login-ом в одну из online-библиотек с аудио-книгами через Android-приложение. Поддержка попросила меня разобраться, есть ли в этом наша вина, или же нет.

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

Читать далее
Всего голосов 5: ↑4 и ↓1+5
Комментарии0

Можно ли устроиться на работу тестировщиком после курсов? Что они дают?

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров15K

Очень насущный вопрос для многих — можно ли найти работу в тестировании сразу после курсов? Да! (сказал автор курсов, хе-хе-хе)

Я вам больше скажу — можно и БЕЗ курсов устроиться 👀. Более того, грамотные самоучки очень ценятся! Но для такого эффекта надо пахать =))

Об этом и поговорим в статье.

Читать далее
Всего голосов 18: ↑11 и ↓7+9
Комментарии28

Ближайшие события

AdIndex City Conference 2024
Дата26 июня
Время09:30
Место
Москва
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Тесты на дженериках: пишем кода в 3 раза меньше. Параметризация AssertJ и сравнение Json через объекты

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров3.7K

Продолжаю серию публикаций про наши Java-онлайн курсы. Предыдущие посты

Контроллеры на дженериках: пишем кода в 3 раза меньше
Миграция Java Spring Boot на Kotlin
Работа с документами в Java

Сразу предупрежу: точно так же, как в контроллерах на дженериках сами контроллеры не параметризируются, здесь мы НЕ БУДЕМ параметризировать сами классы тестов. Поэтому не спешите писать комментарии, не прочитав статьи, что это «Bad practice». По поводу усложнения кода заранее отвечу так же, как и в комментариях к статье про контроллеры — код тестов и их написание становятся проще, за счет усложнения инструментов (собственно на этом и строится разработка фреймворков и ООП). Можно считать приведенные здесь подходы слоем абстракции, праметризирующий подход популярной библиотеки AssertJ к сравнению объектов и расширяющий его на сравнение json объектов.

Кому интересно:

Добро пожаловать
Всего голосов 8: ↑7 и ↓1+8
Комментарии3

pgAdmin4 CVE-2024-3116

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.4K

22 апреля была зарегистрирована уязвимость CVE-2024–3116, получившая 7.4 баллов по CVSS. Эта уязвимость приводит к удаленному выполнению кода в серверной версии pgAdmin4 ≤ 8.4 на системах Windows.

pgAdmin4 — это графический инструмент, предназначенный для администрирования баз данных PostgreSQL. Он поддерживает работу в двух режимах — desktop и server.

Для эксплуатации этой уязвимости необходимо обладать валидными учетными данными.

Сегодня в данной статье мы подготовим стенд и разберем детали этой уязвимости.

Читать далее
Всего голосов 4: ↑1 и ↓30
Комментарии2

Книга: «Сам себе тестировщик. Пошаговое руководство по тестированию ПО»

Время на прочтение5 мин
Количество просмотров8.5K
imageПривет, Хаброжители!

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

Вы познакомитесь со всеми этапами тестирования, чтобы разобраться, как планируются, выполняются и контролируются задачи тестирования на практике. Эта книга не только поможет новичку стать тестировщиком, но и послужит хорошим подспорьем в повседневной работе.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+19
Комментарии0

Интеллект-карта с вопросами для подготовки к собеседованию Junior QA

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров7.1K

Идея зародилась еще на этапе моего обучения в Яндекс.Практикуме более двух лет назад. Тогда я только познакомился с инструментом под названием интеллект‑карта и обнаружил в нем действительно полезный способ изучения и закрепления информации. У меня преобладает визуальное мышление, поэтому данный формат идеально подходит.

Зачем нужна данная карта для QA?

Качество покрытия материала: матрица трассировки вам о чем‑нибудь говорит? Если да, то данный формат разбивает и систематизирует необходимые знания на модули, что позволяет убедиться в качестве и полноте покрытия ваших знаний.

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

Удобство актуализации интеллект‑карты: Исходя из моего опыта работы с таблицами Excel, можно сделать вывод: чем больше таблица, тем выше вероятность дублирования информации. В случае с картой же такое сложно осуществить, так как вы можете реконструировать ветви в модулях. Перетаскивание, редактирование, а также ссылки на другие ветви делают использование карты удобным и понятным.

Лучшее запоминание материала: Мы запоминаем благодаря ассоциативной памяти и нейронным связям. Если вы читали книгу Тони Бьюзена «Интеллект‑карты», то, вероятно, согласитесь со мной.

Отработка навыка: Навык использования mind‑map необходим в работе. Поэтому подготовка к собеседованию или проверке знаний с использованием карты позволит вам заранее ознакомиться с ней, что благоприятно скажется на вашем умении и полноте вашего резюме.

Читать далее
Всего голосов 11: ↑9 и ↓2+9
Комментарии7

Мокирование как хорошая практика тестирования фронтенда

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров4.3K

Привет, я Фируз Шоев, тестировщик в Отелло — сервисе бронирования отелей от 2ГИС. Мы в стадии активного роста и постоянно усиливаем команду. Несколько месяцев назад я подключился к найму тестировщиков и с тех пор провожу собеседования практически каждую неделю. За это время я стал замечать, что многие кандидаты не уделяют должного внимания тестированию фронтенда.

Почти в каждом втором собеседовании я слышу следующее:

Во фронтенде можно максимум вёрстку протестировать отдельно от бэкенда.

Фронтенд тестируем через end-to-end тесты, но они сложные и нестабильные.

А как вообще тестировать фронтенд изолированно?

Про моки слышали, но не использовали их и не думаем, что на них стоит полагаться.

В этой статье я хочу рассказать о важности тестирования фронтенда и пользе моков. Мокирование вносит весомый вклад в обеспечение качества приложений 2ГИС, поэтому надеюсь, что этот подход принесёт пользу и другим.

Читать далее
Всего голосов 15: ↑15 и ↓0+18
Комментарии0

Новый релиз большого интерактивного «столетнего» учебника по тестированию

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров3K

Гуд ньюз эвриван! Вышло большое обновление учебника «100-Year QA‑Textbook — русскоязычная версия» — одного из самых полных источников по тестированию.

С момента первого релиза (100'000 хабр‑просмотров!) прошло полгода.
За это время столетний учебник стал бесплатным пособием для 10'000+ самообучающихся студентов.

Читать далее
Всего голосов 16: ↑13 и ↓3+17
Комментарии3

Нагрузочное тестирование для интернет-магазина

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.7K

Проведение нагрузочного тестирования стало необходимостью в связи с резким ростом онлайн-аудитории интернет-магазина в периоды маркетинговых рассылок. Если в обычное время количество пользователей составляло около 200 человек одновременно, то во время маркетинговых акций это число выросло до 1500 человек. Этот рост потребовал серьезной подготовки системы к возросшей нагрузке, чтобы обеспечить стабильную работу ресурсов и избежать сбоев, а также недоступности для клиентов. Нагрузочное тестирование стало ключевым шагом в обеспечении бесперебойной работы интернет-магазина в периоды повышенной активности пользователей.

Читать далее
Всего голосов 8: ↑2 и ↓60
Комментарии4

Вклад авторов