在python 3中验证json响应的最佳方法

时间:2018-03-11 08:08:56

标签: json python-3.x testing

我正在使用python 3对一堆休息端点进行功能测试。 但我无法找出验证json reaponse的最佳方法(验证类型,必需,缺失和其他字段)

我想到了以下选项: 1.编写自定义代码并在将数据转换为python类对象时验证响应。 2.使用json模式进行验证。

选项1:难以维护,需要为所有数据模型添加单独的功能。 选项2:我喜欢它。但我不想在单独的文件/对象中为每个端点编写模式。有没有办法把它放在一个单独的对象,就像我们有一个swagger yml文件。这种方式很容易维护。

我想知道哪个选项最好,是否还有其他更好的选项/库。

1 个答案:

答案 0 :(得分:0)

我已经完成了相同的过程,但使用Java验证REST请求响应。最后,我使用了JSON Schema(在https://pypi.python.org/pypi/jsonschema处有一个等效的Python实现),因为它简单而强大,并且手工制作验证,但是一个微不足道的有效载荷很快就变成了一场噩梦。此外,阅读JSON Schema文件比推理一长串验证语句更容易。

确实你需要在一个单独的文件中定义模式,但事实证明这没什么大不了的。而且,如果您的端点共享一些共同功能,您可以模块化您的模式并重用公共部分。 Understanding JSON Schema有一个很好的教程。