我们从Postman导出了一组测试(使用带有测试的json文件和带有环境变量的单独json文件),尝试像 newman run tests.json -e environment.json 一样运行设置:输出令人困惑:
┌─────────────────────────┬──────────┬──────────┐
│ │ executed │ failed │
├─────────────────────────┼──────────┼──────────┤
│ iterations │ 1 │ 0 │
├─────────────────────────┼──────────┼──────────┤
│ requests │ 12 │ 6 │
├─────────────────────────┼──────────┼──────────┤
│ test-scripts │ 6 │ 0 │
├─────────────────────────┼──────────┼──────────┤
│ prerequest-scripts │ 0 │ 0 │
├─────────────────────────┼──────────┼──────────┤
│ assertions │ 28 │ 0 │
├─────────────────────────┴──────────┴──────────┤
│ total run duration: 819ms │
├───────────────────────────────────────────────┤
│ total data received: 9.8KB (approx) │
├───────────────────────────────────────────────┤
│ average response time: 156ms │
└───────────────────────────────────────────────┘
通过的断言数量(28)表明所有测试都可以。但是...实际上集合中只有6个请求,因此请求似乎执行了两次,并且其中一个执行失败,原因是未以某种方式扩展变量。...
这是输出显示的内容(6次):
1.错误的无效URI“ http:///%7B%7Bendpoint%7D%7D/products/4”
根据要求在“”内
因此,这意味着这些请求中不会填写环境变量。
tests.json文件的片段如下:
{
"name": "AppStore BackEnd BAKERY_PRODUCT 4 test",
"event": [
{
"listen": "test",
"script": {
"id": "0e074806-1248-4446-865d-9e0f3d733ba2", "exec":[
"pm.sendRequest(\"http://{{endpoint}}/products/4\", function (err, response) {",
" ",
" pm.test(\"Status code is 200\", function () {",
" pm.response.to.have.status(200);",
" });",
" ",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "http://{{endpoint}}/products/4",
"protocol": "http",
"host": [
"{{endpoint}}"
],
"path": [
"products",
"4"
]
}
},
"response": []
},
任何线索?
答案 0 :(得分:0)
在您的Tests
标签中尝试一下,然后导出收藏集:
pm.sendRequest(`${pm.environment.get('endpoint')}/products/4`, (err, response) => {
pm.test("Status code is 200", () => {
pm.response.to.have.status(200)
})
})
在该标签中使用{{endpoint}}
不知道要引用什么。您只能以这种方式在URL,URL参数,标头,授权,请求正文和标头预设上使用它们。