Тестовый скрипт запущен в Postman, но получил неожиданный токен '‹' в соотношении 1: 1 при запуске в конвейере Azure с использованием Newman

Я попытался интегрировать коллекцию Postman в Azure в соответствии с инструкциями на Medium сообщение У меня есть тесты Postman, работающие под управлением newman, однако я вижу ошибку. Я пробовал как надстройку newman, так и задачи командной строки.

Сообщение об ошибке


person Alka    schedule 03.03.2021    source источник
comment
Процесс C: \ npm \ prefix \ newman.cmd завершился неудачно с кодом выхода 1. Я получаю ответ html вместо Json, но ответ на запрос должен быть Json.   -  person Alka    schedule 04.03.2021
comment
Привет @Alka. Есть ли какие-нибудь обновления об этом билете? Не стесняйтесь, дайте мне знать, если ответ может вам помочь. Напомню, что это.   -  person Kevin Lu-MSFT    schedule 08.03.2021


Ответы (2)


Ошибка говорит, что 403 ip запрещен, это означает, что сервер, с которого вы запускаете скрипт, не авторизован для доступа к api

Развертывание службы приложений Azure возвращает (403) Запрещено с ограничением IP

Обратитесь к этому ответу.

И об ошибке json, которую вы получаете, от

    pm.response.json()

Поскольку ответ является html, он не может быть проанализирован.

person PDHide    schedule 04.03.2021
comment
Смена пула агентов на сервер и установка nodejs на сервере решили проблему. - person Alka; 11.03.2021
comment
Хорошо что это сработало - person PDHide; 11.03.2021

403 IP Запрещено

Судя по этому сообщению об ошибке, ваше приложение Azure имеет ограничения IP.

Вы можете попробовать добавить задачу Azure PowerShell для запуска следующего сценария, чтобы добавить текущий IP-адрес к ограничению доступа приложения.

Пример: если вы используете службу приложений Azure, вы можете использовать следующий сценарий

$IP= Invoke-RestMethod http://ipinfo.io/json | Select -exp ip

$IP

Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName"  -Name "Ip example rule" -Priority 100 -Action Allow -IpAddress $IP

Вот документ о подробном сценарии .

Для теста Newman вы ссылались на блог. Таким образом, вы получите два файла Json (один - это коллекция, другой - переменные env).

Вы можете обратиться к следующей настройке конвейера:

Редактор Yaml:

steps:
- task: AzurePowerShell@5
  displayName: 'Azure PowerShell script: InlineScript'
  inputs:
    azureSubscription: 
    ScriptType: InlineScript
    Inline: |
     $IP= Invoke-RestMethod http://ipinfo.io/json | Select -exp ip
     
     $IP
     
     Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName"  -Name "Ip example rule" -Priority 100 -Action Allow -IpAddress $IP
    preferredAzurePowerShellVersion: 3.1.0

- script: |
   npm install -g newman
   
   
   
  displayName: 'Command Line Script'

- task: carlowahlstedt.NewmanPostman.NewmanPostman.NewmanPostman@4
  displayName: 'Newman - Postman'
  inputs:
    collectionFileSource: '$(build.sourcesdirectory)'
    Contents: 'kevintest123.postman_collection.json'
    environment: '$(build.sourcesdirectory)/test/versionenv.postman_environment.json'
    ignoreRedirect: false
    bail: false
    sslInsecure: false
    htmlExtraDarkTheme: false
    htmlExtraLogs: false
    htmlExtraTestPaging: false

Классический редактор:

введите описание изображения здесь

person Kevin Lu-MSFT    schedule 04.03.2021