{
  "uid" : "c8842fc2252c7104",
  "name" : "反向用例-password过短",
  "fullName" : "test_case.test_lao_zhang.test_bpm.TestBPM#test_bpm",
  "historyId" : "32acfdd0ddf4b364df1cca7351c8f936",
  "time" : {
    "start" : 1725517431812,
    "stop" : 1725517431832,
    "duration" : 20
  },
  "status" : "failed",
  "statusMessage" : "AssertionError: 断言失败",
  "statusTrace" : "self = <apiAutoTest_v3.test_case.test_lao_zhang.test_bpm.TestBPM object at 0x0000023F24EF2940>\nfix_db = <apiAutoTest_v3.common.db.DB object at 0x0000023F25094040>\nfix_req = <apiAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000023F250940A0>, module_name = '认证接口', api_name = '登录系统'\nlevel = '中', title = '反向用例-password过短', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'\ncase_data = {'password': '123456', 'username': 'admin'}, expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None\nupdate_key = None\n\n    @allure.epic(\"BPM项目-老张\")\n    # @allure.feature(\"模块名称\")\n    # @allure.story(\"接口名称\")\n    # @allure.title(\"用例标题\")\n    # @allure.severity(\"用例等级\")\n    @pytest.mark.parametrize(\"module_name, api_name, level, title, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key\", excel.get_data())\n    def test_bpm(self, fix_db, fix_req, module_name, api_name, level, title, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):\n        allure.dynamic.feature(module_name)\n        allure.dynamic.story(api_name)\n        allure.dynamic.title(title)\n        allure.dynamic.severity(level)\n    \n        # 判断sql语句的类型是否为delete\n        if sql_type == \"delete\":\n            # 使用DB类对象调用delete方法执行删除的sql语句,DB类对象===fix_db自定义固件\n            fix_db.delete(sql_data['delete'])\n    \n        # 判断sql语句类型是否为select\n        elif sql_type == \"select\":\n            # 使用DB类对象调用select方法执行查询的sql语句, 并获取查询结果,DB类对象===fix_db自定义固件\n            select_result = fix_db.select(sql_data['select'])\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n    \n        # 判断sql语句的类型是否为select|delete 或者为 delete|select\n        elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n            # 使用DB类对象调用delete方法执行删除的sql语句,DB类对象===fix_db自定义固件\n            fix_db.delete(sql_data['delete'])\n    \n            # 使用DB类对象调用select方法执行查询的sql语句, 并获取查询结果,DB类对象===fix_db自定义固件\n            select_result = fix_db.select(sql_data['select'])\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n    \n        # 使用RequestMethod类对象发送请求\n        res = fix_req.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n    \n        # 断言\n        try:\n            for key in expect_data.keys():\n>               assert expect_data[key] == res.json().get(key)\nE               AssertionError: assert '账号或密码错误' == '解密密码异常,请检查RSA公钥和私钥配置'\nE                 \nE                 - 解密密码异常,请检查RSA公钥和私钥配置\nE                 + 账号或密码错误\n\ntest_case\\test_lao_zhang\\test_bpm.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <apiAutoTest_v3.test_case.test_lao_zhang.test_bpm.TestBPM object at 0x0000023F24EF2940>\nfix_db = <apiAutoTest_v3.common.db.DB object at 0x0000023F25094040>\nfix_req = <apiAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000023F250940A0>, module_name = '认证接口', api_name = '登录系统'\nlevel = '中', title = '反向用例-password过短', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'\ncase_data = {'password': '123456', 'username': 'admin'}, expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None\nupdate_key = None\n\n    @allure.epic(\"BPM项目-老张\")\n    # @allure.feature(\"模块名称\")\n    # @allure.story(\"接口名称\")\n    # @allure.title(\"用例标题\")\n    # @allure.severity(\"用例等级\")\n    @pytest.mark.parametrize(\"module_name, api_name, level, title, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key\", excel.get_data())\n    def test_bpm(self, fix_db, fix_req, module_name, api_name, level, title, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):\n        allure.dynamic.feature(module_name)\n        allure.dynamic.story(api_name)\n        allure.dynamic.title(title)\n        allure.dynamic.severity(level)\n    \n        # 判断sql语句的类型是否为delete\n        if sql_type == \"delete\":\n            # 使用DB类对象调用delete方法执行删除的sql语句,DB类对象===fix_db自定义固件\n            fix_db.delete(sql_data['delete'])\n    \n        # 判断sql语句类型是否为select\n        elif sql_type == \"select\":\n            # 使用DB类对象调用select方法执行查询的sql语句, 并获取查询结果,DB类对象===fix_db自定义固件\n            select_result = fix_db.select(sql_data['select'])\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n    \n        # 判断sql语句的类型是否为select|delete 或者为 delete|select\n        elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n            # 使用DB类对象调用delete方法执行删除的sql语句,DB类对象===fix_db自定义固件\n            fix_db.delete(sql_data['delete'])\n    \n            # 使用DB类对象调用select方法执行查询的sql语句, 并获取查询结果,DB类对象===fix_db自定义固件\n            select_result = fix_db.select(sql_data['select'])\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n    \n        # 使用RequestMethod类对象发送请求\n        res = fix_req.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n    \n        # 断言\n        try:\n            for key in expect_data.keys():\n                assert expect_data[key] == res.json().get(key)\n        except AssertionError:\n            log.error(f\"断言失败,接口url为:{url}, 用例数据:{case_data}, 期望数据:{expect_data}, 服务器返回数据:{res.text}\")\n>           raise AssertionError(\"断言失败\")\nE           AssertionError: 断言失败\n\ntest_case\\test_lao_zhang\\test_bpm.py:64: AssertionError",
  "flaky" : false,
  "newFailed" : false,
  "beforeStages" : [ ],
  "testStage" : {
    "status" : "failed",
    "statusMessage" : "AssertionError: 断言失败",
    "statusTrace" : "self = <apiAutoTest_v3.test_case.test_lao_zhang.test_bpm.TestBPM object at 0x0000023F24EF2940>\nfix_db = <apiAutoTest_v3.common.db.DB object at 0x0000023F25094040>\nfix_req = <apiAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000023F250940A0>, module_name = '认证接口', api_name = '登录系统'\nlevel = '中', title = '反向用例-password过短', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'\ncase_data = {'password': '123456', 'username': 'admin'}, expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None\nupdate_key = None\n\n    @allure.epic(\"BPM项目-老张\")\n    # @allure.feature(\"模块名称\")\n    # @allure.story(\"接口名称\")\n    # @allure.title(\"用例标题\")\n    # @allure.severity(\"用例等级\")\n    @pytest.mark.parametrize(\"module_name, api_name, level, title, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key\", excel.get_data())\n    def test_bpm(self, fix_db, fix_req, module_name, api_name, level, title, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):\n        allure.dynamic.feature(module_name)\n        allure.dynamic.story(api_name)\n        allure.dynamic.title(title)\n        allure.dynamic.severity(level)\n    \n        # 判断sql语句的类型是否为delete\n        if sql_type == \"delete\":\n            # 使用DB类对象调用delete方法执行删除的sql语句,DB类对象===fix_db自定义固件\n            fix_db.delete(sql_data['delete'])\n    \n        # 判断sql语句类型是否为select\n        elif sql_type == \"select\":\n            # 使用DB类对象调用select方法执行查询的sql语句, 并获取查询结果,DB类对象===fix_db自定义固件\n            select_result = fix_db.select(sql_data['select'])\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n    \n        # 判断sql语句的类型是否为select|delete 或者为 delete|select\n        elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n            # 使用DB类对象调用delete方法执行删除的sql语句,DB类对象===fix_db自定义固件\n            fix_db.delete(sql_data['delete'])\n    \n            # 使用DB类对象调用select方法执行查询的sql语句, 并获取查询结果,DB类对象===fix_db自定义固件\n            select_result = fix_db.select(sql_data['select'])\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n    \n        # 使用RequestMethod类对象发送请求\n        res = fix_req.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n    \n        # 断言\n        try:\n            for key in expect_data.keys():\n>               assert expect_data[key] == res.json().get(key)\nE               AssertionError: assert '账号或密码错误' == '解密密码异常,请检查RSA公钥和私钥配置'\nE                 \nE                 - 解密密码异常,请检查RSA公钥和私钥配置\nE                 + 账号或密码错误\n\ntest_case\\test_lao_zhang\\test_bpm.py:61: AssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <apiAutoTest_v3.test_case.test_lao_zhang.test_bpm.TestBPM object at 0x0000023F24EF2940>\nfix_db = <apiAutoTest_v3.common.db.DB object at 0x0000023F25094040>\nfix_req = <apiAutoTest_v3.request_method.request_method.RequestMethod object at 0x0000023F250940A0>, module_name = '认证接口', api_name = '登录系统'\nlevel = '中', title = '反向用例-password过短', url = 'http://36.139.193.99:8088/auth', method = 'POST', mime = 'application/json'\ncase_data = {'password': '123456', 'username': 'admin'}, expect_data = {'message': '账号或密码错误'}, sql_type = None, sql_data = None\nupdate_key = None\n\n    @allure.epic(\"BPM项目-老张\")\n    # @allure.feature(\"模块名称\")\n    # @allure.story(\"接口名称\")\n    # @allure.title(\"用例标题\")\n    # @allure.severity(\"用例等级\")\n    @pytest.mark.parametrize(\"module_name, api_name, level, title, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key\", excel.get_data())\n    def test_bpm(self, fix_db, fix_req, module_name, api_name, level, title, url, method, mime, case_data, expect_data, sql_type, sql_data, update_key):\n        allure.dynamic.feature(module_name)\n        allure.dynamic.story(api_name)\n        allure.dynamic.title(title)\n        allure.dynamic.severity(level)\n    \n        # 判断sql语句的类型是否为delete\n        if sql_type == \"delete\":\n            # 使用DB类对象调用delete方法执行删除的sql语句,DB类对象===fix_db自定义固件\n            fix_db.delete(sql_data['delete'])\n    \n        # 判断sql语句类型是否为select\n        elif sql_type == \"select\":\n            # 使用DB类对象调用select方法执行查询的sql语句, 并获取查询结果,DB类对象===fix_db自定义固件\n            select_result = fix_db.select(sql_data['select'])\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n    \n        # 判断sql语句的类型是否为select|delete 或者为 delete|select\n        elif sql_type == \"select|delete\" or sql_type == \"delete|select\":\n            # 使用DB类对象调用delete方法执行删除的sql语句,DB类对象===fix_db自定义固件\n            fix_db.delete(sql_data['delete'])\n    \n            # 使用DB类对象调用select方法执行查询的sql语句, 并获取查询结果,DB类对象===fix_db自定义固件\n            select_result = fix_db.select(sql_data['select'])\n            # 将查询结果更新到用例数据中\n            case_data[update_key] = select_result\n    \n        # 使用RequestMethod类对象发送请求\n        res = fix_req.request_all(req_method=method, req_url=url, req_mime=mime, case_data=case_data)\n    \n        # 断言\n        try:\n            for key in expect_data.keys():\n                assert expect_data[key] == res.json().get(key)\n        except AssertionError:\n            log.error(f\"断言失败,接口url为:{url}, 用例数据:{case_data}, 期望数据:{expect_data}, 服务器返回数据:{res.text}\")\n>           raise AssertionError(\"断言失败\")\nE           AssertionError: 断言失败\n\ntest_case\\test_lao_zhang\\test_bpm.py:64: AssertionError",
    "steps" : [ ],
    "attachments" : [ {
      "uid" : "9e3363794269b470",
      "name" : "log",
      "source" : "9e3363794269b470.txt",
      "type" : "text/plain",
      "size" : 1076
    } ],
    "parameters" : [ ],
    "stepsCount" : 0,
    "hasContent" : true,
    "shouldDisplayMessage" : true,
    "attachmentsCount" : 1
  },
  "afterStages" : [ ],
  "labels" : [ {
    "name" : "feature",
    "value" : "认证接口"
  }, {
    "name" : "story",
    "value" : "登录系统"
  }, {
    "name" : "severity",
    "value" : "中"
  }, {
    "name" : "epic",
    "value" : "BPM项目-老张"
  }, {
    "name" : "parentSuite",
    "value" : "test_case.test_lao_zhang"
  }, {
    "name" : "suite",
    "value" : "test_bpm"
  }, {
    "name" : "subSuite",
    "value" : "TestBPM"
  }, {
    "name" : "host",
    "value" : "LAPTOP-O09782E1"
  }, {
    "name" : "thread",
    "value" : "21668-MainThread"
  }, {
    "name" : "framework",
    "value" : "pytest"
  }, {
    "name" : "language",
    "value" : "cpython3"
  }, {
    "name" : "package",
    "value" : "test_case.test_lao_zhang.test_bpm"
  }, {
    "name" : "resultFormat",
    "value" : "allure2"
  } ],
  "parameters" : [ {
    "name" : "api_name",
    "value" : "'登录系统'"
  }, {
    "name" : "case_data",
    "value" : "{'username': 'admin', 'password': '123456'}"
  }, {
    "name" : "expect_data",
    "value" : "{'message': '账号或密码错误'}"
  }, {
    "name" : "level",
    "value" : "'中'"
  }, {
    "name" : "method",
    "value" : "'POST'"
  }, {
    "name" : "mime",
    "value" : "'application/json'"
  }, {
    "name" : "module_name",
    "value" : "'认证接口'"
  }, {
    "name" : "sql_data",
    "value" : "None"
  }, {
    "name" : "sql_type",
    "value" : "None"
  }, {
    "name" : "title",
    "value" : "'反向用例-password过短'"
  }, {
    "name" : "update_key",
    "value" : "None"
  }, {
    "name" : "url",
    "value" : "'http://36.139.193.99:8088/auth'"
  } ],
  "links" : [ ],
  "hidden" : true,
  "retry" : true,
  "extra" : {
    "categories" : [ ],
    "tags" : [ ]
  },
  "source" : "c8842fc2252c7104.json",
  "parameterValues" : [ "'登录系统'", "{'username': 'admin', 'password': '123456'}", "{'message': '账号或密码错误'}", "'中'", "'POST'", "'application/json'", "'认证接口'", "None", "None", "'反向用例-password过短'", "None", "'http://36.139.193.99:8088/auth'" ]
}