#postman #postman-collection-runner
#postman #postman-collection-runner
Вопрос:
У нас есть много автоматизированных тестов уровня API, написанных как наборы запросов в Postman.
У нас есть скрипт для автоматического запуска всех коллекций.
Есть ли способ помечать / запускать только подмножество запросов, например, с некоторой меткой, например, как smoke suite, без копирования запросов в новые коллекции и последующего запуска явно (поскольку это приводит к необходимости поддерживать одни и те же тесты в 2 местах …)?
Могут быть метки, группы или какой-то скрипт, который пропускает запрос, если установлена переменная env…
Комментарии:
1. Должен быть лучший способ сделать это, чем создавать папки, которые в значительной степени избыточны. Может быть, контроль версий ? Но действительно кажется, что должна быть функция, при которой можно было бы отключить запрос на основе некоторой переменной среды, фильтровать запросы для запуска в Runner или что-то в этом роде.
2. добавьте пример getpostman.com/collections/73e771fe61f7781f8598
3. просто нажмите ctrol o для импорта и выберите link и используйте эту ссылку
Ответ №1:
вы можете создавать папки и организовывать тесты, подобные
- smoke_and_regression
- smoke_only и т. д
вы можете указать, какую папку запускать, используя аргумент —folder при использовании newman в качестве инструмента командной строки
вы также можете управлять потоком выполнения с помощью postman.setNextRequest .
а также вы можете запустить newman как модуль npm.
вам просто нужно написать логику для чтения файла коллекции и получения всех имен папок, содержащих «smoke», например, и передать его в виде массива
const newman = require('newman'); // require newman in your project
// call newman.run to pass `options` object and wait for callback
newman.run({
collection: require('./sample-collection.json'),
reporters: 'cli',
folder: folders
}, function (err) {
if (err) { throw err; }
console.log('collection run complete!');
});
Просто обновите комментарии:
в старом и новом интерфейсе вы можете выбрать, какую папку запускать в сборнике
Комментарии:
1. @Rob это было и в предыдущих версиях
![]()
2. в collection runner вы можете увидеть и отменить выбор, какой запрос или коллекции вы хотите запустить
3. да, вы также можете выбрать папку в пользовательском интерфейсе postman collection runner в старом приложении
4. вы можете удалить предыдущую версию по адресу dl.pstmn.io/download/version/7.36.5/osx64
5. пожалуйста, примите или проголосуйте, если это помогло в любом случае
Ответ №2:
Получить все запросы в коллекции:
вы также можете получить информацию обо всех запросах в коллекции, используя :
https://api.getpostman.com/collections/{{collection_UUID}}
чтобы получить uuid и ключ api goto :
https://app.getpostman.com
Теперь для генерации ключа api>
перейдите в настройки учетной записи> ключ api и сгенерируйте ключ api.
чтобы получить uuid коллекции, перейдите к конкретной рабочей области и коллекции и скопируйте часть uuid из url:
Теперь в вашей коллекции
Переименуйте все запросы как:
get user details [Regression][Smoke][Somethingelse]
get account details [Regression]
Затем создайте новый запрос с именем initial request и сохраните его как первый запрос в вашей коллекции:
url: https://api.getpostman.com/collections/8xxxxtheuuidyoucopied
авторизация: apikey-заголовок: ключ: X-Api-Ключ и значение: yourapikey
тестовый скрипт :
pm.environment.unset("requestToRun")
reqeustlist = pm.response.json().collection.item.map((a) => a.name)
requestToRun = reqeustlist.filter((a) => a.includes(pm.environment.get("tag")))
let val = requestToRun.pop()
pm.environment.set("requestToRun", requestToRun)
val ? postman.setNextRequest(val) : postman.setNextRequest(null)
Теперь установите переменную envirnoment как то, что вы хотите найти, например: запустите скрипт, содержащий текст «Регрессия», затем установите pm.environment.set("tag","Regression")
Теперь в вашей коллекции -добавить предварительный запрос:
if (pm.info.requestName !== "initial request") {
let requestToRun = pm.environment.get("requestToRun")
let val = requestToRun.pop()
pm.environment.set("requestToRun", requestToRun)
val ? postman.setNextRequest(val) : postman.setNextRequest(null)
}
Вывод:
Коллекция примеров:
https://www.getpostman.com/collections/73e771fe61f7781f8598
Запускались только запросы, в названии которых есть «Копировать»