Я попытался интегрировать коллекцию Postman в Azure в соответствии с инструкциями на Medium сообщение У меня есть тесты Postman, работающие под управлением newman, однако я вижу ошибку. Я пробовал как надстройку newman, так и задачи командной строки.
Тестовый скрипт запущен в Postman, но получил неожиданный токен '‹' в соотношении 1: 1 при запуске в конвейере Azure с использованием Newman
Ответы (2)
Ошибка говорит, что 403 ip запрещен, это означает, что сервер, с которого вы запускаете скрипт, не авторизован для доступа к api
Развертывание службы приложений Azure возвращает (403) Запрещено с ограничением IP
Обратитесь к этому ответу.
И об ошибке json, которую вы получаете, от
pm.response.json()
Поскольку ответ является html, он не может быть проанализирован.
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
Классический редактор: