Автоматизация тестирования Postman API для начинающих

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

Обзор курса
Переменные
Скрипты
Отладка
Основы JavaScript
Формат JSON
Утверждения
Регулярные выражения
Интеграция в CI/CD
Совместная работа в рабочей области Postman
Этот курс предполагает, что вы уже знакомы с API и знаете, как использовать Postman для создания запросов. Если вы новичок в API, Free Code Camp предлагает другие курсы, которые помогут вам начать работу. На протяжении всего курса вы будете работать с существующей коллекцией Postman, писать тесты и автоматизировать их выполнение с помощью различных инструментов.

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

Если вам понравился курс, подумайте о том, чтобы поставить лайк и подписаться на канал Free Code Camp на YouTube. Вы также можете связаться с инструктором Валентином Деспо в социальных сетях. Наконец, большое спасибо Postman за спонсирование этого курса.

Уровень 1. Ручное тестирование
На этом уровне мы будем использовать коллекцию Postman под названием Valentino Artisan Coffee House для ручного тестирования. Для начала откройте Postman в браузере и войдите в свою учетную запись. При желании измените тему на более темную.

Откройте заметки к курсу из описания видео и нажмите на ссылку, чтобы получить доступ к рабочей области. Эта рабочая область содержит коллекцию API и задания для курса. Коллекция Valentino Artisan Coffee House позволяет просматривать продукты, просматривать детали и размещать заказы.

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

Уровень 2: Введение в автоматизацию тестирования
На этом уровне мы изучим концепции JavaScript и начнем автоматизировать тесты с помощью Postman. Следите за обновлениями курса.

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

Статус API
Чтобы начать тестирование API, нам сначала нужно проверить статус API. Это можно сделать, отправив запрос GET на конечную точку состояния. Если API запущен и работает, мы должны получить ответ со статусом 200 OK.

Получить все продукты
Затем мы можем получить список всех доступных продуктов, отправив запрос GET на конечную точку «Получить все продукты». Это вернет ответ с разбивкой на страницы с информацией о каждом продукте. Мы можем перемещаться по страницам, используя параметры запроса.

Фильтровать продукты по категориям
Если нас интересуют только продукты из определенной категории, мы можем использовать параметр запроса категории для фильтрации результатов. Например, если мы хотим видеть только кондитерские изделия, мы можем установить параметр категории на кондитерские изделия и отправить запрос.

Получить отдельный продукт
Чтобы получить дополнительные сведения о конкретном продукте, мы можем использовать конечную точку "Получить отдельный продукт". Для этой конечной точки требуется переменная пути, которая является идентификатором продукта, который мы хотим получить. Отправив запрос GET с идентификатором продукта, мы можем получить дополнительную информацию об этом продукте.

Создание заказа
Чтобы разместить заказ, нам нужно отправить запрос POST на конечную точку создания заказа. Для этой конечной точки требуется тело запроса, содержащее сведения о заказе. Мы можем включить в текст запроса такую ​​информацию, как идентификаторы продуктов, количество и сведения о клиенте.

Размещение заказа
Чтобы разместить заказ с помощью API, мы используем запрос POST. В теле запроса указываем имя клиента и товары для заказа.

Имя клиента: для каждого запроса генерируется случайное имя.

Продукты: нам нужно указать идентификатор и количество каждого продукта.

Когда мы отправляем заказ, мы получаем ошибку 403 Forbidden с сообщением Invalid API Key. Это означает, что нам необходимо пройти аутентификацию в API, чтобы разместить заказ или просмотреть существующие заказы.

Аутентификация — это тема, которая будет рассмотрена в следующей лекции.

Регистрация в качестве клиента
Чтобы получить ключ API, нам необходимо зарегистрироваться в качестве клиента API. Это делается путем отправки запроса POST с нашим адресом электронной почты.

После регистрации мы получаем токен — временный пароль, используемый API для аутентификации.

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

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

Важно понимать разницу между начальным значением и текущим значением переменной. Начальное значение не видно другим, но текущее значение используется при выполнении запросов.

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

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

Если запрос выполнен успешно, мы получаем код состояния 201 Created, указывающий, что заказ создан.

Тело ответа содержит идентификатор заказа, имя клиента и заказанные продукты.

Обработка секретов в Postman
Параметр запроса обычно находится в заголовке. В Postman мы можем управлять заголовками и проверять наличие скрытых заголовков. Одним из важных заголовков является x-api-key, который представляет собой ключ API, используемый для аутентификации. Этот заголовок управляется с помощью помощника аутентификации в Postman, который настраивается на вкладке «Авторизация». Помощник аутентификации наследуется от родительской папки, поэтому все запросы в папке могут использовать один и тот же ключ API без ручной настройки.

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

Пример: получение заказа по идентификатору
Мы также можем протестировать API, отправив запрос на получение заказа по идентификатору. Если запрос настроен правильно и идентификатор существует, мы должны увидеть детали заказа, включая заказанные продукты.

Написание сценариев в Postman
Postman позволяет нам писать сценарии в двух местах: в сценарии предварительного запроса и в тестовом сценарии.

Сценарий предварительного запроса
Сценарий предварительного запроса выполняется перед отправкой запроса. Его можно использовать для выполнения любых необходимых действий или настройки переменных перед выполнением запроса.

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

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

Чтобы написать тестовый сценарий, мы можем использовать функцию JavaScript console.log для вывода сообщения. Скрипт будет выполнен после отправки запроса, и любой вывод будет виден в результатах теста.

Важно отметить, что JavaScript чувствителен к регистру, поэтому мы должны быть осторожны с нашим кодом, чтобы избежать ошибок.

В этом случае мы получим ошибку, потому что скрипт написан неправильно. Однако, если мы напишем скрипт правильно, мы ничего не увидим, потому что вывод будет выведен на консоль Postman. Консоль Postman — это инструмент, который важно знать и использовать при написании скриптов в Postman. Чтобы открыть консоль, нажмите «Консоль» в левом нижнем углу. Вы можете очистить консоль, нажав кнопку «Очистить». Консоль отображает информацию о запросах и ответах в хронологическом порядке. Используя консоль, вы можете отлаживать свои скрипты и понимать свои запросы.

Чтобы отобразить сообщение перед отправкой запроса, вы можете использовать сценарий предварительного запроса. В сценарий предварительного запроса добавьте код console.log('Привет из сценария предварительного запроса'); и нажмите на кнопку отправить. Сообщение будет отображаться в консоли перед отправкой запроса. Вы можете использовать функцию console.clear() в сценарии предварительного запроса, чтобы очищать консоль при каждом запросе.

В этой лекции мы напишем наш первый тест API в Postman. Мы будем использовать консоль Postman, чтобы проверить, равен ли код состояния ответа 200. Вы можете найти полезные скрипты на панели фрагментов в правой части редактора кода. Прокрутите фрагменты, пока не найдете код состояния 200 script. Нажмите на нее, чтобы сгенерировать код. Этот код использует JavaScript и содержит утверждение, чтобы проверить, равен ли код состояния 200. Когда вы запустите код, вы увидите результаты теста в нижней части Postman. Результаты теста покажут, прошел тест или нет.

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

Вы скоро почувствуете это на себе, поэтому мы создали этот код здесь, просто нажав одну кнопку. Я уже не совсем понимаю, что именно здесь происходит. Как работает этот код и как мы можем написать более продвинутые тесты? Итак, чтобы понять этот код, написанный на JavaScript, и даже написать более сложный код, нам нужно изучить несколько основ JavaScript.

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

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

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

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

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

Итак, давайте продолжим, фактически определив переменную, которая называется jamie. Я собираюсь использовать ключевое слово let, которое используется для определения новой переменной. Итак, мы напишем здесь let, а затем нам нужно указать имя переменной, как на банке, на этикетке. Итак, мы можем видеть здесь имя. Затем я поставлю знак равенства и в кавычках поставлю здесь имя Джейми. Когда мы работаем со строками, такими как имена, любой текст или что-то в этом роде, всегда важно заключать это в кавычки. Это когда у нас есть строка. Вы можете использовать одинарные или двойные кавычки по своему усмотрению.

Теперь, если мы просто запустим этот код, ничего не произойдет. Итак, важно помнить, что если вы хотите проверить, что находится внутри переменной имени, то нам придется использовать здесь console.log, и что мы собираемся здесь делать, мы собираемся передать имя между скобками. Мы собираемся написать имя в этом случае. Важно, чтобы вы не ставили кавычки. Итак, позвольте мне показать вам. Мы собираемся щелкнуть здесь, чтобы отправить, и то, что мы собираемся получить обратно, это Джейми.

Итак, здесь происходит то, что мы не используем имя в кавычках, мы фактически ссылаемся на имя переменной. И затем, ссылаясь на имя переменной, мы, по сути, пытаемся зарегистрировать эту переменную. Итак, каково значение этой переменной? Ну, это Джейми. Хорошо, давайте так и напишем. Итак, вот почему Джейми появляется здесь, в консоли.

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

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

Переменные
Переменная — это именованный контейнер, который может содержать значение. Его можно изменить во время выполнения скрипта. Переменные пишутся верблюжьим регистром, причем первая буква каждого слова заглавная, кроме первого слова. Например, firstName и fullName являются допустимыми именами переменных.

Константы
С другой стороны, константа — это переменная, которую нельзя изменить после ее определения. Он написан на верблюжьем регистре и объявлен с использованием ключевого слова const. Константы полезны для хранения значений, которые не следует изменять, таких как год рождения человека или математические константы, такие как количество секунд в часе.

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

Пример:
let name = Jamie;console.log(name); // Вывод: Джейми{ пусть имя = Джейк; console.log(имя); // Вывод: Джейк} console.log(name); // Вывод: Jamie
В приведенном выше примере у нас есть имя переменной, объявленное в глобальной области видимости. Внутри блока кода у нас есть еще одна переменная с таким же именем. Блок кода имеет собственную область видимости, что позволяет нам переопределить переменную, не затрагивая глобальную область видимости. Однако за пределами блока кода глобальная переменная по-прежнему доступна.

Выполняется доступ к переменной с именем jig. Если мы удалим первое объявление, мы получим ошибку ссылки, потому что доступ к переменной осуществляется из глобальной области видимости, где она не была определена. Чтобы определить его только в глобальной области видимости, мы можем использовать latinaname вместо let name. Таким образом, мы не определяем новую переменную, а используем одну из глобальной области видимости. В JavaScript блоки кода действуют как односторонние зеркала в комнате для допросов. Переменные, определенные внутри блока кода, являются частными, тогда как переменные в глобальном пространстве доступны всем.

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

Строки и числа являются знакомыми типами данных. Если вы не уверены в типе данных значения, вы можете использовать ключевое слово typeof в JavaScript, чтобы проверить его. Все, что заключено в кавычки, даже если это число, считается строкой. Чтобы представить состояние чего-либо, например включенного или выключенного, вы можете использовать логический тип данных, который может быть только истинным или ложным. Неопределенный тип данных представляет что-то, что не определено.

Если у вас есть группа связанных свойств, вы можете использовать объекты для их группировки. Объекты определяются с помощью фигурных скобок, а свойства добавляются внутри фигурных скобок с помощью пар ключ-значение.

Важно отметить, что объекты JavaScript — это не то же самое, что JSON. JSON — это представление объекта JavaScript, но они не взаимозаменяемы.

Между этим и JSON есть некоторое сходство, но это просто объект JavaScript. Чтобы получить доступ к свойству, мы используем точечную нотацию, например, person.name. Если нам нужно добавить новое свойство, мы можем сделать это, используя person.email = [email protected]. При доступе к свойству со специальными символами нам нужно использовать нотацию с квадратными скобками, например, person[email-with-dash]. Когда свойство не существует, JavaScript возвращает неопределенное значение. Чтобы создать коллекцию элементов, мы можем использовать массив. Например, мы можем создать массив хобби: хобби = [чтение, путешествия, садоводство, кулинария].