Коротко о API и его тестирование - узнайте на базовом уровне

  1. Форматы передачи данных в API
  2. Методы HTTP запросов
  3. HTTP коды ответов
  4. REST API
  5. Аутентификация по API
  6. Инструменты для работы с API
  7. тестирование API
  8. Но при тестировании API вполне можно использовать общепринятые техники тестирования ПО:

В этой заметке я постараюсь сосредоточить информацию, которая может пригодиться тестировщикам, желающим узнать, на базовом уровне, что такое API?

API (Application Programming Interface) - это набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах (Википедия).

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

Впервые мне пришлось столкнуться с API при разработке приложения прогноза погоды. Мною был разработан графический интерфейс, а погодные данные подтягивались в приложение через бесплатный ключ API Open Weather. API выступает посредником между разработчиком приложений и любым средой, с которым это приложение должен взаимодействовать. Образно .... картинка с моего воображения - это «шланг». «Прикручивают» его, настраиваешь, а потом по нему бежит информация 🙄 Конечно, у каждого API своя цель или как лучше сказать - бизнес логика.

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

Форматы передачи данных в API

Существует множество форматов данных, с помощью которых пользователи взаимодействуют с API. Наиболее уживаниши и известны:

Формат передачи данных XML - жестко иерархически структурирован формат передачи данных. Информация в нем описывается с помощью простых тегов. Более хотите узнать об этом формат передачи данных? - традиционно обратитесь к Википедии. Простой пример:

Простой пример:

и JSON - несложный, легкий, а значит и более быстрый формат, который выглядит следующим образом:

и JSON - несложный, легкий, а значит и более быстрый формат, который выглядит следующим образом:

по ссылкам MediaWiki предлагаем, по желанию, ознакомиться с другими API форматами.

Методы HTTP запросов

Обычно при обращении к веб API используются запросы HTTP. Поэтому нужно хотя бы кратко сказать о стандартных методах, которые могут содержаться в HTTP запросе. Эти методы также называют HTTP глаголами (Verbs):

  • GET - пожалуй, наипопулярнейших тип запроса. Используется для получения или чтения данных. Запросы с использованием этого метода могут только получать данные.
  • HEAD - приглашает ресурс так же, как и метод GET, но без тела от проповеди. Перевод заголовок здесь говорит красноречиво сам за себя
  • PUT - обычно используется для обновления ресурса, путем замены данных запроса.
  • POST - обычно используется для создания нового ресурса или используется для отправки сущностей к определенному ресурсу. Плюсы метода POST очевидны: можно передавать неограниченные объемы информации, причем, никто не увидит эту информацию после того, как вы ее отправили (имеется в виду, в строке браузера). Если не ошибаюсь, таким образом можно передать пароль, регистрационные данные из форм и тому подобное.
  • DELETE - удаляет данные.
  • OPTIONS - используется для описания параметров соединения с ресурсом.
  • PATCH - используется для частичного изменения ресурса.
  • и другие.

Хороший туториал по HTTP на все случаи жизни на developer.mozilla.org

примеры:

Если мы хотим получить информацию о ресурсе, URL которого http://www.example.com/customers/12345, мы можем послать запрос:
GET http://www.example.com/customers/12345

Если мы хотим обновить ресурс, мы можем послать PUT-запрос:
PUT http://www.example.com/customers/12345/orders/98765

Обычные GET запросы способен посылать веб-браузер. Для передачи других типов запросов могут понадобиться скриптовые языки программирования или специальные инструменты (об этом поговорим чуть позже).

HTTP коды ответов

Сервер может посылать различные коды в ответ на запросы пользователей. Это могут быть коды ошибок или просто коды, информирующие пользователей о состоянии сервера. Детальное описание ЧИТАТЬ:

Наиболее известные коды - 2xx: OK Success (успешная ответ от сервера), 4xx (проблемы на стороне клиента) и 5xx (проблемы на стороне сервера). О том, какие коды возвращать в той или иной ситуации, решают разработчики самых API.

REST API

REST API - это идеология построения API, которая расшифровывается как Representational State Transfer API. Она основывается на следующих принципах, сформулированных ее создателем, Роем Филдингом:

  • Клиент-серверная архитектура
  • Stateless сервер
  • кэширования
  • многослойная структура
  • единый интерфейс
  • Код по требованию

Не буду углубляться в детали, кто желает почитать по теме Википедия.

Аутентификация по API

Обычно для использования API нужен специальный ключ, с помощью которого сервер узнает о пользователе. API ключ может отсутствовать или предоставляться по запросу (например, после регистрации на сайте). Например, как в примере с погодным сайтом, ключ импортировал мне показатели погоды. Еще один пример, игра в которую ввести API ключ с Facebook способна импортировать список друзей.

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

Выше мы уже упоминали: обычные GET запросы можно отправлять с помощью браузера. Но специальные инструменты, которые предназначены для разработки и тестирования API предоставляют возможность не только отправлять различные типы запросов, но и сохранять запросы, показывать результаты в различных форматах, выступать в роли proxy сервера. И много много-многое другое.

Среди таких инструментов:

  • Postman - в том числе существует в расширении для Google Chrome, которое в бесплатной версии позволяет посылать запросы, записывать их, показывать историю. Довольно удобный и понятный инструмент. Советы тестирования API в Postman
  • jMeter - инструмент, получивший известность прежде всего благодаря инструмента для Perfomance Testing (тестирование навантажаження), которое можно проводить с его помощью. Но это лишь одна из множества его приложений.
  • Fiddler - позволяет просматривать HTTP запросы.
  • SoapUI - мощный продукт для разработки и тестирования веб приложений.
  • Advanced REST Client - еще одно расширение для Chrome для работы с API (конструкция запросов, их показ тоже в удобном виде).

тестирование API

А теперь - очень коротко о том, как тестировать API. Конечно, здесь есть своя специфика. Тестирование направлено на проверку функционирования прежде всего бизнес логики приложения.

Типичные ошибки в API:

  • Сбой обработки ошибочных условий;
  • неиспользованные flag
  • Отсутствует или дублируется функционал;
  • Вопрос настройки: трудности при подключении и получении ответа от API;
  • Проблемы с безопасностью API;
  • Вопросы по многопоточности;
  • Проблемы с производительностью: бывает время отклика API очень высокий;
  • ошибки;
  • Некорректная обработка валидных значений;
  • Данные ответы некорректно структурированные (JSON или XML).

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

Но при тестировании API вполне можно использовать общепринятые техники тестирования ПО:

  • Смотровое исследовательское тестирование - тесты должны выполнить набор вызовов, задекларированных в API, чтобы проверить общую работоспособность системы;
  • Проверка документации - проверяется полнота описаний функций API, ее понятность и, в свою очередь, является финальным результатом.
  • Анализ предельных значений - в API запросам в явном виде могут передаваться значения параметров. Это отличный повод выделить границы входных и выходных значений и проверить их.
  • Разбиение на классы эквивалентности - н Авито у небольшого API есть множество вариантов использования и множество комбинаций входных и выходных переменных. Поэтому мы можем лишний раз использовать наши навыки выделения эквивалентных классов.
  • Юзабилити-тестирование - проверяет, есть ли API функциональным и обладает удобным интерфейсом, также проверяется интеграция с другими;
  • Тестирование безопасности - проверяет используемый тип аутентификации и шифрования данных с помощью HTTP,
  • Автоматизированное тестирование - создание скриптов, программ или настройка приложений, которые смогут тестировать API на регулярной основе;

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

Похожие

7 отличных инструментов для тестирования ваших адаптивных веб-дизайнов
Каждый современный веб-дизайнер должен знать принципы адаптивного веб-дизайна - как сделать так, чтобы ваши сайты прекрасно отображались на любом устройстве и размере экрана. (Если вам нужно освежить, проверьте наши руководство по адаптивному веб-дизайну ). Но теория - это одно, а практика - другое. Чтобы ваш сайт был полностью адаптивным, вам нужно протестировать его на разных устройствах.
09. От теории к практике или «Язык определения данных»
... следующей статьи. Следующие несколько страниц будут посвящены командам языка определения данных (DDL) . С помощью которого мы можем выполнять операции редактирования и удаления в MS SQL Server 2005 . Теперь, когда у нас есть голова в теории, мы можем перейти к практическому аспекту создания баз данных. Мы создадим нашу собственную систему баз данных в соответствии с проектом, который был реализован и стандартизирован
Как использовать PS4 DualShock 4 для игр на ПК
... по ссылкам на этой странице. Условия эксплуатации , Назад, когда Sony впервые объявила, что DualShock 4 будет работать с Windows , Геймеры ПК по всему интернету приветствовали в унисон. К сожалению, это не совсем то, что мы ожидали. Хотя это правда, что контроллер PS4 распознается Windows (и
Понимание шестнадцатеричных цветовых кодов
В CSS есть два основных способа выбора цвета. Во-первых, просто используйте название цвета, например так: цвет фона: синий; Очевидно, это ограничено. Компьютер может отображать миллионы разных цветов, и запомнить имена каждого из них невозможно. И подумайте о том бедном парне, чья работа - придумывать имена! Вот почему CSS использует шестнадцатеричные коды , например: цвет фона: #DDEEFF; Вы, наверное, раньше использовали шестнадцатеричные
TK USB Stick - система для анализа и восстановления данных
... http://www.thomas-krenn.com/pl/wiki/TK_USB_Stick_-_system_do_analizy_i_odzyskiwania_danych#Download"> здесь ]. содержание USB-ключ имеет дистрибутив Debian Squeeze, установленный с соответствующим образом адаптированным ядром. Графический интерфейс был добавлен для облегчения выполнения команд. Существует инструмент анализа памяти и раздел FreeDos, который позволяет прошивать BIOS, контроллеры и модули для удаленного управления IPMI. Пакет программного обеспечения
Композитор и WordPress cz. 1
Composer - менеджер пакетов для проектов PHP. Его использование экономит время при поиске библиотек и гарантирует согласованность сред, что важно при работе с другими людьми. Побочным эффектом использования Composer является чистый репозиторий и общий порядок в коде. Если вы хотите знать, как начать работать с ним и как использовать его в своих проектах WordPress, то эта серия для вас. последняя статья Я спросил
Производство шоколада
... скую поддержку для производственных предприятий. Производители шоколада могут рассчитывать не только на инновационные машины и устройства самого высокого качества, но и на профессиональные консультации и сервис. В нашем предложении вы найдете оборудование, необходимое на различных производственных линиях. На этот раз мы представляем предложение, которое определенно заинтересует компании, для которых производство шоколада является приоритетом
Dom Nad Wodospadem - проживание, гостиница, комнаты - Międzygórze
... пожаловать в наш дом, расположенный в самом сердце Судетских гор, у подножия Снежника. Семейное заведение приглашает Вас воспользоваться нашими номерами, баром и рестораном, где подают традиционные и нетрадиционные блюда .... В нашем заведении есть хорошо оборудованный конференц-зал на 50 человек, пивной сад и гриль с захватывающим видом на Вильчский водопад . У нас есть 2-, 3- и 4-местные номера с ванными комнатами и телевизором. Dom Nad Wodospadem
Не похоже, что вы не могли искать работу через Facebook раньше. Каждый, кто недавно находился на стадии п...
Не похоже, что вы не могли искать работу через Facebook раньше. Каждый, кто недавно находился на стадии поиска работы, имел возможность использовать одну из групп, которыми на местном уровне управляли частные лица, и в которых еще много предложений. Однако теперь на сайте Цукерберга открыт официальный раздел, посвященный этому в Польше. Поиск работы в различных группах Facebook по-прежнему имеет свои недостатки. Поток информации хаотичен - предложения, которые нам не интересны, могут
Настольный компьютер для офиса - рекомендуемые комплекты
... https://www.euro.com.pl/komputery-stacjonarne-pc/lenovo-legion-y520t-25ikl-intel-core-i5-7400-8gb-1tb-gtx1050-w10.bhtml"> Каковы наиболее важные параметры офисного компьютера? ЗНАЕТЕ ЛИ ВЫ, ЧТО ... Твердотельные накопители (Solid State Drives) - это флэш-накопители. Основным преимуществом SSD является отсутствие движущихся частей и очень тихая
Создайте интерактивную карту с помощью Leaflet JS
... API и простой, читаемый исходный код, в который приятно вносить вклад. Я думаю, что эта библиотека идеально подходит для всех, кто хочет научиться создавать пользовательские карты, поскольку ее, как правило, проще понять, чем библиотеки Google Maps, и каждая функциональность, такая как нанесение маркера на карту, достижима с помощью 1-2 строк код! Настройка проекта Чтобы начать проект, вам нужно создать структуру проекта, с которой вы будете работать. Для

Комментарии

Иногда вы случайно получаете продукт, начинаете его использовать и чувствуете полное возбуждение, трепет и затем абсолютную любовь?
Иногда вы случайно получаете продукт, начинаете его использовать и чувствуете полное возбуждение, трепет и затем абсолютную любовь? Звучит хорошо, правда? А что если добавить, что продукт, помимо фантастического воздействия на кожу, также обладает божественным составом, неземным ароматом и не стоит миллиона монет ...? Заинтересовались? Так что оставайтесь до конца. Сегодня я представляю вам мою любимую. Начнем с того, что я получил масло от
Но отражает ли функциональность My Cloud Mirror его простой дизайн?
Но отражает ли функциональность My Cloud Mirror его простой дизайн? Установка и приложения Когда мы вынимаем такой продукт, как NAS, из коробки и все, что с ним поставляется, это единственный лист, который поможет нам начать работу, мы традиционно беспокоимся. И мы волнуемся, потому что исторически установка накопителя NAS может приводить в бешенство. Не так с My Cloud Mirror. Следуя инструкциям в приложении настройки, вы создаете личную облачную учетную запись. Это
Самый интригующий вопрос, который задают СМИ: какие передовые инструменты вам нужно использовать, чтобы закрыть скрытый онлайн-сервис?
Самый интригующий вопрос, который задают СМИ: какие передовые инструменты вам нужно использовать, чтобы закрыть скрытый онлайн-сервис? В конце концов - теоретически - когда вы посещаете такой скрытый сайт, никто (вы или кто-либо еще) не может определить физическое местоположение сервера, на котором размещается служба. Однако, чтобы эта теория была правильной, необходимо выполнить три условия: Скрытый сервис должен быть настроен соответствующим образом. Возможно,
Можно, но зачем рисковать?
Можно, но зачем рисковать? ;) Гораздо лучше, однако, обещает быть моим новым ежедневным водителем - тоже Nokia, но чуть более ... легендарным? Признаете ли вы? Nokia E72. Одно время устройство было в значительной степени зарезервировано для деловых людей, как и каждая модель из этой линейки. Хотя салон одной из цепочек моего экземпляра
Рассматривает ли команда GMail какую-либо дополнительную фильтрацию или оповещения, связанные с URI данных, в качестве вложений в веб-приложении GMail?
Рассматривает ли команда GMail какую-либо дополнительную фильтрацию или оповещения, связанные с URI данных, в качестве вложений в веб-приложении GMail? Я думаю, что любое руководство, которое вы можете дать по двум вышеупомянутым вопросам, будет иметь большое значение для облегчения работы пользователей Chrome и GMail. » Он ответил: « Я не могу говорить с вещами, которые еще не вышли, но * пожалуйста * посмотрите это место.
Функциональные кнопки - как их использовать?
Функциональные кнопки - как их использовать? Они используются обычно как любая другая кнопка. Иногда мы должны настроить их перед использованием. В моем случае, то есть ноутбуке acer, вам пришлось установить веб-браузер по умолчанию и почтовый клиент по умолчанию. Эти кнопки облегчают мне ежедневную работу над различными вещами. На многих ноутбуках сразу определяется, для чего кнопка. Они могут быть не все или только группы. Например, мультимедийный панек. Он всегда служит одному
2. Что такое служебный тег и как его найти в моей системе?
2. Что такое служебный тег и как его найти в моей системе? Dell Service Tag - это семизначный уникальный идентификатор для каждого продукта Dell. В дополнение к метке обслуживания есть код экспресс-обслуживания , 10-значный числовой вариант метки службы. Чтобы идентифицировать свою систему для Dell, вы должны предоставить хотя бы один из этих номеров тегов, чтобы отправить запрос на обслуживание в службу технической поддержки
Каждый раз у нас есть только одна минута или 60 секунд, и за это время мы должны набрать как можно больше очков и как?
Каждый раз у нас есть только одна минута или 60 секунд, и за это время мы должны набрать как можно больше очков и как? Это очень просто, и у поклонников игр в стиле 3 не должно быть проблем с этой игрой. Нам нужно поменять два соседних элемента (ромба), чтобы расположить их в линию из трех или более одинаковых драгоценных камней. Строка, упорядоченная таким образом, исчезнет с доски, и мы будем получать за нее баллы. Конечно, чем больше камней, тем больше баллов будет зачислено
Можно ли жить без Flash?
Можно ли жить без Flash? Это тяжело. Нет вспышки? НЕТ ХУЛУ ДЛЯ ВАС! Flash существует так давно, что он стал де-факто веб-стандартом по функциям, если не по определению. Тонна сайтов ломается без Flash. Hulu не будет работать без Flash. Амазонка мгновенного видео не будет. (Netflix работает на Silverlight от Microsoft, так и будет.) Farmville
Почему вы должны использовать презентации Google?
Почему вы должны использовать презентации Google? Потому что это отличный инструмент для работы в Интернете, сочетающий преимущества работы в облаке с решениями, известными из автономного приложения. Создание слайдов очень интуитивно и быстро. Кроме того, мы можем пригласить вас поработать несколькими способами, которые вместе с нами могут работать над документом. Нам также не нужно беспокоиться о том, что наша работа где-то будет потеряна, потому что все изменения автоматически сохраняются на
Вы задаетесь вопросом, какого рода украшение использовать для отделки террасы, чтобы создать интересную и оригинальную аранжировку?
Как получить, как запустить и, прежде всего, как настроить ваше оборудование, чтобы иметь возможность использовать бесплатный интернет? Ответ на эти вопросы вы найдете в следующем руководстве.

Более хотите узнать об этом формат передачи данных?
10.bhtml"> Каковы наиболее важные параметры офисного компьютера?
Иногда вы случайно получаете продукт, начинаете его использовать и чувствуете полное возбуждение, трепет и затем абсолютную любовь?
Звучит хорошо, правда?
Заинтересовались?
Но отражает ли функциональность My Cloud Mirror его простой дизайн?
Самый интригующий вопрос, который задают СМИ: какие передовые инструменты вам нужно использовать, чтобы закрыть скрытый онлайн-сервис?
Можно, но зачем рисковать?
Легендарным?
Признаете ли вы?

Новости