Разделы портала

Онлайн-тренинги

.
Краткое руководство по тестированию API
25.01.2021 00:00

Автор: Дейв Вестервельд (DaveWesterveld)
Оригинал статьи
Перевод: Ольга Алифанова

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

На первом курсе университета у нас был профессор математики по кличке "Эйнштейн" – частично из-за его прически, а частично потому, что он делал математику такой же сложной, как теорию относительности. Он начинал решать задачу на доске, а затем говорил "следовательно, очевидно, что" и выводил решение. Мы сидели с озадаченными лицами. Очевидное для него было неочевидно нам, студентам. Нам нужно было знать промежуточные шаги, которые он проскочил, чтобы разобраться, что произошло.

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

Итак, после этого долгого вступления, вот моя попытка упрощенного руководства для начала API-тестирования.

Выясните конечные точки

Для меня это одна из самых сложных вещей в тестировании API. Как узнать, что там вообще тестировать? Что это API умеет? Если вы работаете с хорошо документированным публичным API, то выяснить это нетрудно, но по моему опыту, большая часть тестирования API проводится на внутренних API, поддерживающих различные части вашего приложения. Как правило, такие API плохо задокументированы (если документация вообще есть). Как же это выяснить?

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

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

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

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

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

Авторизацияибезопасность

Авторизация. Аутентификация. Безопасность. Что это и как это работает? С моей точки зрения, процессы авторизации сложны для понимания. Безопасность, конечно, очень важна для работы API, но она может серьезно усложнить его использование. Эта статья сильно разрастется, если я углублюсь в этот вопрос, но хочу все же дать несколько подсказок.

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

Другой момент – когда вас все это раздражает, считайте это полезным опытом. Задавайте вопросы коллегам (и Гуглу). Попытайтесь разобраться, как работает OAuth. Вникните в процесс авторизации. Лично мне изучение авторизации сильно помогло понять работу API и HTTP-протоколов, и это был отличный способ узнать больше о тестировании API.

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

Учитесь делать, делая

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

Разберитесь с базовой терминологией

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

Что дальше?

Итак, что же делать дальше?

  1. зУстановите инструмент тестирования API (возможно, Postman)
  2. Найдите конечную точку своего API и вызовите ее.
  3. Измените что-то в вызове API и попробуйте еще раз.
  4. Начните записывать то, что вы видите, и попробуйте построить ментальную карту работы API.
  5. Попробуйте использовать API, чтобы найти ответы на имеющиеся вопросы, и продолжайте разбираться, как заставить API сделать эти вещи.
  6. Изучите необходимую информацию.
  7. Попробуйте осилить API-челленджи (Сайт automationintesting– отличное место для старта). Можно также попробовать свои силы на публичных API (вот список тех, с которыми можно поработать).
  8. Задавайте много вопросов!