Преимущества тестирования
Все согласны с тем, что тестирование важно, но не все его делают. Всякий раз, когда вы добавляете новый код, тесты могут гарантировать, что ваш API работает должным образом. С помощью postman вы можете писать и запускать тестовые сценарии для всех API.
тест в почтальоне
В postman вы можете использовать динамические переменные, передавать данные между запросами и писать тесты, добавляя скрипты к запросам. написать наPre-request Script
Код во вкладке будет выполняться до отправки запроса, а код, написанный вTests
Код во вкладке будет выполнен после получения ответа.
Test Results
вкладку, чтобы увидеть соответствующие результаты теста. Кроме того, для быстрого написания тестовых скриптов postman предоставляет некоторые общие фрагменты кода (code snippets). Ниже представлена соответствующая схема функциональной структуры:
писать тесты
пример:
pm.test("response is ok", function () {
pm.response.to.have.status(200);
});
pm.test("environment to be production", function () {
pm.expect(pm.environment.get("env")).to.equal("production");
});
pm.test("response must be valid and have a body", function () {
pm.response.to.be.ok;
pm.response.to.be.withBody;
pm.response.to.be.json;
});
var schema = {
type: 'object',
properties: {
appID: {
type: 'number',
},
avatar: {
type: 'string',
}
}
}
pm.test('Schema is valid', function() {
var jsonData = pm.response.json().data;
pm.expect(tv4.validate(jsonData, schema)).to.be.true;
});
pm.test()
Чтобы следовать спецификации postman, весь тестовый код должен быть написан в функции pm.test(). Первый параметр — это имя теста, а второй параметр — это функция, возвращающая логическое значение. То есть, если эта функция возвращает true, это означает, что тест пройден, иначе тест не пройден.
pm.expect()
Эта функция assert основана на библиотеке тестирования JavaScript.ChaiJS BDDпостроен. С подобным синтаксисом вы можете легко делать утверждения для данных или некоторых переменных в ответе.
pm.response.to.be.*
Этот объект может обеспечить общие проверки ответа. Например, соответствует ли код состояния ожидаемому и т. д.
tv4.validate()
Первый параметр — это данные для проверки, а второй параметр — схема json. Возвращает true, если передано, и false, если не удалось. Если вы хотите быстро изучить спецификацию схемы json, вы можете обратиться к https://www.jianshu.com/p/8278eb2458c4?winzoom=1.tv4Это встроенный валидатор json для почтальона. это основано наjson-schema draft v4, Проверяйте простые значения или сложные объекты json с помощью богатого синтаксиса проверки.
Подробную информацию о распространенных API см. на странице https://learning.getpostman.com/docs/postman/scripts/postman_sandbox_api_reference.
запустить тест
Обычно мы запускаем тесты для нескольких API, потому что у нас много API или тестовый сценарий состоит из нескольких API. Поэтому мы добавим их в коллекцию для запуска.
почтальон (пользовательский интерфейс)
Обратите внимание, что запросы выполняются линейно в порядке, указанном в коллекциях. Если вы хотите изменить порядок выполнения, вы можете изменить порядок в Коллекциях или использоватьpostman.setNextRequest("request_name")
; Если вы хотите остановить весь процесс, вы можете сделатьpostman.setNextRequest(null);
newman (инструмент командной строки)
1. Экспорт коллекций в формате json из почтальона
2. Установите newman глобально,npm install -g newman
3. Выполните команду,newman run sample-collection.json
Подробнее о том, как его использовать, см.newman
Дженкинс в сочетании с автоматизацией
Универсальная схема заключается в выполнении после отправки кода или после включения ветви складаnewman -c jenkins_demo.postman_collection --exitCode 1
. Обратите внимание на параметр --exitCode, он указывает Jenkins вернуть код выхода 1, если тест не пройден. Таким образом, Дженкинс может узнать, был ли тестовый прогон успешным или нет.
Суммировать
Все мы знаем, что если рабочий хочет делать свою работу хорошо, он должен сначала наточить свои инструменты. Postman — хороший инструмент для тестирования на основе API. Кроме того, для веб-разработчиков postman также является широко используемым средством отладки http. Его умелое освоение также может в определенной степени повысить эффективность нашей работы.