最近在實作 API,發現上次只有做 VSCODE 檢查
postman 假如可以用的話,也很方便
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
var schema = {
"$schema": "http://json-schema.org/draft-06/schema#",
......(略)
}
};
pm.test("Check JSON", function () {
var jsonData = pm.response.json();
var valid = tv4.validate(jsonData, schema, false, true);
if (valid !== true) {
console.log(tv4.error);
tests['tv4.error:' + tv4.error] = true;
}
pm.expect(valid).to.be.true;
});
|
只要在pre-test
放這段就可以檢查了
參考來源:
2018-11-07
最近應為錯誤發現不會提示顯示哪裡錯誤
所以爬到How do I test JSON schema in postman using tv4? - Stack Overflow
修改一下程式碼
1
2
3
4
5
6
7
8
9
10
|
pm.test("Check JSON", function() {
var jsonData = pm.response.json();
var valid = tv4.validateMultiple(jsonData, schema, false, true);
if (valid.errors) {
valid.errors.forEach(
(value, index) => (tests[value.schemaPath + ":" + value.message] = true)
);
}
pm.expect(valid.errors.length === 0).to.be.true;
});
|
最後,假如要用上次 VSCODE
setting.json
好像沒辦法自動設定所有 json 檔案
只能單一設定
1
2
3
4
5
6
7
8
9
10
11
12
|
{
"json.schemas": [
{
"fileMatch": ["xxx.api.json"],
"url": "./xxx.schema.json"
},
{
"fileMatch": ["oooo.json"],
"url": "./oooo.schema.json"
}
]
}
|
未來有找到好方法再補
有找到VSCode 配置文件的变量索引 - 知乎
1
2
3
4
5
6
7
8
9
|
{
//不能使用
"json.schemas": [
{
"fileMatch": ["${fileBasenameNoExtension}.json"],
"url": "./${fileBasenameNoExtension}.schema.json"
}
]
}
|
明天測試看能不能用
2018-11-09
確定不能使用
REST Client 好像沒有 JSON Schema 檢查工具
一些 github 上檢驗工具
ebdrup/json-schema-benchmark: Benchmarks for Node.js JSON-schema validators
2019-05-22
另類檢查寫法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
var data = JSON.parse(responseBody);
pm.test("response must be valid and have a body", function() {
// assert that the status code is 200
pm.response.to.be.ok;
// assert that the response has a valid JSON body
pm.response.to.be.withBody;
pm.response.to.be.json;
});
pm.test("respnse body has xxxx ?", function() {
pm.expect(data.response.xxxx).is.not.empty;
pm.response.to.not.have.jsonBody("error");
});
|
參考來源:
Test scripts | Postman Learning Center