我正在使用python 3对一堆休息端点进行功能测试。 但我无法找出验证json reaponse的最佳方法(验证类型,必需,缺失和其他字段)
我想到了以下选项: 1.编写自定义代码并在将数据转换为python类对象时验证响应。 2.使用json模式进行验证。
选项1:难以维护,需要为所有数据模型添加单独的功能。 选项2:我喜欢它。但我不想在单独的文件/对象中为每个端点编写模式。有没有办法把它放在一个单独的对象,就像我们有一个swagger yml文件。这种方式很容易维护。
我想知道哪个选项最好,是否还有其他更好的选项/库。
答案 0 :(得分:0)
我已经完成了相同的过程,但使用Java验证REST请求和响应。最后,我使用了JSON Schema(在https://pypi.python.org/pypi/jsonschema处有一个等效的Python实现),因为它简单而强大,并且手工制作验证,但是一个微不足道的有效载荷很快就变成了一场噩梦。此外,阅读JSON Schema文件比推理一长串验证语句更容易。
确实你需要在一个单独的文件中定义模式,但事实证明这没什么大不了的。而且,如果您的端点共享一些共同功能,您可以模块化您的模式并重用公共部分。 Understanding JSON Schema有一个很好的教程。