Как добиться тестирования на основе данных с помощью postman и newman?

#api #automation #postman #cypress #newman

Вопрос:

У меня есть требование автоматизировать API, а также интегрировать их с конвейером Azure DevOps. В настоящее время я использую Cypress, и мне это удается.

Мои клиенты хотят использовать почтальона для автоматизации.

Я должен запустить один API с несколькими комбинациями, такими как различный набор параметров запроса с различным набором тела запроса.

Я знаю , что с помощью приспособления Cypress мы можем добиться тестирования на основе данных, но можем ли мы сделать то же самое с почтальоном, если да ? как мы можем интегрировать один и тот же конвейер в Azure для запуска различных комбинаций данных ?

Комментарии:

1. data-driven testing использование файла csv/json в postman ужасно, но мы можем сделать обходной путь, например, сохранить данные в массиве объектов, один запрос возьмет один объект из массива и запустится.

2. @lucasnguyen17 Можем ли мы интегрировать эти запросы в CI/CD, как в azure devops ? Где в этом случае будут храниться эти файлы csv/json ? и как указать запросу, какой файл csv/json выбрать и запустить?

3. К сожалению, нет. Вот почему управление данными в postman-отстой. community.postman.com/t/. … Вы можете следовать решению, о котором я упоминал ранее, если хотите, я могу сделать для вас образец кода.

4. @lucasnguyen17 знания халда опасны 🙂 тестирование на основе данных почтальона-самое простое . вы можете запустить его несколькими способами,

Ответ №1:

тестирование на основе данных в postman является прямым, заголовок csv-это имя переменной :

создайте csv-файл с именем data.csv :

 age
1
2
3
 

теперь вызовите переменную в любой части, например {{имя}}

например, пусть запрос будет :

 {

"user": "{{name}}"

}
 

Теперь запустите сценарий с помощью newman или collection runner. Для интеграции cicd мы должны использовать newman. Экспортируйте коллекцию в формате json и запустите

  newman run collection.json -d data.csv
 

вот и все , за один раз вы можете использовать только один csv-файл , но можете запустить конфигурацию с использованием другого csv-файла, выполнив команду повторного запуска с разными файлами данных, указанными с помощью-d

Комментарии:

1. Да, я знаю, как использовать csv-файл, но только по одному файлу за раз, и у меня много подобных запросов в коллекции. Еще одна вещь, я должен отделить этот запрос от других в коллекции, чтобы уменьшить побочный эффект итерации. Например, у меня есть коллекция: req1, req2 (читать файл csv: 3 строки). Когда я запускаю коллекцию с помощью runner, я ожидаю, что req1 запустится 1 раз, req2-3 раза, но получается req1 3 раза, req2 3 раза. Для меня это отстой.

2. Хорошо, это ответ на один из моих вопросов. Другой вопрос в том, как мне интегрировать это с конвейером ? Где будут храниться файлы data.csv, когда мы говорим о CI/CD ?

3. @lucasnguyen17 вы можете легко это сделать , используя Google лист или содержимое в переменной среды и т. Д. попробуй это , postman.com/praveendvd-public/workspace/postman-tricks-and-tips

4. @AbdullaSuhail это будет сохранено вместе с переменной коллекции и окружающей среды . файлы json . У вас должна быть папка с файлом данных, коллекцией и средой

5. @lucasnguyen17 вы должны использовать postman.setNextRequest для управления потоком