当在Azure DevOps管道上运行Newman时,我遇到了一个奇怪的问题。下面是对正在发生的事情的总结:
只在第一个locally
Post
Test A
POST XXXXX [500 Internal Server Error, 442B, 8.6s]
1⠄ JSONError in test-script
Test A Copy
POST XXX [200 OK, 692B, 8.9s]
√ Is Successful
√ Status Code
√ Status Message
---
# failure detail
1. JSONError
No data, empty input at 1:1
^
at test-script 这似乎并不重要,确切的测试是什么,它总是失败,如果它是第一个。为了证明这一点,我复制了失败的测试,现在我已经复制了
F 218
突然间测试了一份副本。因此,这不是测试的内容,而是需要测试的第一个测试。所有这些测试都是POST的
测试A内容:
var jsonData = pm.response.json();
pm.test("Is Successful", function() {
pm.expect(jsonData.IsSuccessful).to.be.true;
})
pm.test("Status Code", function() {
pm.response.to.have.status(200);
})
pm.test("Status Message", function() {
pm.expect(jsonData.StatusMessage).eql("Document insert successful.");
})没什么特别的,所以为什么在第一次运行(测试A)而不是第二次测试(测试A副本)时会失败。不管是哪个测试,如果我首先运行测试B,这将是失败的测试。
看起来,第一个请求是什么唤醒了服务器,然后一切都好了。
发布于 2020-07-21 07:12:06
我在Postman中运行Azure Devops Rest,并使用导出json文件在管道中运行邮递员测试
以下是我在蔚蓝管道中运行newman的步骤,您可以参考它们。
Step1:在PostMan中导出集合。

Step2:将Json文件(例如APITEST.postman_collection.json)上传到Azure。
Step3:创建一个管道并添加install Newman step,run Postman test step。
示例:
steps:
- script: |
npm install -g newman@5.1.2
workingDirectory: '$(System.DefaultWorkingDirectory)'
displayName: 'Command Line Script'
- script: 'newman run TEST.postman_collection.json --reporters cli,junit --reporter-junit-export Results\junitReport.xml '
workingDirectory: '$(build.sourcesdirectory)'
displayName: 'Command Line Script或者与Newman the cli Companion for Postman任务一起运行(这是一个扩展任务)。
steps:
- script: |
npm install -g newman@4.6.1
workingDirectory: '$(System.DefaultWorkingDirectory)'
displayName: 'Command Line Script'
- task: NewmanPostman@4
displayName: 'Newman - Postman'
inputs:
collectionFileSource: 'TEST.postman_collection.json'
environmentSourceType: none
ignoreRedirect: false
bail: false
sslInsecure: false
htmlExtraDarkTheme: false
htmlExtraLogs: false
htmlExtraTestPaging: falseStep4:运行管道,它可以显示与postman相同的api结果。
https://stackoverflow.com/questions/62963523
复制相似问题