16 картинок для запоминания тестирование для первоклассников

Поскольку api-интерфейсы с каждым годом становятся все более важными компонентами для создания программного обеспечения, разработчикам и программистам сегодня жизненно важно

16 картинок для запоминания тестирование для первоклассников

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

RapidAPI Testing

Это крупнейшая в мире торговая площадка для взаимодействия разработчиков API, насчитывающая на сегодняшний день более 1 миллиона пользователей. RapidAPI Testing — это продукт RapidAPI, который дает возможность проводить функциональное тестирование API-продуктов. Здесь у разработчиков есть возможность создания и управления комплексными тестами API от начального этапа разработки до финального развертывания. Тесты можно запускать для любого типа API (включая REST, SOAP и GraphQL).16 картинок для запоминания тестирование для первоклассников

RapidAPI Testing предлагает своим клиентам:

  • Комплексное тестирование
  • Детальный мониторинг
  • Полную интеграцию

Paw – идеальное решение для iOS разработчиков

Paw — это полнофункциональный и надежный HTTP-клиент для платформы Mac, предназначенный для тестирования и описания API. Приложение работает идеально с использованием VPN и помогает создавать HTTP-запросы, проверять ответ сервера и даже генерировать код. Доступна бесплатная пробная версия, без какой-либо первичной оплаты.

SoapUI

Это автономный инструмент функционального анализа, предназначенный для тестирования API. Данное ПО позволяет пользователям быстро и легко тестировать REST и SOAP API, а также различные веб-службы. SoapUI позволяет пользователям создавать сложные сценарии и поддерживает асинхронное тестирование. Кроме того, данный сервис может создавать собственные коды с помощью инструмента Groovy.

Postman

Первоначально запущенный как плагин для браузера Chrome, Postman превратился в инструмент тестирования API высшего уровня.
16 картинок для запоминания тестирование для первоклассников
Он идеально подходит для тех, кто хочет анализировать API без кодинга в интегрированной среде разработки, используя тот же язык, что и разработчики.

REST-assured

Если вы ищете платформу для тестирования служб REST на Java, Rest-assured – это Ваш идеальный выбор. Данная платформа имеет открытый исходный код, при этом она использует специфичный для домена язык Java, которая упрощает тестирование службы REST. Помимо всего прочего, Rest-assured легко интегрируется со средой автоматизации Serenity.

Katalon Studio

Сочетая пользовательский и корпоративный уровни для разных сред, Katalon Studio предоставляет разработчикам единое место для создания и выполнения API и веб-сервисов, функционального UI и мобильного тестирования.

JMeter

Несмотря на то, что инструмент JMeter был специально создан для нагрузочного тестирования, он идеально подходи и для функционального тестирования API. Данное решение поставляется с множеством функций тестирования API и большим числом дополнительных функций, которые делают процесс тестирования более эффективным. А возможность интеграции с Jenkins позволяет включать тесты API в конвейеры CI.
Среди минусов JMeter пользователи отмечают большие нагрузки на «железо» и чрезмерно объёмные визуализированные отчеты об испытаниях, которые потребляют много памяти компьютера.

Karate DSL

Еще одна платформа с открытым исходным кодом для тестирования API — это Karate DSL. 16 картинок для запоминания тестирование для первоклассниковОн основан на библиотеке «Cucumber» и помогает создавать сценарии для тестов BDD на основе API простым способом без необходимости писать пошаговые определения.

Apigee

Это еще одна передовая платформа для тестирования API. Инструмент кросс-облачного тестирования API позволяет измерять и тестировать производительность, поддерживает и создает API с помощью других первоклассных редакторов, таких как Swagger. Apigee помогает выявлять проблемы с производительностью, отслеживая частоту ошибок API, трафик и время отклика.

ACCELQ

Это единственная облачная платформа для непрерывного тестирования, которая плавно автоматизирует API и веб-тестирование без написания единой строчки кода. ИТ-команды любого размера используют ACCELQ для ускорения тестирования за счет автоматизации критических аспектов жизненного цикла, таких как проектирование тестов, планирование, генерация тестов и их выполнение.16 картинок для запоминания тестирование для первоклассников Клиенты ACCELQ обычно экономят более 70% затрат, связанных с изменениями и обслуживанием при тестировании, устраняя одну из основных проблем в отрасли API-тестирования. ACCELQ делает это возможным благодаря ядру на базе искусственного интеллекта, который помимо других уникальных возможностей предлагает автоматизацию самовосстановления.

API Blueprint

Это инструмент с открытым исходным кодом для разработчиков и тестировщиков API. Инструмент использует очень простой синтаксис, а также упрощает тестирование для разработчиков любого уровня.

Poster (расширение браузера Firefox)

Это расширение позволяет пользователю устанавливать свои HTTP-запросы, взаимодействуя с веб-службами, и генерирует результаты, которые могут быть проверены пользователем.

API Metrics

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

Если Вы это читаете, значит Вам было интересно, поэтому пожалуйста подпишитесь на наш канал на Яндекс.Дзен, ну и за одно поставьте лайк (палец вверх) за труды. Спасибо!

Если Вы это читаете, значит Вам было интересно, поэтому пожалуйста подпишитесь на наш канал на Яндекс.Дзен, ну и за одно поставьте лайк (палец вверх) за труды. Спасибо!

10 лучших инструментальных средств тестирования интерфейсов прикладного программирования 2018 года.

Интерес к тестированию неудержимо растёт на протяжении нескольких последних лет, согласно исследованиям Google Trends. Опрос, проведенный компанией Smartbear в 2017 году среди 5000 профессионалов в области разработки программного обеспечения, показал, что более 50% опрошенных респондентов используют автоматические средства тестирования API, и ожидается рост их количества на 30% ( с 59% до 77%) в течении следующих двух лет, причем 80% участников опроса указали, что отвечают за тестирование API.

Наличие правильных процессов, инструментов и технических решений для автоматических тестирований API становится важным, как никогда ранее. И с помощью тенденции shift-left, тестирование API становится больше, чем просто решение по контролю за качеством, теперь это критически важный компонент успешной непрерывной интеграции и развёртывания программного обеспечения.

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

5 лучших средств тестирования API в 2018 году

1. SoapUI

SoapUI представляет собой консольный инструмент, предназначенный для тестирования API и позволяющий пользователям легко тестировать API REST и SOAP, а также Web-сервисы.

При помощи SoapUI, пользователи могут получить полный исходный документ и встроить предпочтительный набор функций, в дополнение к перечисленным ниже:

  • Создать тест легко и быстро при помощи технологий перетаскивания объектов «мышкой» (Drag and drop) и метода «указания и щелчка» (Point-and-click)
  • Быстро создать пользовательский код при помощи Groovy
  • Мощное тестирование на основе данных: Данные загружаются из файлов, баз данных и Excel, поэтому они могут создать симуляцию взаимодействия пользователя и API.
  • Создание комплексных сценариев и поддержка асинхронного тестирования
  • Повторное использование скриптов: загрузка тестов и сканирование безопасности могут повторно использоваться в случае функционального тестирования всего в несколько шагов

Веб-сайт: https://www.soapui.org/
Цена: Бесплатно — 659$/год

2. Postman

Будучи изначально плагином браузера Chrome, теперь Postman расширяет свои технические решения вместе с оригинальными версиями как для Mac, так и для Windows.

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

  • Легкий в использовании клиент REST
  • Богатый интерфейс делает этот инструмент простым и удобным в использовании
  • Может использоваться как при автоматическом, так и при исследовательском тестировании
  • Работает в приложениях для Mac, Windows, Linux и Chrome
  • Обладает пакетом средств интеграции, таких как поддержка форматов Swagger и RAML
  • Обладает функциями Run, Test, Document и Monitoring
  • Не требует изучения нового языка программирования
  • Позволяет пользователям легко делиться опытом и знаниями с другими членами команды, поскольку позволяет упаковывать все запросы и ожидаемые ответы и отправлять их коллегам.

Веб-сайт: https://www.getpostman.com/
Цена: Бесплатно — 21$/ с пользователя в месяц

3. Katalon Studio

Katalon Studio является бесплатным инструментом автоматического тестирования, предоставляющим общую среду для создания и выполнения UI функционала, служб API/Web и тестирования мобильных платформ.

Способность комбинировать уровни UI и Business (службы API/Web) для различных операционных сред (Windows, Mac OS, Linux) расценивается как значительное преимущество Katalon Studio перед аналогичными продуктами.

Katalon Studio поддерживает запросы SOAP и RESTful с различными типами команд (GET, POST, PUT, DELETE) с параметризованными возможностями.
Основные свойства:

  • Поддержка теста комбинации между верификациями UI и API.
  • Поддержка тестирования запросов как SOAP, так и RESTful.
  • Сотни встроенных ключей для создания тестовых заданий.
  • Поддержка одной из самых мощных библиотеки проверки утверждений AssertJ для создания динамических утверждений в BDD-стиле.
  • Поддержка подхода, управляемого данными.
  • Может использоваться как при автоматическом, так и при исследовательском тестировании.
  • Отлично подходит как для профессионалов, так и для новичков

Веб-сайт: https://www.katalon.com
Цена: Бесплатный

4. Tricentis Tosca

Tricentis Tosca представляет собой платформу непрерывного тестирования для Agile и DevOps. Среди преимуществ Tricentis Tosca следует отметить:

  • Поддержку многих массивов протоколов: HTTP(s) JMS, AMQP, Rabbit MQ, TIBCO EMS, SOAP, REST, IBM MQ, NET TCP
  • Интеграцию в циклы Agile и DevOps
  • Максимизацию многократного использования и способность к сопровождению средств автоматизации тестирования на основе использования моделей
  • Тесты API могут использоваться как на мобильных, так на браузерных и пакетных приложениях и т.д.
  • Достигнута автоматизация, поддерживаемая новыми технологиями
  • Снижено время, необходимое на проведение регрессивного тестирования

Веб-сайт: https://www.tricentis.com/
Цена: Уточняйте у продавца

5. Apigee

Apigee является кросс-«облачным» средством тестирования API, позволяющим пользователям измерять и тестировать производительность API, обеспечивать техническую поддержку и разработку API при помощи других редакторов, таких как Swagger.

  • Данный инструмент является многошаговым и находится под управлением Javascript
  • Он позволяет разрабатывать, отслеживать, выполнять разворачивание и масштабирование API
  • Идентифицирует проблемы путем отслеживания трафика API, уровня ошибок и времени ответа
  • Легко создает прокси API из Open API Specification и выполняет их развертку в «облаке»
  • Модели разворачивания в «облаке», локального разворачивания и гибридного разворачивания работают на основе одного кода
  • PCI, HIPAA, SOC2, и PII для приложений и API
  • Apigee разработан специально для цифрового бизнеса и задач с интенсивной обработкой данных на под управлением мобильных платформ API и приложений, которые управляют ним.

Веб-сайт: https://apigee.com/api-management/
Цена: Бесплатный пробный период — 2 500$/месяц

6. JMeter

JMeter (открытое программное обеспечение) широко используется для функционального тестирования API, однако изначально он создавался для нагрузочного тестирования.

  • Поддерживает воспроизведение результатов тестирования
  • Автоматически работает с файлами CSV, позволяя команде быстро создавать уникальные значения параметров для тестирования API.
  • Благодаря интеграции между JMeter и Jenkins, пользователи могут включать тесты API в конвейерные обработки CI
  • Данный инструмент может использоваться как для статического, так и динамического тестирования производительности ресурсов

Веб-сайт: https://jmeter.apache.org/
Цена: Открытое программное обеспечение

7. Rest-Assured

Rest-Assured является общедоступным предметно-ориентированным Java-языком, который делает службу тестирования REST более простой и удобной.

  • Обладает целым набором встроенных функционалов, наличие которых означает, что пользователю не придется кодировать заново.
  • Надежно интегрирован со автоматизированной платформой Serenity, что позволяет пользователям комбинировать тесты UI и REST в рамках одной платформы и получать изумительные результаты.
  • Поддерживает синтаксические конструкции BDD Given/When/Then
  • Пользователям необязательно быть экспертами в области HTTP

Веб-сайт: http://rest-assured.io/
Цена: Открытое программное обеспечение

8. Assertible

Assertible представляет собой инструмент тестирования API, который в первую очередь акцентируется на автоматизации процессов и надежности.

  • Обеспечивает автоматическое тестирование API на каждом этапе процесса интеграции и поставки программного обеспечения.
  • Осуществляет поддержку текущих тестов API после внедрения приложений и интегрирует их с привычными инструментами, такими как GitHub, Slack, и Zapier.
  • Поддерживает проверку подлинности ответов HTTP при помощи готовых операторов подтверждения отсутствия ошибок, таких как проверка достоверности JSON Schema и проверка целостности данных JSON Path

Веб-сайт: https://assertible.com/
Цена: Бесплатный — 500$/месяц

9. Karate DSL

Karate DSL это новый инструмент для тестирования API, который помогает разрабатывать сценарии для BDD тестов на основе API простым способом, без написания характеристик этапов. Эти характеристики создаются самим KarateDSL, а поэтому пользователи могут запустить тестирование API легко и быстро.

  • Встроен на вершине Cucumber-JVM
  • Способен запускать тестирование и генерировать отчеты как любой другой стандартный проект Java
  • Тест может быть разработан без обязательного владения знаниями языка Java
  • Тесты могут легко создаваться даже непрограммистами
  • Поддерживает конфигурацию продвижения /переключения, а также многопотоковое параллельное выполнение кода

Веб-сайт: https://github.com/intuit/karate
Цена: Открытое программное обеспечение

10. Ни одно решение не может совместить все инструменты
Это больно осознавать, однако, это правда!

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

Некоторые могут посчитать, что свойств коммерческих продуктов (Postman, Tricentis Tosca,…) будет достаточно, однако цена вопроса будет служить серьезным сдерживающим фактором. Бесплатные и общедоступные решения (Rest-Assured, Karate DSL,…) являются довольно-таки приемлемыми, но требуют квалифицированных умений и много усилий для имплементации правильной платформы. Инструменты, которые удерживают баланс между ценой и другими факторами (Katalon Studio, Postman), могут иметь недостатки для некоторых типов проектов, и эти недостатки требуют пристальной оценки.

Тестирование API создало свой собственный тренд в области автоматического тестирования, и чем дальше, тем больше инструментов будет создаваться для удовлетворения растущих запросов от команд разработки программного обеспечения. Найти идеальный инструмент по-прежнему сложно, но у нас есть и хорошие новости — теперь Ваш выбор стал намного шире, чем был раньше. Тщательно обдумайте Ваши требования, взвесьте все «за» и «против» каждого решения — постарайтесь быть не слишком придирчивым на ранних стадиях и попробуйте 5 лучших кандидатов из нашего списка. Когда Вы создадите список всех «за» и «против» для этих решений, Вы получите более адекватную картину критических факторов Вашего проекта и сможете отредактировать список инструментов. Данный подход предоставит Вам хорошую возможность идентифицировать подходящий инструмент для текущего этапа и информацию о следующем инструменте, когда Ваши проекты станут более комплексными, сложными и опытными.

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

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

Оценка рисков

Прежде, чем начинать разбор инструментов для тестирования, необходимо оценить текущие риски в приложении. Отличным бесплатным ресурсом для этих целей является “Open Web Application Security Project (OWASP)”. OWASP — широко известная некоммерческая организация, которая предоставляет целый ряд различных артефактов о web-безопасности. Один из этих артефактов называется OWASP Top 10 Web Application Security Risks, который хоть и не относится к API-интерфейсам, но может помочь в поиске уязвимостей и источников атак. Не стоит забывать, что большинство атак на приложения направлены на API, OWASP в свою очередь имеет удобную методологию по оценке рисков.

Инструменты для тестирования API

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

Fiddler

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

Fiddler может использоваться для различных потребностей:

  • устранения неполадок;
  • тестирования безопасности;
  • оценки эффективности;
  • отладки web-трафика.

Fiddler уже достаточно давно стал довольно популярным инструментом среди многих разработчиков. Большинство разработчиков используют его для отладки, чтобы посмотреть на HTTP – запросы, которые их ПК посылает на сервис или сайт. Многие не знают, что Fiddler изначально задумывался для использования в качестве HTTP-прокси.

При использовании Fiddler  в качестве прокси можно мониторить не только трафик между ПК и приложением, но и между приложением и его бэкэндом.

Wireshark

Wireshark — инструментом анализа протоколов. Wireshark позволяет не только просматривать ваши HTTP- запросы, но он может реально проанализировать эту информацию. Основным направлением деятельности Wireshark является отладка сетевых проблем, и это хорошо, потому что сеть является одной из наиболее важных областей разработки программного обеспечения. После диагностики сетевых проблем вы сможете контролировать весь сетевой трафик приложения и исследовать сетевые пакеты, которые могут содержать незашифрованные конфиденциальные данные.

Metasploit Framework

В то время как Fiddler и Wireshark были разработаны в основном, чтобы помочь разработчикам и сетевым инженерам при устранении сетевых проблем, Metasploit Framework был разработан специально для тестирования на проникновение, например, атаки базы данных, браузерные атаки, атаки с помощью эксплойт-файлов и социально — инженерные нападения. Это один из основных инструментов, используемых специалистами по безопасности.

Metasploit содержит набор инструментов, которые могут помочь вам произвести различные тестирования безопасности системы. Metasploit Framework содержит целый ряд различных модулей, которые могут протестировать приложение  на наличие распространенных уязвимостей, которыми пользуются многие хакеры. Metasploit представляет собой программный компонент, который выполняет выбранную атаку на указанную цель.

С помощью Metasploit, вы запускаете команды, выбирая модуль, который содержит нужный эксплойт. Например, многие REST API, в значительной степени полагаются на SSL. Используя Metasploit, вы можете проверить вашу систему, чтобы увидеть, как она обрабатывает общие SSL эксплойты. Metasploit имеет сотни эксплойтов, которые можно использовать, и из трех инструментов, которые рассмотрены в данной статье, является наиболее сложным. Зато он  предлагает большинство функций для тестирования конкретной уязвимости.

Итоги анализа средств тестирования

Как говорится, большие знания – большая ответственность. Цель данной статьи состоит в том, чтобы предупредить вас о возможной уязвимости разрабатываемого API. Даже, если ваш API не имеет пользовательский интерфейса, это не означает, что он менее подвержен взлому.

Fiddler, Wireshark и Metasploit лишь малая часть из множества доступных инструментов, которые можно использовать для тестирования приложений и безопасности ваших API-интерфейсов.

Если вы говорите о стресс-нагрузочном тестировании, у вас их много, но я бы выбрал:

Apache Bench, безусловно, самый простой https: //httpd.apache.org/docs/2 …. Tsung, сложный, но очень мощный инструмент для этого Tsung Locust, написание тестов Python Современная среда нагрузочного тестирования Многие другие… :)

Помните, что для «реального» тестирования ваших API вам нужно определить, сколько одновременных пользователей вы можете обработать, но вам также нужно будет распространять их исходный код (из какой системы они исходят), чтобы избежать механизмов кэширования и увеличить реальный уровень. раздача запросов.

Но, вообще говоря, если вы хотите провести базовые нагрузочные тесты, начните с Apache Bench и в тот момент, когда вам нужно что-то более сложное, просто переходите к Locust или Tsung (это сложный вариант).

Теперь я не уверен, был ли ваш вопрос о том, «как» точно или «какие инструменты использовать» (на что я ответил).

Что касается «Как», вы должны это сделать, это зависит от того, что вы собираетесь тестировать:

Функция интеграции изолированных API-интерфейсов Скорость / стресс

Если вы хотите просто протестировать свои API, вам нужно изолировать их от всего остального. Означает любой сбой / ошибку / ошибку, которая должна произойти, должна «ТОЛЬКО» происходить из вашего кода, а не из каких-либо других параметров, таких как база данных, сеть, загрузка / сохранение файла, другой вызываемый сервис и т. Д. Так что вам нужно изолировать все для вашего тестирования и аннулировать все, что входит или выходит из вашего сервиса. (это может быть довольно много работы). Однако это, вероятно, лучше сделать на уровне юнит-теста непосредственно в вашем коде.

Интеграция проверит, правильно ли все говорят друг с другом и ведут себя, как ожидается. Чтобы достичь «как ожидалось», тесты должны быть предсказуемыми. Следовательно, вам необходимо:

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

Speed ​​/ Stress в основном выполняет интеграционное или функциональное тестирование с постоянно растущим числом симулированных одновременно работающих пользователей. Как и при обычном обслуживании, система не будет вести себя аналогично с 1, 5, 10, 100, 500k, 2M и 100M пользователями. Вам необходимо установить свои потребности и создать тесты с помощью одного из приведенных выше инструментов, чтобы воспроизвести и смоделировать «что обычно делают пользователи» и посмотреть, когда ваши системы сломаются. Оттуда, если число, которое вы придумали, слишком мало, вам нужно увеличить емкость (или сделать ее динамической), если она слишком велика, вам нужно либо сделать ее динамичной, либо уменьшить емкость (и сэкономить деньги). !).

Функционалу нужно будет смоделировать «пользовательскую» среду, и я бы рекомендовал делать это из самого пользовательского интерфейса. Используйте любой тип «пользовательской симуляции», такой как CasperJS или Watir или Selenium, и т. Д.… И имитируйте пути пользователя, которые, по вашему мнению, важны, и посмотрите, как он работает, а затем как он масштабируется (хотя не слишком сильно увеличивайте масштабирование). здесь, так как это лучше сделать в предыдущем тесте)

Последнее слово о «динамических» / «автоматически масштабируемых» ресурсах. Если ваша система содержит ошибки и использует больше ресурсов, чем необходимо, ваше автоматическое масштабирование быстро возрастет и будет стоить вам «больших» денег. Таким образом, вы также хотите убедиться, что у вас есть «предсказуемый» рост ресурсов, и это то, что вы можете создать в автоматических стресс-тестах! Если вы видите, что потребность в ресурсах растет слишком быстро, то это большое предупреждение.

Надеюсь, это поможет.

Регистрация на курс

Описание курса

Многие современные веб-приложения используют REST API для взаимодействия с сервером и для интеграции друг с другом, поэтому тестировщикам веб-приложений необходимо владеть инструментами и техниками тестирования REST API.

Преимущества умения тестировать API:

  1. Раннее тестирование — разработчики сначала делают API, а потом уже графический интерфейс. У вас есть шанс проверить логику раньше, чем ей дорисуют кнопочки в GUI
  2. Тестирование API — графического интерфейса может в принципе не быть. Будет только API-метод. Такое часто бывает в enterprise-системах.
  3. Скорость — вызвать один запрос занимает доли секунды. А вот через интерфейс повторить процедуру бывает сложно. Например, создать пользователя на 50 заполненных полей…
  4. Точная локализация — где конкретно произошла проблема? На сервере или клиенте? Проверьте работу сервера через API и узнаете точно
  5. Автоматизация — даже если у вас нет автотестов на уровне API приложения, вы можете создать свои простенькие через Postman. Это поможет не гонять одно и то же вручную + быстро создавать большие объемы данных

На курсе я расскажу о том, что должен знать тестировщик REST API. Что именно ему нужно проверять в заголовках или теле ответа. Готовьтесь к тому, что практики будет много!

Входной порог: я предполагаю, что вы:

  1. Знаете английский на уровне «чтение со словарем / гуглтранслейтом». Мы будем тестировать в том числе JIRA API по стандартной документации, которая на английском. Вы должны прочитать описание метода и понять его.
  2. Умеете тестировать: знаете про классы эквивалентности и граничные значения. То есть базовыми знаниями обладаете. Подробнее см в блоке «Вопросы и ответы»

Темы курса

0. Введение в SOAP и REST (бесплатная лекция!)

  1. Что такое API
  2. Способы интеграции систем
  3. HTTP-протокол: SOAP и REST
  4. 7 уровней OSI
  5. Зачем уметь тестировать API

Лекция выложена в открытый доступ на моем youtube-канале, посмотреть ее можно вот тут.

Первым заданием курса будет повторить за тренером вызов запроса doRegister в Users через SOAP и REST, в SOAP Ui и Postman-е соответственно. Попробуйте это сделать! Во время обучения мы уже будем считать, что базовый запрос вы отправить в инструменте можете. Лекция не входит в 5 недель обучения, она сразу доступна в системе дистанционного обучения после оплаты курса. Таким образом, в день старта обучения вам будут доступны лекции 0 и 1.

1. HTTP Headers

  1. Что такое заголовки сообщений. Где их можно посмотреть
  2. Что мы тестируем в REST API
  3. Status Code: коды ответов
  4. Тестируем подсказки (показываем применение теории на практике)
  5. Тестируем JIRA

2. HTTP Body

  1. Разные форматы тела запроса (простые: binary, form-data, x-www-form-urlencoded)
  2. XML-формат: что это такое, правила Well Formed XML, на что обратить внимание при тестировании
  3. JSON-формат: что это такое, правила Well Formed JSON, на что обратить внимание при тестировании
  4. Откуда взять данные для тела запроса, если нет ТЗ, но есть WSDL для SOAP-а на те же методы
  5. Что мы тестируем в REST API
  6. Тестируем Users по мотивам теоретической части
  7. Тестируем подсказки

3. Типы методов (GET, POST, PUT, DELETE). Локализация багов

  1. Какие типы методов бывают
  2. Операции CRUD через GET, POST, PUT, DELETE
  3. Идемпотентность в контексте REST API
  4. Как тип метода сказывается на тестировании? На что проверять методы, у которых нет тела
  5. Примеры:
    — GET
    — POST
    — PUT
    — DELETE
    — другие
  6. Локализация багов при помощи REST API

4. Автоматизация на уровне Postman

  1. Сохранение тестов
  2. Создание тестовых коллекций
  3. Стандартные тесты Postman
  4. Как модифицировать тесты под себя в старой и новой версии
  5. JSON, XML — как достать данные из дерева объектов
  6. Переменные и окружения — для чего нужны и как используются
  7. Как запустить один тест несколько раз
  8. Как загрузить тестовые данные из файла
  9. Как создать много данных с уникальными значениями (email, ФИО — чтобы сразу зарегистрировать много пользователей, например)

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

5. Code VS Contract First. Что еще надо знать про REST API

  1. WADL — как прочитать схему
  2. Code First или Contract First — в чем разница между подходами, как они сказываются на тестировании
  3. Backwards-compatible изменения методов
  4. Инструменты для отправки REST запросов — Soap Ui, CUrl, плагины в браузере
  5. Пример авторматизации REST на уровне API (честной автоматизации внутри кода, не на уровне Postman)
  6. Подводим итоги курса

Формат курса

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

В общем скайп-чате можно задать вопрос тренеру.

О тренере

Тренер — опытный практик.

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

Статьи:

  • Как отправить REST-запрос в Postman
  • Заголовок сообщения Referrer Policy

Видео:

Как отправить REST-запрос за 5 минут

Вопросы и ответы

Какое время занятий?

Время вы выбираете сами. В системе дистанционного обучения выкладывается видеозапись с лекцией, а потом у вас есть неделя на выполнение заданий. Когда именно его делать — решать вам.

Как я получу фидбэк при online-формате?

Через скайп, комментарии к домашним заданиям в системе дистанционного обучения.

Пойму ли я материал? 

Курс совмещает все виды обучения: видео-лекции + статьи в доп материалах + практическая работа (услышал, увидел, пощупал). Так что уверена, сможете! А если что-то не получается, можно задать вопрос в скайп-чате

Нужно ли что-то знать заранее?

Есть обязательный базовый порог: знание английского (со словарем) и умение тестировать (у нас не школа для начинающих и рассказывать про классы эквивалентности я не буду).

Желательно иметь базовое представление о языке программирования (любом), так будет проще понять тему автоматизации — что такое переменные, массивы, какие бывают типы данных и операторы сравнения. Тренер расскажет про эти понятия в привязке к примерам, но вам будет проще, если что-то почитаете заранее.

Также посмотрите нулевую лекцию и попробуйте повторить запросы за тренером.

А зачем мне уметь тестировать? Дайте мне только задания про API!

Я специально делаю на «полное тестирование метода» одно задание из пяти. То есть основа — это как раз пощупать инструменты и все такое.

Но тестирование базовое — неотделимо от любых его отклонений. Точно также, чтобы написать автотест, вам надо сначала подумать, «а что именно я хочу заавтоматизировать». И чтобы проверить метод, вам надо помнить, что проверять надо не только АПИ часть, но и бизнесовую. И я совершенно не хочу, чтобы, пройдя курс по тестированию АПИ, вы считали, что при тестировании методов надо просто извращаться с well-formed json xml, забив вообще на бизнес-логику и обычное тестирование. И еще и говорить, что тренер вас так учил :)

Поэтому домашние задания построены так: сначала несколько заданий именно на API-часть, «проверьте заголовки как в лекции», «передайте тело так, чтобы получить то и се»… А потом идет 1-2 полноценных задания, как оно будет на реальной работе: «Протестировать метод». И тут вы применяете чек-лист тренера по API-части и добавляете проверки согласно принципам тест-дизайна «а как бы я тестировал параметр через интерфейс».

Можно ли работать на Mac или Linux?

Ограничений по OS нет

Как записаться

Напишите на trainings@software-testing.ru: свое ФИО и желаемый курс («курс про REST API»).

.

Способы оплаты

Регистрация и дата ближайшего запуска