Привет всем, мы снова встретились, я ваш друг Цюаньчжаньцзюнь
postmanэто поддержкаhttpОтладка и тестирование интерфейса протоколаинструмент,Его главная особенность – мощная функция.,Простой и удобный в использовании.
Независимо от того, занимаются ли разработчики интерфейсом отладкой или тестировщики, мы предпочитаем использовать postman.
Тогда давайте представим, какие функции есть у почтальона и что они могут делать. Давайте сначала интуитивно через картинку рассмотрим функции, включенные в почтальон.
картина
Конечно, приведенные выше функции показывают только часть функций почтальона. Чтобы более полно отразить характеристики этого инструмента, я объясню его с точки зрения следующих трех измерений. Они есть:
Postman больше не поддерживает версию браузера после 2018 года. Поэтому, если вы хотите использовать его, вам необходимо сначала загрузить клиент, а затем установить его. В качестве примера для установки ниже будет использована система Windows.
1. Загрузите и установите
Шаги установки почтальона:
1. Посетите официальный сайт почтальона и загрузите последнюю версию.
Посетите адрес: https://www.getpostman.com/
2. Войдите на страницу загрузки и загрузите соответствующую версию для вашего компьютера.
картина
3. Дважды щелкните загруженный установочный пакет, чтобы войти в интерфейс установки, пока не появится интерфейс входа и регистрации пользователя.
Для личного использования просто выберите «Пропустить», и вы войдете в основной интерфейс почтальона. Postman успешно установлен (рисунок ниже).
Если вы используете его в команде, вы можете зарегистрироваться. После регистрации вы можете использовать свою учетную запись, чтобы присоединиться к рабочей области команды.
картина
2. Инструкции по навигации по интерфейсу
Друзья, впервые использующие Postman, могут быть не знакомы с некоторыми элементами интерфейса. Вот изображение, иллюстрирующее значение этих элементов.
картина
3. Отправьте первый запрос
Если вы впервые используете почтальон для отправки запроса, следующий пример можно использовать в качестве базового введения, которое поможет нам создать первоначальное впечатление.
1. Откройте почтальон и нажмите знак + плюс, чтобы открыть новую страницу запроса.
2. Введите адрес запроса в запрашиваемый URL:
http://www.weather.com.cn/data/sk/101010100.html
3. Нажмите кнопку «Отправить», и вы увидите данные ответа json с сервера на нижней панели.
картина
1. Распространенные типы запросов интерфейса
Существует четыре распространенных типа интерфейсов, а именно интерфейсы, содержащие параметры запроса, интерфейсы типа формы, интерфейсы типа json и интерфейсы, содержащие загруженные файлы. Ниже описаны эти четыре типа интерфейсов и способы их запроса в Postman.
1.1. Запрос интерфейса для параметров запроса.
Что такое параметры запроса?
Так называемые параметры запроса на самом деле представляют собой часть URL-адреса после вопросительного знака (?), которая называется параметрами запроса, например: http://cx.shouji.360.cn/phonearea.php?number=13012345678. . В этом интерфейсе параметр запроса: номер=13012345678.
Эта часть состоит из пар ключ-значение.,Формат::key1=value1&key2=value2, Если существует несколько наборов пар ключ-значение,Хотите использовать&отдельный 。
Как вызвать почтальона
Реализовать запросы для этого типа интерфейса в почтальоне очень просто. Обычно вам нужно указать два параметра: один — метод запроса, а другой — адрес запроса.
Для вышеуказанного интерфейса указан адрес и метод запроса — get. Тогда вам нужно всего лишь заполнить эти два параметра в почтальоне для запроса.
Конкретные этапы реализации:
1. Откройте почтальон и создайте новый запрос.
2. Выберите метод запроса: GET в методе запроса. Поскольку в Postman используется метод запроса по умолчанию, этот шаг можно игнорировать.
3. Введите адрес в URL-адресе интерфейса и нажмите кнопку «Отправить», чтобы отправить запрос.
картина
Примечание. Как правило, URL-адрес параметра запроса можно скопировать непосредственно в адресную строку входного URL-адреса. Конечно, параметр запроса также можно ввести в Params. Эффект обоих одинаков.
1.2 Запрос интерфейса типа формы
Что такое форма?
Мы все знаем, что при отправке HTTP-запроса запрос обычно состоит из трех частей: строки запроса, заголовка запроса и тела запроса.
Разные интерфейсы имеют разные типы данных тела запроса. Более распространенным является тип формы. Так что же такое тип формы? Проще говоря, нужно проверить Content-Type в заголовке запроса. Если его значение равно: application/x-www-form-urlencoded, это означает, что данные, отправленные клиентом, передаются в форме. Смотрите картинку ниже:
картина
Как сделать запрос в почтальоне?
Если мы запросим интерфейс, показанный выше, в почтальоне, нам нужно будет заполнить только четыре параметра (см. рисунок выше):
Этапы реализации:
картина
1.3 Форма запроса на загрузку файлов
При тестировании интерфейсов мы часто сталкиваемся с интерфейсами, требующими загрузки файлов, например обновление аватаров в WeChat. Для этого необходимо использовать: multipart/form-data. Это тоже форма, но она поддерживает как запросы форм, так и загрузку файлов. Данные в сообщении запроса часто следующие.
POST http://localhost/index.php/home/Uploadify/imageUp/savepath/head_pic/pictitle/banner/dir/images.html HTTP/1.1
Content-Type: multipart/form-data
file=a1.jpg
Как запросить этот тип интерфейса в почтальоне? Давайте сначала разберем параметры, которые необходимо заполнить.
Этапы реализации:
картина
1.4 запрос интерфейса типа json
Это должна быть наиболее распространенная ситуация при тестировании интерфейса, то есть тип тела запроса — json. Давайте посмотрим на это сообщение запроса.
POST http://xxx/api/sys/login HTTP/1.1
Content-Type: application/json;charset=UTF-8
{"account":"root","password":"123456"}
Основываясь на приведенном выше сообщении, мы можем проанализировать, что нам нужно заполнить в почтальоне только четыре параметра, а именно:
Этапы реализации:
картина
2. Анализ данных ответа интерфейса
Данные ответа — это результат, возвращаемый после обработки сервером после отправки запроса. Ответ состоит из трех частей: строки состояния, заголовка ответа и тела ответа. Давайте посмотрим на отображение данных ответа почтальона.
картина
Отображение данных ответа в почтальоне:
Так какую же роль эти данные играют в нашем тестировании интерфейса?
Далее давайте сосредоточимся на нескольких темах отображения в Body, а именно: Pretty, Raw и Preview.
картина
Красиво: в переводе на китайский это означает «красиво». То есть все возвращаемые данные Body, просматриваемые в этом теге, отформатированы. Отформатированные данные выглядят более интуитивно понятными, поэтому Postman также отображает эту опцию по умолчанию. Например, если вы вернете страницу html, она будет отформатирована в формате HTML и отображена. Например, если вы вернете json, она также будет отформатирована и отображена в формате json.
Необработанные данные: переведены на китайский язык без обработки, то есть необработанные данные обычно имеют формат этой статьи и не форматируются. Эта опция обычно доступна в инструментах захвата пакетов.
Предварительный просмотр: в переводе на китайский язык это предварительный просмотр. Этот параметр обычно особенно эффективен для страниц, возвращающих HTML. Например, после запроса Baidu на возврат результатов вы можете напрямую просмотреть страницу, щелкнув этот параметр, как показано ниже. В то же время эта опция аналогична предварительному просмотру при перехвате пакетов браузера.
картина
3. Управление интерфейсом (Коллекция)
Когда мы поддерживаем множество вариантов использования в одной или нескольких системах, первое, что приходит на ум, — это классифицировать варианты использования и управлять ими, а также мы надеемся провести регрессионное тестирование для этой группы вариантов использования. Postman также предоставляет такую функцию — Collection. Эта коллекция может удовлетворить наши потребности, упомянутые выше.
Давайте сначала подведем краткий итог сценариев использования функции «Коллекция».
Так как же Collection управляет вариантами использования? Сначала представьте, что мы хотим протестировать систему. В системе имеется несколько модулей, и в каждом модуле есть множество вариантов использования тестового интерфейса. Итак, основываясь на этом сценарии, давайте реализуем его через Collection:
1. Нажмите «Коллекция», нажмите «+Новая коллекция» и во всплывающем поле ввода введите название коллекции (под этим можно понимать тестируемую систему).
картина
2. Щелкните правой кнопкой мыши по вновь созданной Коллекции, нажмите «Добавить папку» и во всплывающем диалоговом окне введите имя папки (под этим можно понимать модуль в системе).
картина
3. Выберите вновь созданную папку, нажмите «Добавить запрос» и введите имя запроса во всплывающем диалоговом окне. Это интерфейс, который мы тестируем, и его также можно рассматривать как тестовый пример.
картина
Затем с помощью трех вышеуказанных шагов достигается такой эффект, как показано на рисунке:
картина
Таким образом, с помощью описанных выше операций мы реализовали простейшую демонстрационную модель. Но на самом деле наличие этой функции — это начало обучения почтальона, потому что на этой функции основаны многие функции, такие как пакетное выполнение вариантов использования, Mock, документация интерфейса и другие функции.
4. Пакетное выполнение запросов интерфейса.
Когда мы пишем множество тестовых примеров интерфейса в коллекции и хотим выполнить эти тестовые примеры вместе, как нам это сделать в postman?
Этапы реализации:
1. Выберите коллекцию, щелкните правый треугольник и нажмите «Выполнить» во всплывающем интерфейсе.
картина
2. Откроется интерфейс Collection Runner, который по умолчанию выберет все варианты использования в коллекции.
картина
3. Нажмите «Выполнить коллекцию» в нижней части интерфейса, чтобы запустить все тестовые примеры, выбранные в коллекции.
картина
Краткое объяснение функций в красных полях выше:
Вообще говоря, эта функция в основном используется для пакетного запуска всех или части вариантов использования в коллекции для достижения цели ручного регрессионного тестирования.
5. Отладка журнала
При тестировании интерфейса часто выдаются сообщения об ошибках из-за проблем с написанием кода. В это время очень важно проверять журнал. Postman также предоставляет такую функцию, которая позволяет нам писать операторы печати в скрипте и просматривать напечатанное. результаты ; Вы также можете просмотреть информацию журнала каждого запроса.
JavaScript используется для написания операторов печати журналов в почтальоне, а место записи может находиться в скрипте предварительного запроса или теге «Тесты». Напишите оператор печати, например: console.log («Я журнал»)
картина
Так как же увидеть напечатанную дату? В почтальоне два входа. Первый вход: обзорно-показной пульт почтальона.
Второй вход — это третий значок в левом нижнем углу.
картина
Открытый интерфейс журнала:
картина
Здесь есть несколько практических функций:
Короче говоря, с помощью этой функции, когда мы запрашиваем ошибку интерфейса, мы можем легко найти причину проблемы, распечатав журнал ответов.
6. Аффирмация
Без ассертов мы можем проводить только функциональное тестирование интерфейса, но с ассертами это дает нам условия для автоматизации, а ассерты в почтальоне очень удобны и мощны.
Давайте сначала разберемся в некоторых характеристиках утверждений почтальона, а именно:
Выше мы говорили, что написанный код утверждения представляет собой JavaScript, так что, если вы не можете его написать? Не волнуйтесь, потому что Postman встроил для нас некоторые часто используемые утверждения. При его использовании просто щелкните одно из утверждений справа, и соответствующий блок кода утверждения будет автоматически сгенерирован в текстовом поле.
картина
Далее давайте разберемся с некоторыми часто используемыми утверждениями, которые разделены по компонентам ответа, а именно: строке состояния, заголовку ответа и телу ответа.
Строка состояния также содержит коды состояния и сообщения о состоянии. Вы также можете утверждать эти два в почтальоне
Утверждение в строке состояния:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200); //Заполненные здесь 200 — это ожидаемый результат, а фактический результат — это результат возврата запроса.
});
pm.test("Status code name has string", function () {
pm.response.to.have.status("OK"); //сообщение о статусе ответа на утверждение содержит OK
});
Утверждения в заголовках ответов
pm.test("Content-Type is present",function () {
pm.response.to.have.header("Content-Type"); //утверждение Хранение заголовка ответасуществовать"Content-Type"
});
Тело ответа Assert (выделено)
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
//аннотация
pm.expect(pm.response.text()).to.include("string") Получить текст ответа, содержащий строку
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
//аннотация
pm.response.to.have.body("response_body_string"); Получите тело ответа, равное response_body_string.
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
//аннотация
var jsonData = pm.response.json() Получите тело ответа, отобразите его в формате json и назначьте его jsonData. Примечание. Тело ответа должно быть возвращено в формате JSON, иначе будет сообщено об ошибке.
pm.expect(jsonData.value).to.eql(100) Получите значение со значением имени ключа в jsonData, а затем сравните его со 100.
Время отклика (обычно используется для тестирования производительности)
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200); //утверждениевремя ответа<200ms
});
Описание случая:
Сделайте утверждения по данным, возвращаемым следующими интерфейсами:
{
"cityid": "101120101",
"city": «Цзинань»,
"update_time": "2020-04-17 10:50",
"wea": "прозрачный",
"wea_img": "qing",
"tem": "16",
"tem_day": "20",
"tem_night": "9",
"win": «Северо-восточный ветер»,
"win_speed": «Уровень 3»,
"win_meter": «Менее 12 км/ч»,
"air": "113"
}
картина
Подводя итог, можно сказать, что если вы используете Postman для тестирования интерфейса, эта функция утверждения незаменима. Среди них очень важны два утверждения, которые мы часто утверждаем, и JSON.
7. Переменные (глобальные/коллекция/среда)
Переменные позволяют нам хранить и повторно использовать их значения в запросе или скрипте. Сохраняя значение в переменной, на него можно ссылаться в коллекции, среде или запросе.
Еще одна очень важная для нас функция — тестирование интерфейса.
Три часто используемые переменные в почтальоне — это глобальные переменные, переменные среды и переменные коллекции.
в,Их масштабы варьируются от больших до маленьких.:общая ситуацияпеременная>собиратьпеременная>средапеременная . Если одна и та же переменная объявлена в нескольких разных областях видимости, первой будет использоваться переменная с наименьшей областью действия.
Если вы хотите использовать значение переменной, вам нужно всего два шага, а именно определение переменной и ее получение.
Определить переменные
Чтобы определить глобальные переменные и переменные среды, щелкните маленькую шестеренку в правом верхнем углу, и появится следующий интерфейс. Вы можете определить глобальные переменные или переменные среды в соответствии с вашими потребностями.
картина
Определенные глобальные переменные и переменные среды можно быстро просмотреть:
картина
Определить переменные коллекции
Выберите коллекцию, откройте меню «Просмотреть дополнительные действия» (…) и нажмите «Изменить». Выберите вкладку «Переменные», чтобы изменить или добавить переменные коллекции.
картина
Определить переменные Помимо вышеперечисленных способов, есть еще один способ . Однако этот метод определен в разных местах и написан по-разному.
Определено в URL, параметрах, авторизации, заголовках, теле:
1. Вручную создайте пустое имя переменной.
2. Щелкните правой кнопкой мыши нужное значение в указанной выше позиции, выберите «Установить: Среда глобальная» | выберите имя переменной, и после щелчка оно будет сохранено в этой переменной.
картина
существовать Тесты, сценарий предварительных запросов:
Получить переменные
После определения переменных вы можете использовать их. . Следует отметить, что существуют разные локации. переменные, правила написания тоже разные. 。
Если параметр запроса существует в Tweet переменные, независимо от того, нужно ли получить глобальную переменную, переменную среды или переменную коллекцию, способ получения - одно и то же правило записи: { {Имя переменной}} 。
Если там написан код (Тесты, Предварительные запросы Script)Получить переменные, для получения разных типов переменных пишутся разные коды, подробности следующие:
картина
Переменные используются в самых разных сценариях. Например, ассоциация интерфейса, о которой мы поговорим позже, и предварительный сценарий запроса будут использовать переменные.
8. Запросить предварительный сценарий
Предварительный сценарий на самом деле представляет собой сценарий JavaScript, написанный на языке Pre-requests Script. Если вы хотите понять эту функцию, вам необходимо сначала понять последовательность ее выполнения. Итак, давайте посмотрим на последовательность его выполнения.
Видно, что перед отправкой запроса сначала будет выполнен код в сценарии предварительного запроса. Так что же эта функция делает в реальной работе?
Основной сценарий: в обычных обстоятельствах эту функцию можно использовать, если данные интерфейса необходимо дополнительно обработать перед отправкой запроса. Например, пароль для интерфейса входа в систему необходимо зашифровать перед отправкой, после чего вы можете добавить его. предварительная обработка шифрования выполняется в интерфейсе. Другой пример: входные параметры некоторых интерфейсов имеют случайные числа, и значения параметров интерфейса будут меняться каждый раз, когда делается запрос. Вы можете написать код. генерировать случайные числа в предварительном скрипте.
Вообще говоря, функцию предварительного сценария можно использовать для дальнейшей обработки данных нашего запроса перед запросом интерфейса.
Далее давайте посмотрим, как эта функция используется через кейс?
Случай:
картина
Этапы реализации:
картина
Короче говоря, этот предварительный сценарий также очень полезен для тестирования интерфейса. В некоторых сложных сценариях мы можем использовать предварительный сценарий для обработки, а затем запроса интерфейса.
9. Ассоциация интерфейса
Такая ситуация часто возникает в протестированных нами интерфейсах. Возвращаемые данные предыдущего интерфейса являются входным параметром следующего интерфейса, поэтому эти два интерфейса связаны. Такого рода ассоциации очень распространены при тестировании интерфейса, так как же реализовать такую ассоциацию в почтальоне?
Идеи реализации:
Случай:
{
"url": "/public/upload/user//head_pic//ba51d1c2f7f7b98dfb5cad90846e2d79.jpg",
"title": "banner",
"original": "",
"state": "SUCCESS",
"path": "images"
}
URL-адрес интерфейса предварительного просмотра изображения:
http://localhost/public/upload/user//head_pic//ba51d1c2f7f7b98dfb5cad90846e2d79.jpg. Видно, что вторая половина URL-адреса этого интерфейса на самом деле является значением URL-адреса, возвращенного предыдущим интерфейсом. Тогда эти два интерфейса связаны. Затем в почтальоне вы можете завершить реализацию ассоциации этих двух интерфейсов, выполнив следующие три шага.
Этапы реализации:
картина
Видно, что все решения, связанные с интерфейсами, используют знания переменных. То есть, пока вы знаете значение, которое нужно извлечь, вы можете сохранить это значение и затем использовать его в других интерфейсах.
10. Получение общей возвращаемой стоимости
При тестировании интерфейса данные, возвращаемые интерфейсом запроса, представляют собой очень сложные данные json с несколькими уровнями вложенности. Как получить такие уровни данных в Postman?
Случай 1: Многоуровневое вложение json, получение значения user_id
{
"code": 0,
"message": «Запрос успешен!»,
"data": {
"user_id": "1252163151781167104"
}
}
//Получаем данные тела в формате JSON
var jsonData = pm.response.json()
// Получить значение user_id, полученный через.
var user_id = jsonData.data.user_id
Случай 2: есть список в формате json, второй элемент получаем в баллах.
{
"code": 0,
"message": «Запрос успешен!»,
"data": {
"roles": {
"api": [
"API-USER-DELETE"
],
"points": [
"point-user-delete",
"POINT-USER-UPDATE",
"POINT-USER-ADD"
]
},
"authCache": null
}
}
//Получаем данные тела в формате JSON
var jsonData = pm.response.json()
// Получить значение user_id, получает элемент в списке через индекс
var user_id = jsonData.data.roles.points[1]
Случай 3: получить последний элемент из списка
{
"code": 0,
"message": «Запрос успешен!»,
"data": {
"total": 24,
"rows": [
{
"id": "1066370498633486336",
"mobile": "15812340003",
"username": "zbz"
},
{
"id": "1071632760222810112",
"mobile": "16612094236",
"username": "llx"
},
...
{
"id": "1075383133106425856",
"mobile": "13523679872",
"username": "test001",
},
//Получаем данные тела в формате JSON
var jsonData = pm.response.json()
// Получите значение id и получите последний элемент в списке через срез (-1).
var id = jsonData.data.rows.slice(-1)[0]
Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Этот сайт предоставляет только услуги по хранению информации, не имеет никаких прав собственности и не принимает на себя соответствующие юридические обязательства. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/193118.html Исходная ссылка: https://javaforall.cn