{"name": "反向用例-用户名正确-密码过长", "status": "failed", "statusDetails": {"message": "AssertionError: 断言失败,描述失败的原因", "trace": "self = <APIAutoTest_v3_1.test_case.test_basic.test_case.TestBPM object at 0x00000203D7D63FD0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过长', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '1', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_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 '账户错误或该租户未启用' == '账号或密码错误'\nE \nE - 账号或密码错误\nE + 账户错误或该租户未启用\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 0x00000203D7D63FD0>\nreq_fix = <APIAutoTest_v3_1.request_method.request_method.RequestMethod object at 0x00000203D7D63430>\ndb_fix = <APIAutoTest_v3_1.common.db.DB object at 0x00000203D7D3B7C0>, module_name = '认证接口', api_name = '登录系统', level = '中'\ncase_title = '反向用例-用户名正确-密码过长', case_method = 'POST', case_url = 'http://36.139.193.99:8088/auth', case_mime = 'application/json'\ncase_data = {'password': '1', 'username': 'admin'}, expect_data = {'message': '账户错误或该租户未启用', 'state': False}, sql_type = None, sql_data = None\nupdate_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"}, "attachments": [{"name": "log", "source": "3af2a59e-0d72-4b93-9848-798c682e9518-attachment.txt", "type": "text/plain"}, {"name": "stdout", "source": "501a0fc4-265f-44d0-9051-131e3b90df5e-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "module_name", "value": "'认证接口'"}, {"name": "api_name", "value": "'登录系统'"}, {"name": "level", "value": "'中'"}, {"name": "case_title", "value": "'反向用例-用户名正确-密码过长'"}, {"name": "case_method", "value": "'POST'"}, {"name": "case_url", "value": "'http://36.139.193.99:8088/auth'"}, {"name": "case_mime", "value": "'application/json'"}, {"name": "case_data", "value": "{'username': 'admin', 'password': '1'}"}, {"name": "expect_data", "value": "{'state': False, 'message': '账户错误或该租户未启用'}"}, {"name": "sql_type", "value": "None"}, {"name": "sql_data", "value": "None"}, {"name": "update_key", "value": "None"}], "start": 1721034587491, "stop": 1721034587531, "uuid": "255fc337-8782-439f-8079-63ffa3b00ffb", "historyId": "63bcb2c305b7f0bcb7fd2d55d671e0a6", "testCaseId": "7eaa431ea2bba1e2b3a17e36e15d3c36", "fullName": "test_case.test_basic.test_case.TestBPM#test_bpm", "labels": [{"name": "feature", "value": "认证接口"}, {"name": "story", "value": "登录系统"}, {"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": "8128-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.test_basic.test_case"}]}