А в вакансиях тестировщика это слово встречается тоже давольно часто
Когда я начал изучать тестирование и просматривать вакансии — одно слово мелькало везде - API.
В требованиях для джуниоров. В описании обязанностей. В тестовых заданиях. Иногда просто так — «знание API приветствуется». Иногда конкретнее — «опыт тестирования REST API».
Я долго делал вид ?что понимаю о чём речь. Потом решил разобраться по-честному.
И вот что выяснилось.
API — это не какая-то сложная программистская штука доступная только избранным. Это то с чем вы сталкиваетесь каждый день. Буквально каждый раз когда что-то делаете в интернете.
Что такое API на человеческом языке
Дословный перевод — Application Programming Interface. Программный интерфейс приложения. Звучит страшно. На деле всё проще.
API это контракт между двумя программами. Договор о том как они будут общаться друг с другом.
Вот аналогия которая мне помогла. Когда вы покупаете машину — подписываете договор. В нём прописано что продавец обязуется передать автомобиль в определённом состоянии, а вы обязуетесь заплатить определённую сумму. Чётко, понятно, задокументировано.
Программы делают то же самое. Одна программа говорит другой: «Вот как ко мне можно обращаться. Вот что нужно мне передать. Вот что я верну в ответ». Это и есть API.
Примеры API которые вы видите каждый день
Нажали кнопку «Оплатить» в интернет-магазине.
Что происходит в этот момент? Сайт магазина обращается к API платёжной системы. Передаёт туда сумму, данные заказа, информацию о покупателе. Платёжная система обрабатывает запрос и возвращает ответ — оплата прошла или нет. Сайт получает этот ответ и показывает вам результат.
Всё это происходит за секунды. Вы нажали одну кнопку — а за кулисами несколько систем поговорили друг с другом через API.
Ещё пример. Вводите адрес доставки на каком-нибудь сайте — и появляются подсказки. «Москва, улица...» — и система сама предлагает варианты. Эти подсказки не хранятся на сайте магазина. Сайт в реальном времени обращается к API стороннего сервиса с базой адресов, получает варианты и показывает их вам. Вы этого не видите — но это происходит при каждом введённом символе.
Или погода на стороннем сайте. Или вход через Google. Или карты встроенные в сайт. Всё это — API.
Почему тестировщику важно это понимать что такое API
Вот тут начинается самое интересное.
Любое современное приложение — это не монолит. Это набор систем которые общаются между собой. И большая часть этого общения идёт через API.
Это значит что можно начать тестировать логику приложения ещё до того как готов интерфейс. Пока разработчик рисует кнопки и экраны — тестировщик уже проверяет как работает API. Правильно ли система отвечает на запросы? Что происходит если передать неверные данные? Что если передать пустоту? Что если передать слишком большое число?
Это тестирование через API — и оно часто эффективнее чем тестирование через интерфейс.
Представьте страницу регистрации. Имя, email, пароль, дата рождения, пол, аватар, адрес — десять полей. Чтобы проверить один сценарий через интерфейс нужно вручную заполнить все десять полей. Потом ещё раз. И ещё раз. Каждый день если нужно.
Через API это делается одним запросом. Один раз настроил — и используешь сколько угодно. Никакого ручного заполнения.
Как вызывается API — и зачем это знать
API можно вызвать напрямую и косвенно.
Напрямую — это когда тестировщик сам отправляет запрос к системе. Без интерфейса, без кнопок. Просто запрос — и ответ. Для этого используют специальные инструменты. Самый популярный — Postman. О нём отдельный разговор, но суть простая: пишешь запрос, отправляешь, смотришь что система ответила.
Один раз сохранил запрос — и можешь использовать его хоть каждый день. Хоть сто раз подряд. Без единого клика мышкой по интерфейсу.
Косвенно — это когда вы работаете с обычным интерфейсом. Нажимаете кнопку, заполняете форму, кликаете по меню. За каждым таким действием скрыт вызов API. Вы его не видите — но он происходит. Когда нажимаете «загрузить отчёт» — вы вызываете API. Просто через посредника в виде кнопки.
Что значит «тестирование API»
Технически мы не тестируем само API — мы тестируем функциональность через API. Но так уже говорят все и везде, поэтому это устоявшийся термин.
На практике тестирование API означает 2 вещи:
- проверка интеграции между системами. Одна система отправила запрос другой — правильный ли ответ пришёл? Правильный ли формат данных? Что происходит если одна из систем недоступна?
- автотесты на уровне API. Написал запросы один раз — они проверяют систему автоматически. Быстро, воспроизводимо, без участия человека.
Именно поэтому в вакансиях это слово встречается так часто. Тестировщик который умеет работать с API — может тестировать быстрее, глубже и независимо от готовности интерфейса.
Что я понял для себя
Когда разобрался что такое API — многое встало на место.
Все эти интеграции, все эти «система общается с системой», все эти данные которые куда-то уходят и откуда-то приходят — это всё API. Это не магия и не что-то недоступное. Это просто договор между программами о том как они разговаривают.
И тестировщик который понимает этот язык — видит приложение не только снаружи но и изнутри.
Я только начинаю с этим работать. Впереди практика с Postman — и я расскажу как это выглядит на деле.
Подписывайтесь на канал и заходите в группу ВКонтакте