API или application programming interface – интерфейс прикладного программирования, или программный интерфейс приложений, или программный интерфейс для приложений. Так переводится с английского аббревиатура API . Если вы не программист, то звучит грозно, не правда ли?
Теперь давайте проверим ваш IQ. Первое объяснение для людей с коэффициентом от 100 и выше. Второе, для всех остальных людей.
Это, конечно шутка, если вы не «технарь» и никогда не касались начинки современных IT-технологий, то понять такую «абракадабру» довольно сложно, но спешим успокоить, все-таки можно.
Итак, что такое API или интерфейс прикладного программирования?
API – это набор классов, функций, процедур, констант, при помощи которых, одна программа или приложение, описывает способы взаимодействия с другой программой. При помощи API различные программы получают возможность обмениваться своими ресурсами, возможностями, функциями, информацией.
Для тех, кто не привык к техническим терминам, есть более простые объяснения, основанные на ассоциациях.
API простыми словами. Что такое API? | 2022
Например: можно представить API в виде розетки, соединяющей источник электроэнергии с одной стороны и пользователей этой энергии, с другой. Источник энергии предоставляет пользователям специальный вход, розетку (API), пользователи, имея специальное устройство определенной конфигурации – вилку, получают возможность подключение.
Две системы независимы, сложны, несовместимы, и, API создаются для того, чтобы максимально просто соединить их друг с другом.
API — что это такое, зачем они нужны и что умеют?
По сути, если бы не было API, не было бы Windows, поскольку всё это множество программ взаимодействует между собой, использует ресурсы операционной системы и «железа», именно с помощью API.
API выполняет связующую функцию
Широко известный DirectX, это тоже набор API, который, независимо от того, какая видеокарта, или звуковая карта установлена в вашем компьютере, а также на каком графическом движке создана та или иная компьютерная игра, позволяет наслаждаться всеми красотами геймерского мира.
API-интерфейсы экономят время программистов
Именно благодаря API разработчикам программных приложений, не приходится заново создавать то, что уже существует. Создавая новый программный продукт, они могут дополнять его, используя уже существующие разработки.
API позволяют обеспечить обмен информацией
Например, сайты, продающие туристические туры, используют API транспортных перевозчиков, отелей, бюро экскурсий, для доступа к необходимой информации в режиме реального времени, и на основе поступающих от них данных, организуют свою работу.
Что такое API?
Крупные издания, к примеру, The New York Times, именно с помощью API предоставляют доступ к своей базе данных, в которой хранится не одна тысяча статей.
Агентство NASA имеет открытое API и каждый, кто пожелает, может получить доступ к изображениям со спутников, а также актуальную информацию о созвездиях.
API используются для контроля доступа к программным и аппаратным ресурсам
Одновременно с функцией связи, API могут использоваться с целью обеспечения безопасности, ограничивая доступ к определенной части информации и открывая только необходимые данные, с помощью использования ключа API.
API позволяют поддерживать сотрудничество
В мире существует множество научно-исследовательских институтов и организаций, в которых ученые разных стран проводят важные для всего человечества научные изыскания, исследования, опыты.
Работая в одном направлении, ученые могут анализировать результаты исследований своих коллег, проводимые по тем же темам и использовать их в своей работе.
Например, API-интерфейсы организации Google Genomics предоставляют научным сотрудникам возможность проводить анализ всех исследований, проводимых в области генетики, использовать их для изучения заболеваний и разрабатывать методы лечения этих заболеваний.
Работа с API — реальные примеры использования
Какое практическое применение API может быть? Есть применение, если вы, программист.
Большинство крупных приложений открывают свои API и предоставляют возможность пользоваться ими.
Например, сервис по продвижению крупных технологических проектов под названием Product Hunt , собрал на своем официальном сайте коллекцию API всевозможных сервисов – заходите, скачивайте, пользуйтесь. Тут есть API Gmail, Uber, и так далее.
Кроме того существует интересный ресурс под названием ifttt , который представляет собой максимально доступное для пользователя приложение для работы с различными API. Данный сервис помогает взаимодействовать огромному количеству приложений и сайтов. Например, с помощью этого сервиса можно настроить автоматическую публикацию статей в ленте Facebook после ее публикации на вашем WordPress-сайте.
Что такое API в программировании — вывод
Если вы совсем далеки от программирования, вам достаточно знать, что API просто существует. Ну, а если вы действительно интересуетесь программированием, обязательно присмотритесь к этому направлению организации взаимодействия различных приложений. Очень часто, это сильно упрощает жизнь.
Пожалуйста, оставляйте ваши комментарии по текущей теме материала. Мы крайне благодарны вам за ваши комментарии, отклики, подписки, дизлайки, лайки!
Источник: www.internet-technologies.ru
ПРАКТ 9. Практическая работа 9. Изучение системного реестра. Команды операционной системы. Диспетчер задач. Консоль восстановления. Восстановление установок компьютера. Встроенные приложения операционной системы
Единственный в мире Музей Смайликов
Самая яркая достопримечательность Крыма
Скачать 0.62 Mb.
Практическая работа №9. Изучение системного реестра. Команды операционной системы. Диспетчер задач. Консоль восстановления. Восстановление установок компьютера.
Встроенные приложения операционной системы.
1. Цель работы: изучить работу диспетчера задач, изучить размещения файлов в файловой системе FAT, исследование методов организации файловых систем
2. Оборудование, приборы, аппаратура, материалы: персональный компьютер с операционной системой семейства Windows.
3. Краткие теоретические сведения.
WindowsAPI (Application Programming Interface) — это системный интерфейс программирования в семействе операционных систем Microsoft Windows. АРI состоит из большого количества динамических библиотек и содержит множество функций, которые прикладные программы могут использовать для взаимодействия с операционной системой. Каждая операционная система реализует различную подмножество Windows API.
АРI выполняет роль связующего звена между приложениями и операционной системой. Windows API содержит несколько тысяч функций, сгруппированы в следующие основные категории: базовые сервисы, сервисы компонентов, сервисы пользовательского интерфейса, сервисы графики и мультимедиа, сервисы коммуникаций, сетевые и Web-сервисы.
Функции, службы и процедуры
АРI содержит совокупность функций, которые доступны программистам при разработке программ — их называют функциями Windows API. К ним относятся документированные подпрограммы, такие, как CreateProcess, CreateFile, GetMessage и другие.
Функции ядра — это подпрограммы внутри операционной системы Windows, которые можно вызвать только в режиме ядра.
К службам относятся процессы, которые запускаются диспетчером управления служб. Они, как правило, работают в фоновом режиме независимо от других приложений и предназначенны для обслуживания определенных потребностей пользователя или системы. Например, служба Task Scheduler-планировщик, который позволяет управлять запуском других программ.
Windows содержит большой набор функций (подпрограмм), объединенных в отдельные бинарные файлы, которые программы могут динамически загружать во время своего выполнения. Такие библиотеки функций называют динамическими библиотеками (DLL).
Различные программные механизмы, которые операционная система предоставляет программистам для выполнения определенных действий, называют также сервисами, поскольку они предназначены для обслуживания различных потребностей пользователя системы. К таким сервисам относятся и функции API. Отдельное подмножество составляют неуправляемые системные сервисы (или исполнительные системные сервисы). Они охватывают недокументированные низкоуровневые сервисы операционной системы, которые можно вызвать в пользовательском режиме.
Процессы, потоки и задания
Когда в среде Windows запускается прикладная программа, система создает специальный объект — процесс, — который предназначен для поддержания ее исполнения. Может показаться, что программа и процесс — понятие похожие, они фундаментально отличаются. Программа — это статический набор команд, а процесс — контейнер для ресурсов, которые используются при выполнении экземпляра программы.
Известная утилита для анализа активности процессов-системный Task Manager (диспетчер задач). В ядре Windows нет такого понятия, как задачи, поэтому Task Manager на самом деле является инструментом для управления процессами.
Диспетчер задач Windows отображает список активных процессов. Его можно запустить различными способами: 1) нажав комбинацию клавиш Ctrl + Shift + Esc, 2) щелкнув на панели задач правой кнопкой мыши и выбрав команду Task Manager (диспетчер задач), 3) нажав клавиши Ctrl + Alt + Del. Для просмотра списка процессов после запуска диспетчера задач следует открыть вкладку Processes (процессы).
В этом окне процессы идентифицируются по имени образа, экземплярами которого они являются. В отличие от других объектов в Windows процессам нельзя присваивать глобальные имена. Для просмотра подробных сведений выберите из меню View (вид) команду Select Columns (выбрать столбцы) и выберите любую дополнительную информацию нужно отобразить.
Вкладка Applications позволяет идентифицировать процесс, которому принадлежит поток, обладающий каким-то окном задачи. Для этого следует щелкнуть правой кнопкой мыши на названии задачи и выбрать команду Go To Process (перейти к процессам).
Для предотвращения доступа приложений к критически важным данным операционной системы и устранения риска их модификации Windows использует два режима доступа к процессору (даже если он поддерживает более двух
режимов): пользовательский режим (user mode) и режим ядра (kernel mode). Код программ работает в пользовательском режиме, тогда как код операционной системы (например, системные сервисы и драйверы устройств) — в режиме ядра. В режиме ядра предоставляется доступ ко всей системной памяти и разрешается выполнять любые машинные команды процессора. Предоставляя операционной системе высший уровень привилегий, чем прикладным программам, процессор позволяет разработчикам операционных систем реализовать архитектуру, которая не дает возможности отдельным программам нарушать стабильность работы всей системы.
Прикладные программы могут переключаться с пользовательского режима в режим ядра, обращаясь к системному сервису. Переключение с пользовательского режима в режим ядра осуществляется специальной командой процессора. Операционная система перехватывает эту команду, обнаруживает запрос системного сервиса, проверяет аргументы, которые поток передал системной функции, и выполняет внутреннюю подпрограмму. Перед возвращением управления пользовательскому потоку процессор переключается обратно в пользовательский режим. Благодаря этому операционная система защищает себя и свои данные от возможной модификации приложениями.
Поэтому ситуация, когда пользовательский поток часть времени работает в пользовательском режиме, а часть — в режиме ядра, обычная. Поскольку подсистема, отвечающая за поддержку графики и окон, функционирует в режиме ядра, то программы, интенсивно работающих с графикой, большую часть времени действуют в режиме ядра, а не в пользовательском режиме. Самый простой способ проверить это — запустить программу типа Adobe Photoshop или Microsoft Pinball и, выполняя в ней какие-то действия, наблюдать за показателями работы в пользовательском режиме и в режиме ядра с помощью Task Manager (диспетчер задач). В его окне на вкладке Performance (производительность), включив в меню View (вид) опцию Kernel Times (вывод времени ядра), можно увидеть, сколько времени процессор проводит в режиме ядра. На графике процент загрузка процессора указано зеленым цветом, а процент работы в режиме ядра — красным.
4. Задания
Задание 1. Заполните пропуски
WindowsAPI (Application Programming Interface) — _________________
АРI состоит из большого количества динамических библиотек и содержит множество функций, которые прикладные программы могут использовать для взаимодействия с операционной системой. Каждая операционная система реализует различную подмножество Windows API.
АРI выполняет роль связующего звена между приложениями и операционной системой. Windows API содержит несколько тысяч функций, сгруппированы в следующие основные категории: ____________________
АРI содержит совокупность функций, которые доступны программистам при разработке программ — их называют _____________________________________________ К ним относятся __________________________________________________________________
Функции ядра — _____________________________________________
К службам относятся процессы, которые запускаются диспетчером управления служб. Они, как правило, работают в фоновом режиме независимо от других приложений и предназначенны для обслуживания определенных потребностей пользователя или системы. Например, служба Task Scheduler-планировщик, который позволяет управлять запуском других программ.
Windows содержит большой набор функций (подпрограмм), объединенных в отдельные бинарные файлы, которые программы могут динамически загружать во время своего выполнения. Такие библиотеки функций называют _______________________________________________
Различные программные механизмы, которые операционная система предоставляет программистам для выполнения определенных действий, называют также сервисами, поскольку они предназначены для обслуживания различных потребностей пользователя системы. К таким сервисам относятся ___________________________________ Отдельное подмножество составляют неуправляемые системные сервисы (или исполнительные системные сервисы). Они охватывают недокументированные низкоуровневые сервисы операционной системы, которые можно вызвать в пользовательском режиме.
Когда в среде Windows запускается прикладная программа, система создает специальный объект — ___________________________, — который ________________________________________________________________________________________________. Может показаться, что программа и процесс — понятие похожие, они фундаментально отличаются. Программа — _____________________________________________________, а процесс — ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Известная утилита для анализа активности процессов-системный Task Manager (_________________________________________). В ядре Windows нет такого понятия, как задачи, поэтому Task Manager ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Диспетчер задач Windows отображает список активных процессов. Его можно запустить различными способами: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________В этом окне процессы идентифицируются по имени образа, экземплярами которого они являются. В отличие от других объектов в Windows процессам нельзя присваивать глобальные имена.
Вкладка Applications позволяет ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Для предотвращения доступа приложений к критически важным данным операционной системы и устранения риска их модификации Windows использует два режима доступа к процессору (даже если он поддерживает более двух
режимов): _______________________________________________________. Код программ работает в ___________________________________________, тогда как код операционной системы (например, системные сервисы и драйверы устройств) — в _____________________________. В режиме ядра предоставляется доступ ко всей системной памяти и разрешается выполнять любые машинные команды процессора.
Прикладные программы _______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________. Переключение с пользовательского режима в режим ядра осуществляется _______________
_______________________________________________________________. Операционная система ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________. Перед возвращением управления пользовательскому потоку процессор переключается обратно в пользовательский режим. Благодаря этому операционная система __________________________________________________________________________________________________________________________________________________________________________________.
Поэтому ситуация, когда пользовательский поток часть времени работает в пользовательском режиме, а часть — в режиме ядра, обычная. Поскольку подсистема, отвечающая за поддержку графики и окон, функционирует в режиме ядра, то программы, интенсивно работающих с графикой, большую часть времени действуют в режиме ядра, а не в пользовательском режиме. Самый простой способ проверить это — __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Источник: topuch.com
Что такое API
Слово «API» мелькает в вакансиях даже для начинающих тестировщиков. То REST API, то SOAP API, то просто API. Что же это за зверь такой? Давайте разбираться!
— А зачем это мне? Я вообще-то web тестирую! Вот если пойду в автоматизацию, тогда да… Ну, еще это в enterprise тестируют, я слышал…
А вот и нет! Про API полезно знать любому тестировщику. Потому что по нему системы взаимодействуют между собой. И это взаимодействие вы видите каждый день даже на самых простых и захудалых сайтах.
Любая оплата идет через API платежной системы. Купил билет в кино? Маечку в онлайн-магазине? Книжку? Как только жмешь «оплатить», сайт соединяет тебя с платежной системой.
Но даже если у вас нет интеграции с другими системами, у вас всё равно есть API! Потому что система внутри себя тоже общается по api. И пока фронт-разработчик усиленно пилит GUI (графический интерфейс), вы можете:
- скучать в ожидании;
- проверять логику работы по API
Что такое API
API (Application programming interface) — это контракт, который предоставляет программа. «Ко мне можно обращаться так и так, я обязуюсь делать то и это».
Если переводить на русский, это было бы слово «договор». Договор между двумя сторонами, как договор на покупку машины:
- мои обязанности — внести такую то сумму,
- обязанность продавца — дать машину.
- Code first — сначала пишем код, потом по нему генерируем контракт
- Contract first — сначала создаем контракт, потом по нему пишем или генерируем код (в этой статье я буду говорить именно об этом стиле)
API — набор функций
Когда вы покупаете машину, вы составляете договор, в котором прописываете все важные для вас пункты. Точно также и между программами должны составляться договоры. Они указывают, как к той или иной программе можно обращаться.
Соответственно, API отвечает на вопрос “Как ко мне, к моей системе можно обратиться?”, и включает в себя:
- саму операцию, которую мы можем выполнить,
- данные, которые поступают на вход,
- данные, которые оказываются на выходе (контент данных или сообщение об ошибке).
Тут вы можете мне сказать:
— Хмм, погоди. Операция, данные на входе, данные на выходе — как-то всё это очень сильно похоже на описание функции!
Если вы когда-то сталкивались с разработкой или просто изучали язык программирования, вы наверняка знаете, что такое функция. Фактически у нас есть данные на входе, есть данные на выходе, и некая магия, которая преобразует одно в другое.
И да! Вы будете правы в том, что определения похожи. Почему? Да потому что API — это набор функций. Это может быть одна функция, а может быть много.
Как составляется набор функций
Да без разницы как. Как разработчик захочет, так и сгруппирует. Например, можно группировать API по функционалу. То есть:
- отдельно API для входа в систему, где будет регистрация и авторизация;
- отдельно API для отчетности — отчет 1, отчет 2, отчет 3… отчет N. Для разных отчетов у нас разные формулы = разные функции. И все мы их собираем в один набор, api для отчетности.
- отдельно API платежек — для работы с каждым банком своя функция.
- .
Можно не группировать вообще, а делать одно общее API.
Можно сделать одно общее API, а остальные «под заказ». Если у вас коробочный продукт, то в него обычно входит набор стандартных функций. А любые хотелки заказчиков выносятся отдельно.
Получается, что в нашей системе есть несколько разных API, на каждое из которых у нас написан контракт. В каждом контракте четко прописано, какие операции можно выполнять, какие функции там будут
И конечно, функции можно переиспользовать. То есть одну и ту же функцию можно включать в разные наборы, в разные апи. Никто этого не запрещает.
Получается, что разработчик придумывает, какое у него будет API. Либо делает общее, либо распределяет по функционалу или каким-то своим критериям, и в каждое апи добавляет тот набор функций, который ему необходим.
При чем тут слово «интерфейс»
— Минуточку, Оля! Ты же сама выше писала, что API — это Application programming interface. Почему ты тогда говоришь о контракте, хотя там слово интерфейс?
Да потому, что в программировании контракт — это и есть интерфейс. В классическом описании ООП (объектно-ориентированного программирования) есть 3 кита:
- Инкапсуляция
- Наследование
- Полиморфизм
Не всегда программа предоставляет именно графический интерфейс. Это может быть SOAP, REST интерфейс, или другое API. Чтобы использовать этот интерфейс, вы должны понимать:
- что подать на вход;
- что получается на выходе;
- какие исключения нужно обработать.
Как вызывается API
Вызвать апи можно как напрямую, так и косвенно.
- Система вызывает функции внутри себя
- Система вызывает метод другой системы
- Человек вызывает метод
- Автотесты дергают методы
- Пользователь работает с GUI
Вызов API напрямую
1. Система вызывает функции внутри себя
Разные части программы как-то общаются между собой. Они делают это на программном уровне, то есть на уровне API!
Это самый «простой» в использовании способ, потому что автор API, которое вызывается — разработчик. И он же его потребитель! А значит, проблемы с неактуальной документацией нет =)
Шучу, проблемы с документацией есть всегда. Просто в этом случае в качестве документации будут комментарии в коде. А они, увы, тоже бывают неактуальны. Или разработчики разные, или один, но уже забыл, как делал исходное api и как оно должно работать…
2. Система вызывает метод другой системы
А вот это типичный кейс, которые тестируют тестировщики в интеграторах. Или тестировщики, которые проверяют интеграцию своей системы с чужой.
Одна система дергает через api какой-то метод другой системы. Она может попытаться получить данные из другой системы. Или наоборот, отправить данные в эту систему.
Допустим, я решила подключить подсказки из Дадаты к своему интернет-магазинчику, чтобы пользователь легко ввел адрес доставки.
Я подключаю подсказки по API. И теперь, когда пользователь начинает вводить адрес на моем сайте, он видит подсказки из Дадаты. Как это получается:
- Он вводит букву на моем сайте
- Мой сайт отправляет запрос в подсказки Дадаты по API
- Дадата возвращает ответ
- Мой сайт его обрабатывает и отображает результат пользователю
И, конечно, не забываем про кейс, когда мы разрабатываем именно API-метод. Который только через SOAP и можно вызвать, в интерфейсе его нигде нет. Что Заказчик заказал, то мы и сделали ¯_(ツ)_/¯
Пример можно посмотреть в Users. Метод MagicSearch создан на основе реальных событий. Хотя надо признать, в оригинале логика еще замудренее была, я то под свой сайт подстраивала.
Но тут фишка в том, что в самой системе в пользовательском интерфейсе есть только обычный поиск, просто строка ввода. Ну, может, парочка фильтров. А вот для интеграции нужна была целая куча доп возможностей, что и было сделано через SOAP-метод.
Функционал супер-поиска доступен только по API, пользователь в интерфейсе его никак не пощупает.
В этом случае у вас обычно есть ТЗ, согласно которому работает API-метод. Ваша задача — проверить его. Типичная задача тестировщика, просто добавьте к стандартным тестам на тест-дизайн особенности тестирования API, и дело в шляпе!
(что именно надо тестировать в API — я расскажу отдельной статьей чуть позднее)
3. Человек вызывает метод
- Для ускорения работы
- Для локализации бага (проблема где? На сервере или клиенте?)
- Для проверки логики без докруток фронта
Для примера снова идем в Users. Если мы хотим создать пользователя, надо заполнить уйму полей!
Конечно, это можно сделать с помощью специальных плагинов типа Form Filler. Но что, если вам нужны адекватные тестовые данные под вашу систему? И на русском языке?
Заполнение полей вручную — грустно и уныло! А уж если это надо повторять каждую неделю или день на чистой тестовой базе — вообще кошмар. Это сразу первый приоритет на автоматизацию рутинных действий.
И в данном случае роль автоматизатора выполняет… Postman. Пользователя можно создать через REST-запрос CreateUser. Один раз прописали нормальные “как настоящие” данные, каждый раз пользуемся. Профит!
Вместо ручного заполнения формы (1 минута бездумного заполнения полей значениями «лпрулпк») получаем 1 секунду нажатия на кнопку «Send». При этом значения будут намного адекватнее.
А еще в постмане можно сделать отдельную папку подготовки тестовой базы, напихать туда десяток запросов. И вот уже на любой базе за пару секунд вы получаете столько данных, сколько вручную вбивали бы часами!
Если вы нашли баг и не понимаете, на кого его вешать — разработчика front-end или back-end, уберите все лишнее. Вызовите метод без графического интерфейса. А еще вы можете тестировать логику программы, пока интерфейс не готов или сломан.
4. Автотесты дергают методы
Есть типичная пирамида автоматизации:
- GUI-тесты — честный тест, «как это делал бы пользователь».
- API-тесты — опускаемся на уровень ниже, выкидывая лишнее.
- Unit-тесты — тесты на отдельную функцию
Слово API как бы намекает на то, что будет использовано в тестах ツ
- операция: загрузка отчета;
- на входе: данные из ручных или автоматических корректировок или из каких-то других мест;
- на выходе: отчет, построенный по неким правилам
- Ячейка 1: Х — Y
- Ячейка 2: Z * 6
- .
GUI-тесты — честный тест, робот делает все, что делал бы пользователь. Открывает браузер, тыкает на кнопочки… Но если что-то упадет, будете долго разбираться, где именно.
API-тесты — все то же самое, только без браузера. Мы просто подаем данные на вход и проверяем данные на выходе. Например, можно внести итоговый ответ в эксельку, и пусть робот выверяет ее, правильно ли заполняются данные? Локализовать проблему становится проще.
Unit-тесты — это когда мы проверяем каждую функцию отдельно. Отдельно смотрим расчет для ячейки 1, отдельно — для ячейки 2, и так далее. Такие тесты шустрее всего гоняются и баги по ним легко локализовать.
Косвенный вызов API
Когда пользователь работает с GUI, на самом деле он тоже работает с API. Просто не знает об этом, ему это просто не нужно.
То есть когда пользователь открывает систему и пытается загрузить отчет, ему не важно, как работает система, какой там magic внутри. У него есть кнопочка «загрузить отчет», на которую он и нажимает. Пользователь работает через GUI (графический пользовательский интерфейс).
Но на самом деле под этим графическим пользовательским интерфейсом находится API. И когда пользователь нажимает на кнопочку, кнопочка вызывает функцию построения отчета.
А функция построения отчета уже может вызывать 10 разных других функций, если ей это необходимо.
И вот уже пользователь видит перед собой готовый отчет. Он вызвал сложное API, даже не подозревая об этом!
Что значит «Тестирование API»
В первую очередь, мы подразумеваем тестирование ЧЕРЕЗ API. «Тестирование API» — общеупотребимый термин, так действительно говорят, но технически термин некорректен. Мы не тестируем API, мы не тестируем GUI (графический интерфейс). Мы тестируем какую-то функциональность через графический или программный интерфейс.
Но это устоявшееся выражение. Можно использовать его и говорить “тестирование API”. И когда мы про это говорим, мы имеем в виду:
- автотесты на уровне API
- или интеграцию между двумя разными системами.
Когда мы говорим про тестирование API, чаще всего мы подразумеваем тестирование Remote API. Когда у нас есть две системы, находящихся на разных компьютерах, которые как-то между собой общаются.
И если вы видите в вакансии «тестирование API», скорее всего это подразумевает умение вызвать SOAP или REST сервис и протестировать его. Хотя всегда стоит уточнить!
Резюме
API (Application programming interface) — это контракт, который предоставляет программа. «Ко мне можно обращаться так и так, я обязуюсь делать то и это».
- саму операцию, которую мы можем выполнить,
- данные, которые поступают на вход,
- данные, которые оказываются на выходе (контент данных или сообщение об ошибке).
- Система вызывает функции внутри себя
- Система вызывает метод другой системы
- Человек вызывает метод
- Автотесты дергают методы
- Пользователь работает с GUI
- автотесты на уровне API (умение автоматизировать)
- интеграцию между двумя разными системами (обычно SOAP или REST, то есть работу в SOAP Ui или Postman).
- Тестирование IT-систем
- Тестирование веб-сервисов
Источник: habr.com