{"name": "正向用例", "status": "failed", "statusDetails": {"message": "AssertionError: assert '刷新token成功' == None\n +  where None = <built-in method get of dict object at 0x0000014F191B6B40>('message')\n +    where <built-in method get of dict object at 0x0000014F191B6B40> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...}.get\n +      where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\n +        where <bound method Response.json of <Response [200]>> = <Response [200]>.json", "trace": "self = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n    @allure.epic(\"BPM系统-demo\")  # 测试系统的名称\n    # @allure.feature(\"模块名称\")  # 模块名称\n    # @allure.story(\"接口名称\")    # 接口\n    # @allure.title(\"标题名称\")    # 用例标题\n    # @allure.severity(\"用例的等级\")   # 用例等级\n    @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n    def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n        # 给allure输出的报告添加内容\n        allure.dynamic.feature(module_name)\n        allure.dynamic.story(api_name)\n        allure.dynamic.title(case_title)\n        allure.dynamic.severity(case_level)\n    \n        # 判断sql语句类型是否为select\n        if sql_type == \"select\":\n            # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n            select_result = db_fix.select_func(sql_data)\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n            # 将更新之后的用例数据发送给服务器。\n    \n        # 判断sql语句的类型是否为delete\n        elif sql_type == \"delete\":\n            # 使用DB类对象调用delete_func方法执行删除的sql语句\n            db_fix.delete_func(sql_data)\n            # 将数据库中的数据删除完之后,再发送请求\n    \n        # 判断sql语句类型是否为select|delete或者为delete|select\n        elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n            # 使用DB类对象调用delete_func方法执行删除的sql语句\n            db_fix.delete_func(sql_data[\"delete\"])\n            # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n            select_result = db_fix.select_func(sql_data[\"select\"])\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n            # 将更新之后的用例数据发送给服务器。\n    \n        # 使用RequestsMethod对象发送请求\n        res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n        # 断言\n        try:\n            for key in expect_data:\n                assert expect_data[key] == res.json().get(key)\n        except AssertionError as e:\n            logging.error(f\"断言失败, 用例数据为{case_data}, 期望数据为:{expect_data}, 服务器返回的数据为:{res.text}\")\n>           raise e\n\ntest_case\\test_demo\\test_bpm.py:66: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <InterfaceAutoTest.test_case.test_demo.test_bpm.TestBPM object at 0x0000014F17992220>\nreq_fix = <InterfaceAutoTest.requests_method.requsts_method.RequestsMethod object at 0x0000014F1903D9D0>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x0000014F1908BF10>, module_name = '认证接口', api_name = '刷新token', case_title = '正向用例'\ncase_level = '中', method = 'GET', url = 'http://120.46.172.186:8080/refresh', mime = None, case_data = None\nexpect_data = {'message': '刷新token成功'}, sql_data = None, sql_type = None, update_key = None\n\n    @allure.epic(\"BPM系统-demo\")  # 测试系统的名称\n    # @allure.feature(\"模块名称\")  # 模块名称\n    # @allure.story(\"接口名称\")    # 接口\n    # @allure.title(\"标题名称\")    # 用例标题\n    # @allure.severity(\"用例的等级\")   # 用例等级\n    @pytest.mark.parametrize(\"module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key\", excel.get_data())\n    def test_bpm(self, req_fix, db_fix, module_name, api_name, case_title, case_level, method, url, mime, case_data, expect_data, sql_data, sql_type, update_key):\n        # 给allure输出的报告添加内容\n        allure.dynamic.feature(module_name)\n        allure.dynamic.story(api_name)\n        allure.dynamic.title(case_title)\n        allure.dynamic.severity(case_level)\n    \n        # 判断sql语句类型是否为select\n        if sql_type == \"select\":\n            # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n            select_result = db_fix.select_func(sql_data)\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n            # 将更新之后的用例数据发送给服务器。\n    \n        # 判断sql语句的类型是否为delete\n        elif sql_type == \"delete\":\n            # 使用DB类对象调用delete_func方法执行删除的sql语句\n            db_fix.delete_func(sql_data)\n            # 将数据库中的数据删除完之后,再发送请求\n    \n        # 判断sql语句类型是否为select|delete或者为delete|select\n        elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n            # 使用DB类对象调用delete_func方法执行删除的sql语句\n            db_fix.delete_func(sql_data[\"delete\"])\n            # 使用DB类对象调用select_func方法执行查询的sql语句,并接收查询结果\n            select_result = db_fix.select_func(sql_data[\"select\"])\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n            # 将更新之后的用例数据发送给服务器。\n    \n        # 使用RequestsMethod对象发送请求\n        res = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n        # 断言\n        try:\n            for key in expect_data:\n>               assert expect_data[key] == res.json().get(key)\nE               AssertionError: assert '刷新token成功' == None\nE                +  where None = <built-in method get of dict object at 0x0000014F191B6B40>('message')\nE                +    where <built-in method get of dict object at 0x0000014F191B6B40> = {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...}.get\nE                +      where {'account': '', 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRlbmFudElkIjoiLTEiLCJleHAiOj...3MjYwNH0.TOXPdeAD96XQ_Maa-ITQDDQZTnKhlW09esTDC6-C8_Wux9HSk3bWURoOvhmcidK-lCj4Tvw1ZO0dYFWGR8-lsg', 'userAttrs': {}, ...} = <bound method Response.json of <Response [200]>>()\nE                +        where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_demo\\test_bpm.py:63: AssertionError"}, "attachments": [{"name": "log", "source": "d993550e-3284-4071-9240-5f178c323d76-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'刷新token'"}, {"name": "case_title", "value": "'正向用例'"}, {"name": "case_level", "value": "'中'"}, {"name": "method", "value": "'GET'"}, {"name": "url", "value": "'http://120.46.172.186:8080/refresh'"}, {"name": "mime", "value": "None"}, {"name": "case_data", "value": "None"}, {"name": "expect_data", "value": "{'message': '刷新token成功'}"}, {"name": "sql_data", "value": "None"}, {"name": "sql_type", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1716272606164, "stop": 1716272606215, "uuid": "f2e2b9d9-5e33-490f-abbc-6e66baca6bd7", "historyId": "1dcae5f805bddffd6ce19e14c8b3458b", "testCaseId": "2de48645219de93dc51c83a53a42f952", "fullName": "test_case.test_demo.test_bpm.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "刷新token"}, {"name": "severity", "value": "中"}, {"name": "epic", "value": "BPM系统-demo"}, {"name": "parentSuite", "value": "test_case.test_demo"}, {"name": "suite", "value": "test_bpm"}, {"name": "subSuite", "value": "TestBPM"}, {"name": "host", "value": "LAPTOP-O09782E1"}, {"name": "thread", "value": "8968-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_demo.test_bpm"}]}