【python】如何去编写一个对比json字符串的工具

前言:

日常工作中对借口进行测试时候,有时候会对一个接口进行版本迭代;

可能对同一个功能来说,老版本使用老接口,新版本就是用新接口;

对单一接口进行接口测试来说是没有什么可说的了,我们可以使用assert对结果数据进行断言,

但是我们并不清楚新老接口使用相同的入参,返回的结果是否有差异,毕竟后面的业务可能对返回字段的取值逻辑可能相同页可能不同!我们能做的就是新接口可以兼容老接口。

这就需要我们想办法怎么对新老接口的返回数据进行比对(入参相同),并且将有差异的地方进行输出,方便我们统计和处理!

使用json模块就可以达到我们目前的目的:

直接上代码:

首先先给定两个已知的,待对比的内容:

compare_json_data.py

class TestDiffJson():
    def test_old_data(self):
        _old_data = {
            "key1": "value1",
            "key2": "value2",
            "key3": [1],
            "object": {
                "object_key1": "object_value2",
                "object_key2": {
                    "sub_key": "object_key2_sub_value",
                    "sub_key3": {"xx": 1},
                    "sub_key4": {"xx": 1}
                },
                "object_key3": [
                    {"list_sub_key1": "xx"},
                    {"list_sub_key2": "xx"}
                ]

            },
            "x": 1.2
        }
        return _old_data

    def test_new_data(self):
        _new_data = {
            "key1": "value1",
            "key2": "value2",
            "key3": (1,),
            "object": {
                "object_key1": "object_value1",
                "object_key2": {
                    "sub_key": "object_key2_sub_value",
                    "sub_key2": {"xx": 1},
                    "sub_key3": "test"
                },
                "object_key3": [
                    {"list_sub_key1": "xx"},
                    {"list_sub_key2": []}
                ]

            },
            "x": 1.2
        }
        return _new_data

 本来只做了差别对比并输出,后面想想如果可以忽略掉一些字段比对的差异,就更完美了,毕竟有些数据时刻变化(比如时间戳)我们是不需要去关注。

<

你可能感兴趣的:(工具类,json,python,开发语言)