d57c2d7e4a5351e1.json 19.2 KB
Newer Older
duqing committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
{
  "uid" : "d57c2d7e4a5351e1",
  "name" : "正向用例",
  "fullName" : "test_case.test_basic.test_case.TestBPM#test_bpm",
  "historyId" : "0726b7ece66163239f4822447c1bd114",
  "time" : {
    "start" : 1721015509346,
    "stop" : 1721015509371,
    "duration" : 25
  },
  "status" : "failed",
  "statusMessage" : "AssertionError: 断言失败,描述失败的原因",
  "statusTrace" : "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB0B0A0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n    @log_decorator\n    @allure.epic(\"BPM-Basic\")\n    # @allure.feature(\"模块名称\")\n    # @allure.story(\"接口名称\")\n    # @allure.title(\"接口标题\")\n    # @allure.severity(\"用例级别\")\n    @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n    def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, 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(level)\n    \n        print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n    \n        # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n        if sql_type == \"delete\":\n            # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n            db_fix.delete(sql_data)\n    \n        # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n        elif sql_type == \"select\":\n            # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n            select_result = db_fix.select(sql_data)\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n    \n        # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n        elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n            # 使用DB类对象调用delete方法执行删除的sql语句。\n            db_fix.delete(sql_data[\"delete\"])\n    \n            # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n            select_result = db_fix.select(sql_data[\"select\"])\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n    \n        result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n        print(result.text)\n    \n        try:\n            for key in expect_data:\n>               assert expect_data[key] == result.json().get(key)\nE               AssertionError: assert '刷新成功' == None\nE                +  where None = <built-in method get of dict object at 0x0000018E4AC59B40>('message')\nE                +    where <built-in method get of dict object at 0x0000018E4AC59B40> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ', ...}.get\nE                +      where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ', ...} = <bound method Response.json of <Response [200]>>()\nE                +        where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB0B0A0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n    @log_decorator\n    @allure.epic(\"BPM-Basic\")\n    # @allure.feature(\"模块名称\")\n    # @allure.story(\"接口名称\")\n    # @allure.title(\"接口标题\")\n    # @allure.severity(\"用例级别\")\n    @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n    def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, 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(level)\n    \n        print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n    \n        # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n        if sql_type == \"delete\":\n            # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n            db_fix.delete(sql_data)\n    \n        # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n        elif sql_type == \"select\":\n            # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n            select_result = db_fix.select(sql_data)\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n    \n        # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n        elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n            # 使用DB类对象调用delete方法执行删除的sql语句。\n            db_fix.delete(sql_data[\"delete\"])\n    \n            # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n            select_result = db_fix.select(sql_data[\"select\"])\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n    \n        result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n        print(result.text)\n    \n        try:\n            for key in expect_data:\n                assert expect_data[key] == result.json().get(key)\n        except AssertionError:\n>           raise AssertionError(\"断言失败,描述失败的原因\")\nE           AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError",
  "flaky" : false,
  "newFailed" : false,
  "beforeStages" : [ {
    "name" : "db_fix",
    "time" : {
      "start" : 1721015508791,
      "stop" : 1721015508821,
      "duration" : 30
    },
    "status" : "passed",
    "steps" : [ ],
    "attachments" : [ ],
    "parameters" : [ ],
    "hasContent" : false,
    "stepsCount" : 0,
    "attachmentsCount" : 0,
    "shouldDisplayMessage" : false
  }, {
    "name" : "req_fix",
    "time" : {
      "start" : 1721015508741,
      "stop" : 1721015508791,
      "duration" : 50
    },
    "status" : "passed",
    "steps" : [ ],
    "attachments" : [ ],
    "parameters" : [ ],
    "hasContent" : false,
    "stepsCount" : 0,
    "attachmentsCount" : 0,
    "shouldDisplayMessage" : false
  } ],
  "testStage" : {
    "status" : "failed",
    "statusMessage" : "AssertionError: 断言失败,描述失败的原因",
    "statusTrace" : "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB0B0A0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n    @log_decorator\n    @allure.epic(\"BPM-Basic\")\n    # @allure.feature(\"模块名称\")\n    # @allure.story(\"接口名称\")\n    # @allure.title(\"接口标题\")\n    # @allure.severity(\"用例级别\")\n    @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n    def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, 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(level)\n    \n        print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n    \n        # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n        if sql_type == \"delete\":\n            # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n            db_fix.delete(sql_data)\n    \n        # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n        elif sql_type == \"select\":\n            # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n            select_result = db_fix.select(sql_data)\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n    \n        # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n        elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n            # 使用DB类对象调用delete方法执行删除的sql语句。\n            db_fix.delete(sql_data[\"delete\"])\n    \n            # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n            select_result = db_fix.select(sql_data[\"select\"])\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n    \n        result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n        print(result.text)\n    \n        try:\n            for key in expect_data:\n>               assert expect_data[key] == result.json().get(key)\nE               AssertionError: assert '刷新成功' == None\nE                +  where None = <built-in method get of dict object at 0x0000018E4AC59B40>('message')\nE                +    where <built-in method get of dict object at 0x0000018E4AC59B40> = {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ', ...}.get\nE                +      where {'account': 'admin', 'expiration': 86400, 'loginStatus': True, 'token': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInRl...EsImlhdCI6MTcyMTAxNTQ1MX0.SKaoGdldOU9XaDlq2V_Dq2r8A287XYtlFRUTQvfg-wz_j-DxsfKW3uqby8IycQ5nOZ_QigKbPxj3o6_cMjs_lQ', ...} = <bound method Response.json of <Response [200]>>()\nE                +        where <bound method Response.json of <Response [200]>> = <Response [200]>.json\n\ntest_case\\test_basic\\test_case.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x0000018E4AB0B0A0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x0000018E4AB84220>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x0000018E4AB84C70>, module_name = '认证接口', api_name = '刷新token', level = '高'\ncase_title = '正向用例', case_method = 'GET', case_url = 'http://36.139.193.99:8088/refresh', case_mime = None, case_data = None\nexpect_data = {'message': '刷新成功'}, sql_type = None, sql_data = None, update_key = None\n\n    @log_decorator\n    @allure.epic(\"BPM-Basic\")\n    # @allure.feature(\"模块名称\")\n    # @allure.story(\"接口名称\")\n    # @allure.title(\"接口标题\")\n    # @allure.severity(\"用例级别\")\n    @pytest.mark.parametrize(\"module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key\", ReadExcel(USERNAME).get_data())\n    def test_bpm(self, req_fix, db_fix, module_name, api_name, level, case_title, case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, 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(level)\n    \n        print(case_method, case_url, case_mime, case_data, expect_data, sql_type, sql_data, update_key)\n    \n        # 判断sql语句类型是否为delete,如果是,使用DB类对象调用delete方法执行删除的sql语句\n        if sql_type == \"delete\":\n            # 使用DB类对象调用delete方法执行删除的sql语句, DB类对象就是自定义固件db_fix\n            db_fix.delete(sql_data)\n    \n        # 判断sql语句的类型是否为select,如果是,使用DB类对象调用select方法执行查询语句,并接收查询的结果\n        elif sql_type == \"select\":\n            # 使用DB类对象调用select方法执行查询语句,并接收查询的结果\n            select_result = db_fix.select(sql_data)\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n    \n        # 判断sql语句的类型是否为select|delete 或者 delete|select ,如果是,使用DB类对象执行sql语句\n        elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n            # 使用DB类对象调用delete方法执行删除的sql语句。\n            db_fix.delete(sql_data[\"delete\"])\n    \n            # 使用DB类对象调用select方法执行查询的sql语句, 并接收查询的结果\n            select_result = db_fix.select(sql_data[\"select\"])\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n    \n        result = req_fix.request_all(req_method=case_method, req_url=case_url, req_mime=case_mime, case_data=case_data)\n        print(result.text)\n    \n        try:\n            for key in expect_data:\n                assert expect_data[key] == result.json().get(key)\n        except AssertionError:\n>           raise AssertionError(\"断言失败,描述失败的原因\")\nE           AssertionError: 断言失败,描述失败的原因\n\ntest_case\\test_basic\\test_case.py:63: AssertionError",
    "steps" : [ ],
    "attachments" : [ {
      "uid" : "97df77c4a34bfb1f",
      "name" : "log",
      "source" : "97df77c4a34bfb1f.txt",
      "type" : "text/plain",
      "size" : 601
    }, {
      "uid" : "39ee197f614405f5",
      "name" : "stdout",
      "source" : "39ee197f614405f5.txt",
      "type" : "text/plain",
      "size" : 386
    } ],
    "parameters" : [ ],
    "hasContent" : true,
    "stepsCount" : 0,
    "attachmentsCount" : 2,
    "shouldDisplayMessage" : true
  },
  "afterStages" : [ {
    "name" : "db_fix::0",
    "time" : {
      "start" : 1721015510221,
      "stop" : 1721015510221,
      "duration" : 0
    },
    "status" : "passed",
    "steps" : [ ],
    "attachments" : [ ],
    "parameters" : [ ],
    "hasContent" : false,
    "stepsCount" : 0,
    "attachmentsCount" : 0,
    "shouldDisplayMessage" : false
  }, {
    "name" : "req_fix::0",
    "time" : {
      "start" : 1721015510221,
      "stop" : 1721015510221,
      "duration" : 0
    },
    "status" : "passed",
    "steps" : [ ],
    "attachments" : [ ],
    "parameters" : [ ],
    "hasContent" : false,
    "stepsCount" : 0,
    "attachmentsCount" : 0,
    "shouldDisplayMessage" : false
  } ],
  "labels" : [ {
    "name" : "feature",
    "value" : "认证接口"
  }, {
    "name" : "story",
    "value" : "刷新token"
  }, {
    "name" : "severity",
    "value" : "高"
  }, {
    "name" : "epic",
    "value" : "BPM-Basic"
  }, {
    "name" : "parentSuite",
    "value" : "test_case.test_basic"
  }, {
    "name" : "suite",
    "value" : "test_case"
  }, {
    "name" : "subSuite",
    "value" : "TestBPM"
  }, {
    "name" : "host",
    "value" : "LAPTOP-O09782E1"
  }, {
    "name" : "thread",
    "value" : "18996-MainThread"
  }, {
    "name" : "framework",
    "value" : "pytest"
  }, {
    "name" : "language",
    "value" : "cpython3"
  }, {
    "name" : "package",
    "value" : "test_case.test_basic.test_case"
  }, {
    "name" : "resultFormat",
    "value" : "allure2"
  } ],
  "parameters" : [ {
    "name" : "api_name",
    "value" : "'刷新token'"
  }, {
    "name" : "case_data",
    "value" : "None"
  }, {
    "name" : "case_method",
    "value" : "'GET'"
  }, {
    "name" : "case_mime",
    "value" : "None"
  }, {
    "name" : "case_title",
    "value" : "'正向用例'"
  }, {
    "name" : "case_url",
    "value" : "'http://36.139.193.99:8088/refresh'"
  }, {
    "name" : "expect_data",
    "value" : "{'message': '刷新成功'}"
  }, {
    "name" : "level",
    "value" : "'高'"
  }, {
    "name" : "module_name",
    "value" : "'认证接口'"
  }, {
    "name" : "sql_data",
    "value" : "None"
  }, {
    "name" : "sql_type",
    "value" : "None"
  }, {
    "name" : "update_key",
    "value" : "None"
  } ],
  "links" : [ ],
  "hidden" : false,
  "retry" : false,
  "extra" : {
    "severity" : "normal",
    "retries" : [ ],
    "categories" : [ {
      "name" : "Product defects",
      "matchedStatuses" : [ ],
      "flaky" : false
    } ],
    "tags" : [ ]
  },
  "source" : "d57c2d7e4a5351e1.json",
  "parameterValues" : [ "'刷新token'", "None", "'GET'", "None", "'正向用例'", "'http://36.139.193.99:8088/refresh'", "{'message': '刷新成功'}", "'高'", "'认证接口'", "None", "None", "None" ]
}