Нужно ли запускать только часть запросов в Postman?

#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:

вы можете создавать папки и организовывать тесты, подобные

  1. smoke_and_regression
  2. 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

Запускались только запросы, в названии которых есть «Копировать»