Недавно обновлялся старый проект, первый шаг - сменить версию ноды с
4.x
обновитесь до8.x
, опасаюсь, что будут проблемы с обновлением, поэтому интерфейс сервиса нужно верифицировать; Если вы вручную вводите различные URL-адреса, проверьте человеческую плоть, один или два в порядке, весь сервис. . Существуют десятки интерфейсов, что является пустой тратой времени -.-; Поскольку это проект службы чистого интерфейса, планируется провести волну автоматизированного тестирования соответствующего API; Поэтому я начал искать соответствующие инструменты и вдруг обнаружил, что обычно используюPostMan
Кажется, он также поддерживает написание тестовых случаев -.-, поэтому я следил за документацией для волны; Днем я был очень взволнован, я использовал его раньшеPostMan
редактировать толькоHeader
,Добавить кBody
Отправить запрос, который никогда не думал получитьPostMan
Приходите к тестированию, используйте его на полудня и почувствуйте, что я обнаружил новый континент.
Установка Почтальона
Вроде скачать и пользоватьсяPostMan
Должен пройти через стену -.-
Потому что теперь есть две формы приложения:
-
chrome
плагин(От него скоро отказываются, рекомендуется использовать независимое приложение) - Автономное приложение
И вам нужно войти в свою учетную запись, когда вы ее используете.Я вхожу прямо здесь.Google
учетная запись-. - Вроде есть и другие способы, но я не пробовал.
Адрес облачного диска независимой версии приложения (Mac
Только сегодня скачал версию 6.0.10, пожалуйста, поднимите, если она вам нужна):
Ссылка: https://pan.baidu.com/s/18CDp2MUQCLgk_USlmVc-Gw Пароль:mrpf
После загрузки и распаковки вы можете запустить его напрямую, а затем зарегистрировать учетную запись.Визуальная учетная запись в основном используется для последующего группового обмена (вы можете напрямую делиться своими записями звонков с другими).
Отправить запрос
ЭтоPostMan
Самое простое использование — отправить запрос.
можно установитьHeader
,Body
и другая информация.
Collections
Мы можем сохранять запрос, отправляемый каждый раз, чтобы в следующий раз, когда мы запрашиваем интерфейс, мы могли вызывать его напрямую.
Если запрос сохранен, он будет сохранен вCollections
Зайдите внутрь, похоже на коллекцию.PostMan
Предоставляет метод для запуска всегоCollections
во всех запросах.
Затем мы можем запускать все запросы в коллекции напрямую, когда это необходимо.
При сохранении записи запроса выберите соответствующийCollection
Только что
Начать тестирование API
расположение тестового скрипта
PostMan
Тестовый скрипт, написанный для запроса, в этой позиции используетJavaScript
синтаксис с некоторыми предварительно сконфигурированными фрагментами кода справа.
и мы можемPre-request Script
скрипт для выполнения перед отправкой запроса.
какой-то простой синтаксис
PostMan
Утверждение также предоставляется, чтобы помочь с некоторой проверкой.
tests['Status code is 200'] = responseCode.code === 200
tests['Data length >= 10'] = JSON.parse(responseBody).data.length >= 10
назначить какtrue
значит пройти,false
за неудачу.tests
Роль прямого назначения относительно ограничена, если вы выполняете какие-то другие асинхронные операции в скрипте, вам нужно использоватьpm.test
.
setTimeout(() => {
pm.test("test check", function () {
pm.expect(false).to.be.true
})
})
используйте только верхниеtests
Назначить+pm.test/pm.expect
Он уже отвечает нашим потребностям, а остальное — просто синтаксический сахар поверх него.Различные примеры синтаксиса
Отправить запрос в тестовом скрипте
мы можем получитьAPI
После возврата результата отправьте несколько новых запросов на основе этого результата, а затем добавьте утверждения.
let responseJSON = JSON.parse(responseBody)
// 获取关注的第一个用户,并请求他的用户信息
pm.sendRequest(responseJSON[0].url, function (err, response) {
let responseJSON = response.json()
pm.test('has email', function () {
pm.expect(responseJSON.email).is.be.true // 如果用户email不存在,断言则会失败
})
});
Если у нас есть динамический интерфейс для тестирования, мы можем попробовать этот способ написания.
возврат интерфейса первого уровняList
Вторичный интерфейс основан наList
изID
для получения соответствующей информации.
Как справиться с большим количеством повторяющейся логики утверждений
Нет никаких проблем с написанием соответствующего сценария утверждения для одного API.
Но если это для всего проектаAPI
писать, похоже на суждениеstatusCode
Такое утверждение выглядело бы излишним, поэтомуPostMan
Это также принимается во внимание.
в нашем творенииCollection
А в нижней папке мы можем напрямую писать сценарии утверждений для всех запросов в этой директории.
Tests
Ниже напишите целевой сценарий утверждения.
использование переменных
PostMan
Предусмотрены два типа переменных, один из которыхglobal
,одинenvironment
.
global
Как работает код:
pm.globals.set("variable_key", "variable_value") // set variable
pm.globals.get("variable_key") // get variable
pm.globals.unset("variable_key") // remove variable
Настройка через графический интерфейс:
После настройки мы можем использовать его следующим образом:
Мы можем использовать эти переменные в основном везде, где мы можем печатать.
environment
Переменная среды, это весовой коэффициентglobal
Высшие переменные — это значения, которые устанавливаются для определенных сред.
Операция аналогична.
При использовании метода кодовой операции просто поместитеglobals
заменитьenvironment
Вот и все.
При инициировании запроса или отправке всех запросов одним щелчком мыши мы можем проверить соответствующую среду на использование разных переменных.
При тестировании большого количества API используйтеenvironment
установитьdomain
будет хорошим выбором.
Итак, в запросе нам достаточно написать:
{{domain}}/res1
{{domain}}/res2
domain: https://api.github.com
Простой пример:
путем непосредственного запускаCollection
, мы можем интуитивно увидеть все ситуации проверки интерфейса.
использованная литература
использовался раньшеPostMan
, в лучшем случае имитироватьPOST
Просьба, я просто недавно столкнулся с подобной потребностью, и обнаружил, что оригиналPostMan
Можно сделать больше.
Это просто использованиеPostMan
Самые основные операции для тестирования API, и есть некоторые функции, которые я не использовал в настоящее время, такие как интеграционное тестирование, генерацияAPI
документы и тому подобное.
Интерфейс эквивалентен способу получения и использования сервисных ресурсов и должен принадлежать ядру продукта. Следовательно, тест необходим, и прежде чем сдавать QA-студентам, необходимо сэкономить время, проведя тест самостоятельно.