{
  "uid" : "d167a8fc92917bcd",
  "name" : "正向用例",
  "fullName" : "test_bpm.TestBPM#test_bpm",
  "historyId" : "f37f5b35a33b0d851ad30e5c966f4068",
  "time" : {
    "start" : 1691399028670,
    "stop" : 1691399028807,
    "duration" : 137
  },
  "status" : "failed",
  "statusMessage" : "AssertionError: 断言失败",
  "statusTrace" : "self = <InterfaceAutoTest.test_case.test_bpm.TestBPM object at 0x00000257902F01C0>\nreq_fix = <InterfaceAutoTest.requests_method.requests_method.RequestsMethod object at 0x00000257902F0490>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x00000257903D93D0>, module = '维度管理', interface = '根据维度编码删除维度', title = '正向用例'\nlevel = '高', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ndata = {'ids': '1688475997541777408'}, expect = {'message': '删除维度成功', 'state': True}, sql_type = 'select'\nsql_sentence = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test56_dem\";', update_key = 'ids'\n\n    @allure.epic(\"BPM系统\")\n    @pytest.mark.parametrize(\"module, interface, title, level, method, url, mime, data, expect, sql_type, sql_sentence, update_key\", ReadExcel().get_data())\n    def test_bpm(self, req_fix, db_fix, module, interface, title, level, method, url, mime, data, expect, sql_type, sql_sentence, update_key):\n        allure.dynamic.feature(module)\n        allure.dynamic.story(interface)\n        allure.dynamic.title(title)\n        allure.dynamic.severity(level)\n    \n        # 1.1:判断sql语句的类型是否为delete\n        if sql_type == \"delete\":\n            # 1.2 使用DB类对象,调用delete方法执行删除的sql语句\n            db_fix.delete(sql_sentence)\n            # # 1.3 使用RequestsMethod类对象调用request_all方法发送请求\n            # result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n    \n        # 2.1 判断sql语句的类型是否为select\n        elif sql_type == \"select\":\n            # 2.2 使用DB类对象,调用select方法执行查询的sql语句,并接收查询结果\n            select_result = db_fix.select(sql_sentence)\n            # 2.3 将查询结果更新到用例数据中\n            data[update_key] = select_result\n            # # 2.3 使用RequestsMethod类对象调用request_all方法发送请求\n            # result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n    \n        # 3.1 判断sql语句的类型是否delete|select或者为select|delete\n        elif sql_type == \"delete|select\" or sql_type == \"select|delete\":\n            # 3.2 使用DB类对象,调用delete方法执行删除的sql语句\n            db_fix.delete(sql_sentence[\"delete\"])\n            # 3.3 使用DB类对象,调用select方法执行查询的sql语句,并接收查询结果\n            select_result = db_fix.select(sql_sentence[\"select\"])\n            # 3.4 将查询结果更新到用例数据中\n            data[update_key] = select_result\n            # # 3.5 使用RequestsMethod类对象调用request_all方法发送请求\n            # result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n        #\n        # else:\n        #     result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n    \n        result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n    \n        # 断言\n        try:\n            for key in expect:\n>               assert expect[key] == result.json().get(key)\nE               AssertionError: assert True == False\nE                +  where False = <built-in method get of dict object at 0x000002579047D040>('state')\nE                +    where <built-in method get of dict object at 0x000002579047D040> = {'logId': '1688476018974670848', 'message': '', 'state': False}.get\nE                +      where {'logId': '1688476018974670848', 'message': '', 'state': False} = <bound method Response.json of <Response [500]>>()\nE                +        where <bound method Response.json of <Response [500]>> = <Response [500]>.json\n\ntest_bpm.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <InterfaceAutoTest.test_case.test_bpm.TestBPM object at 0x00000257902F01C0>\nreq_fix = <InterfaceAutoTest.requests_method.requests_method.RequestsMethod object at 0x00000257902F0490>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x00000257903D93D0>, module = '维度管理', interface = '根据维度编码删除维度', title = '正向用例'\nlevel = '高', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ndata = {'ids': '1688475997541777408'}, expect = {'message': '删除维度成功', 'state': True}, sql_type = 'select'\nsql_sentence = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test56_dem\";', update_key = 'ids'\n\n    @allure.epic(\"BPM系统\")\n    @pytest.mark.parametrize(\"module, interface, title, level, method, url, mime, data, expect, sql_type, sql_sentence, update_key\", ReadExcel().get_data())\n    def test_bpm(self, req_fix, db_fix, module, interface, title, level, method, url, mime, data, expect, sql_type, sql_sentence, update_key):\n        allure.dynamic.feature(module)\n        allure.dynamic.story(interface)\n        allure.dynamic.title(title)\n        allure.dynamic.severity(level)\n    \n        # 1.1:判断sql语句的类型是否为delete\n        if sql_type == \"delete\":\n            # 1.2 使用DB类对象,调用delete方法执行删除的sql语句\n            db_fix.delete(sql_sentence)\n            # # 1.3 使用RequestsMethod类对象调用request_all方法发送请求\n            # result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n    \n        # 2.1 判断sql语句的类型是否为select\n        elif sql_type == \"select\":\n            # 2.2 使用DB类对象,调用select方法执行查询的sql语句,并接收查询结果\n            select_result = db_fix.select(sql_sentence)\n            # 2.3 将查询结果更新到用例数据中\n            data[update_key] = select_result\n            # # 2.3 使用RequestsMethod类对象调用request_all方法发送请求\n            # result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n    \n        # 3.1 判断sql语句的类型是否delete|select或者为select|delete\n        elif sql_type == \"delete|select\" or sql_type == \"select|delete\":\n            # 3.2 使用DB类对象,调用delete方法执行删除的sql语句\n            db_fix.delete(sql_sentence[\"delete\"])\n            # 3.3 使用DB类对象,调用select方法执行查询的sql语句,并接收查询结果\n            select_result = db_fix.select(sql_sentence[\"select\"])\n            # 3.4 将查询结果更新到用例数据中\n            data[update_key] = select_result\n            # # 3.5 使用RequestsMethod类对象调用request_all方法发送请求\n            # result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n        #\n        # else:\n        #     result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n    \n        result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n    \n        # 断言\n        try:\n            for key in expect:\n                assert expect[key] == result.json().get(key)\n        except:\n            print(\"断言失败\")\n            logging.error(\"断言失败, 模块名称为:{},接口名称为:{},用例标题:{},用例为:{},期望结果为:{},服务器返回数据为:{}\".format(module, interface, title, str(data), str(expect), result.text))\n>           raise AssertionError(\"断言失败\")\nE           AssertionError: 断言失败\n\ntest_bpm.py:65: AssertionError",
  "flaky" : false,
  "newFailed" : false,
  "beforeStages" : [ {
    "name" : "_session_faker",
    "time" : {
      "start" : 1691399016370,
      "stop" : 1691399016483,
      "duration" : 113
    },
    "status" : "passed",
    "steps" : [ ],
    "attachments" : [ ],
    "parameters" : [ ],
    "hasContent" : false,
    "stepsCount" : 0,
    "attachmentsCount" : 0,
    "shouldDisplayMessage" : false
  }, {
    "name" : "req_fix",
    "time" : {
      "start" : 1691399016483,
      "stop" : 1691399016584,
      "duration" : 101
    },
    "status" : "passed",
    "steps" : [ ],
    "attachments" : [ ],
    "parameters" : [ ],
    "hasContent" : false,
    "stepsCount" : 0,
    "attachmentsCount" : 0,
    "shouldDisplayMessage" : false
  }, {
    "name" : "db_fix",
    "time" : {
      "start" : 1691399016584,
      "stop" : 1691399016789,
      "duration" : 205
    },
    "status" : "passed",
    "steps" : [ ],
    "attachments" : [ ],
    "parameters" : [ ],
    "hasContent" : false,
    "stepsCount" : 0,
    "attachmentsCount" : 0,
    "shouldDisplayMessage" : false
  } ],
  "testStage" : {
    "status" : "failed",
    "statusMessage" : "AssertionError: 断言失败",
    "statusTrace" : "self = <InterfaceAutoTest.test_case.test_bpm.TestBPM object at 0x00000257902F01C0>\nreq_fix = <InterfaceAutoTest.requests_method.requests_method.RequestsMethod object at 0x00000257902F0490>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x00000257903D93D0>, module = '维度管理', interface = '根据维度编码删除维度', title = '正向用例'\nlevel = '高', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ndata = {'ids': '1688475997541777408'}, expect = {'message': '删除维度成功', 'state': True}, sql_type = 'select'\nsql_sentence = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test56_dem\";', update_key = 'ids'\n\n    @allure.epic(\"BPM系统\")\n    @pytest.mark.parametrize(\"module, interface, title, level, method, url, mime, data, expect, sql_type, sql_sentence, update_key\", ReadExcel().get_data())\n    def test_bpm(self, req_fix, db_fix, module, interface, title, level, method, url, mime, data, expect, sql_type, sql_sentence, update_key):\n        allure.dynamic.feature(module)\n        allure.dynamic.story(interface)\n        allure.dynamic.title(title)\n        allure.dynamic.severity(level)\n    \n        # 1.1:判断sql语句的类型是否为delete\n        if sql_type == \"delete\":\n            # 1.2 使用DB类对象,调用delete方法执行删除的sql语句\n            db_fix.delete(sql_sentence)\n            # # 1.3 使用RequestsMethod类对象调用request_all方法发送请求\n            # result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n    \n        # 2.1 判断sql语句的类型是否为select\n        elif sql_type == \"select\":\n            # 2.2 使用DB类对象,调用select方法执行查询的sql语句,并接收查询结果\n            select_result = db_fix.select(sql_sentence)\n            # 2.3 将查询结果更新到用例数据中\n            data[update_key] = select_result\n            # # 2.3 使用RequestsMethod类对象调用request_all方法发送请求\n            # result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n    \n        # 3.1 判断sql语句的类型是否delete|select或者为select|delete\n        elif sql_type == \"delete|select\" or sql_type == \"select|delete\":\n            # 3.2 使用DB类对象,调用delete方法执行删除的sql语句\n            db_fix.delete(sql_sentence[\"delete\"])\n            # 3.3 使用DB类对象,调用select方法执行查询的sql语句,并接收查询结果\n            select_result = db_fix.select(sql_sentence[\"select\"])\n            # 3.4 将查询结果更新到用例数据中\n            data[update_key] = select_result\n            # # 3.5 使用RequestsMethod类对象调用request_all方法发送请求\n            # result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n        #\n        # else:\n        #     result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n    \n        result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n    \n        # 断言\n        try:\n            for key in expect:\n>               assert expect[key] == result.json().get(key)\nE               AssertionError: assert True == False\nE                +  where False = <built-in method get of dict object at 0x000002579047D040>('state')\nE                +    where <built-in method get of dict object at 0x000002579047D040> = {'logId': '1688476018974670848', 'message': '', 'state': False}.get\nE                +      where {'logId': '1688476018974670848', 'message': '', 'state': False} = <bound method Response.json of <Response [500]>>()\nE                +        where <bound method Response.json of <Response [500]>> = <Response [500]>.json\n\ntest_bpm.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <InterfaceAutoTest.test_case.test_bpm.TestBPM object at 0x00000257902F01C0>\nreq_fix = <InterfaceAutoTest.requests_method.requests_method.RequestsMethod object at 0x00000257902F0490>\ndb_fix = <InterfaceAutoTest.common.db.DB object at 0x00000257903D93D0>, module = '维度管理', interface = '根据维度编码删除维度', title = '正向用例'\nlevel = '高', method = 'DELETE', url = 'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds', mime = 'query'\ndata = {'ids': '1688475997541777408'}, expect = {'message': '删除维度成功', 'state': True}, sql_type = 'select'\nsql_sentence = 'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test56_dem\";', update_key = 'ids'\n\n    @allure.epic(\"BPM系统\")\n    @pytest.mark.parametrize(\"module, interface, title, level, method, url, mime, data, expect, sql_type, sql_sentence, update_key\", ReadExcel().get_data())\n    def test_bpm(self, req_fix, db_fix, module, interface, title, level, method, url, mime, data, expect, sql_type, sql_sentence, update_key):\n        allure.dynamic.feature(module)\n        allure.dynamic.story(interface)\n        allure.dynamic.title(title)\n        allure.dynamic.severity(level)\n    \n        # 1.1:判断sql语句的类型是否为delete\n        if sql_type == \"delete\":\n            # 1.2 使用DB类对象,调用delete方法执行删除的sql语句\n            db_fix.delete(sql_sentence)\n            # # 1.3 使用RequestsMethod类对象调用request_all方法发送请求\n            # result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n    \n        # 2.1 判断sql语句的类型是否为select\n        elif sql_type == \"select\":\n            # 2.2 使用DB类对象,调用select方法执行查询的sql语句,并接收查询结果\n            select_result = db_fix.select(sql_sentence)\n            # 2.3 将查询结果更新到用例数据中\n            data[update_key] = select_result\n            # # 2.3 使用RequestsMethod类对象调用request_all方法发送请求\n            # result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n    \n        # 3.1 判断sql语句的类型是否delete|select或者为select|delete\n        elif sql_type == \"delete|select\" or sql_type == \"select|delete\":\n            # 3.2 使用DB类对象,调用delete方法执行删除的sql语句\n            db_fix.delete(sql_sentence[\"delete\"])\n            # 3.3 使用DB类对象,调用select方法执行查询的sql语句,并接收查询结果\n            select_result = db_fix.select(sql_sentence[\"select\"])\n            # 3.4 将查询结果更新到用例数据中\n            data[update_key] = select_result\n            # # 3.5 使用RequestsMethod类对象调用request_all方法发送请求\n            # result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n        #\n        # else:\n        #     result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n    \n        result = req_fix.request_all(req_method=method, req_url=url, req_mime=mime, case_data=data)\n    \n        # 断言\n        try:\n            for key in expect:\n                assert expect[key] == result.json().get(key)\n        except:\n            print(\"断言失败\")\n            logging.error(\"断言失败, 模块名称为:{},接口名称为:{},用例标题:{},用例为:{},期望结果为:{},服务器返回数据为:{}\".format(module, interface, title, str(data), str(expect), result.text))\n>           raise AssertionError(\"断言失败\")\nE           AssertionError: 断言失败\n\ntest_bpm.py:65: AssertionError",
    "steps" : [ ],
    "attachments" : [ {
      "uid" : "42e522108c3b0f17",
      "name" : "log",
      "source" : "42e522108c3b0f17.txt",
      "type" : "text/plain",
      "size" : 2851
    }, {
      "uid" : "a990f89b36c9470c",
      "name" : "stdout",
      "source" : "a990f89b36c9470c.txt",
      "type" : "text/plain",
      "size" : 65
    } ],
    "parameters" : [ ],
    "hasContent" : true,
    "stepsCount" : 0,
    "attachmentsCount" : 2,
    "shouldDisplayMessage" : true
  },
  "afterStages" : [ {
    "name" : "req_fix::0",
    "time" : {
      "start" : 1691399029988,
      "stop" : 1691399029988,
      "duration" : 0
    },
    "status" : "passed",
    "steps" : [ ],
    "attachments" : [ ],
    "parameters" : [ ],
    "hasContent" : false,
    "stepsCount" : 0,
    "attachmentsCount" : 0,
    "shouldDisplayMessage" : false
  }, {
    "name" : "db_fix::0",
    "time" : {
      "start" : 1691399029987,
      "stop" : 1691399029987,
      "duration" : 0
    },
    "status" : "passed",
    "steps" : [ ],
    "attachments" : [ ],
    "parameters" : [ ],
    "hasContent" : false,
    "stepsCount" : 0,
    "attachmentsCount" : 0,
    "shouldDisplayMessage" : false
  } ],
  "labels" : [ {
    "name" : "feature",
    "value" : "维度管理"
  }, {
    "name" : "story",
    "value" : "根据维度编码删除维度"
  }, {
    "name" : "severity",
    "value" : "高"
  }, {
    "name" : "epic",
    "value" : "BPM系统"
  }, {
    "name" : "suite",
    "value" : "test_bpm"
  }, {
    "name" : "subSuite",
    "value" : "TestBPM"
  }, {
    "name" : "host",
    "value" : "LAPTOP-31V3JBFR"
  }, {
    "name" : "thread",
    "value" : "6412-MainThread"
  }, {
    "name" : "framework",
    "value" : "pytest"
  }, {
    "name" : "language",
    "value" : "cpython3"
  }, {
    "name" : "package",
    "value" : "test_bpm"
  }, {
    "name" : "resultFormat",
    "value" : "allure2"
  } ],
  "parameters" : [ {
    "name" : "data",
    "value" : "{'ids': '1688475997541777408'}"
  }, {
    "name" : "expect",
    "value" : "{'state': True, 'message': '删除维度成功'}"
  }, {
    "name" : "interface",
    "value" : "'根据维度编码删除维度'"
  }, {
    "name" : "level",
    "value" : "'高'"
  }, {
    "name" : "method",
    "value" : "'DELETE'"
  }, {
    "name" : "mime",
    "value" : "'query'"
  }, {
    "name" : "module",
    "value" : "'维度管理'"
  }, {
    "name" : "sql_sentence",
    "value" : "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test56_dem\";'"
  }, {
    "name" : "sql_type",
    "value" : "'select'"
  }, {
    "name" : "title",
    "value" : "'正向用例'"
  }, {
    "name" : "update_key",
    "value" : "'ids'"
  }, {
    "name" : "url",
    "value" : "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'"
  } ],
  "links" : [ ],
  "hidden" : true,
  "retry" : true,
  "extra" : {
    "categories" : [ ],
    "tags" : [ ]
  },
  "source" : "d167a8fc92917bcd.json",
  "parameterValues" : [ "{'ids': '1688475997541777408'}", "{'state': True, 'message': '删除维度成功'}", "'根据维度编码删除维度'", "'高'", "'DELETE'", "'query'", "'维度管理'", "'SELECT ID_ FROM uc_demension WHERE `CODE_`=\"test56_dem\";'", "'select'", "'正向用例'", "'ids'", "'http://120.46.172.186:8080/api/demension/v1/dem/deleteDemByIds'" ]
}