我正在为一个具有OpenAPI(Swagger)定义的REST API构建模糊测试器。
我想要测试OpenAPI定义中的所有可用路径,生成数据以测试服务器,分析响应代码和内容,并验证响应是否符合API定义。
我正在寻找一种从模型定义中生成数据(JSON对象)的方法。
例如,给定以下模型:
...
"Pet": {
"type": "object",
"required": [
"name",
"photoUrls"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"category": {
"$ref": "#/definitions/Category"
},
"name": {
"type": "string",
"example": "doggie"
},
"photoUrls": {
"type": "array",
"items": {
"type": "string"
}
},
"tags": {
"type": "array",
"items": {
"$ref": "#/definitions/Tag"
}
},
"status": {
"type": "string",
"description": "pet status in the store"
}
}
}
我想生成随机数据,得到类似这样的东西:
{
"id": 0,
"category": {
"id": 0,
"name": "string"
},
"name": "doggie",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "string"
}
],
"status": "string"
}
oneOf
、anyOf
、allOf
,也不处理使用$ref
的任何引用,也不遵循任何pattern
。 - TiinaExampleBuilder
支持allOf
,$ref
,oneOf
和anyOf
。对于oneOf
/anyOf
,它应该使用第一个子模式。如果您得到不正确/不完整的示例,请在 https://github.com/swagger-api/swagger-inflector/issues 上打开问题。请确保使用 https://editor.swagger.io 和/或其他验证器检查您的 OpenAPI 定义中的语法错误。您还可以通过为 API 定义中的某些模式/属性提供自己的example
来解决 ExampleBuilder 的限制。 - Helen