1 |
- {"uid":"30fcaadeb0b2b005","name":"登陆失败用例,用户名为15574213900,密码123456","fullName":"test_case.login_test.TestCase#test_login_fail","historyId":"fec8560f772b0587f7edeb2decf70f36","time":{"start":1752642868620,"stop":1752642880516,"duration":11896},"description":"登陆失败,这是没问题的描述","descriptionHtml":"<p>登陆失败,这是没问题的描述</p>\n","status":"broken","statusMessage":"selenium.common.exceptions.TimeoutException: Message: \nStacktrace:\n\tGetHandleVerifier [0x0x7ff689676f65+76917]\n\tGetHandleVerifier [0x0x7ff689676fc0+77008]\n\t(No symbol) [0x0x7ff689429dea]\n\t(No symbol) [0x0x7ff689480256]\n\t(No symbol) [0x0x7ff68948050c]\n\t(No symbol) [0x0x7ff6894d3887]\n\t(No symbol) [0x0x7ff6894a84af]\n\t(No symbol) [0x0x7ff6894d065c]\n\t(No symbol) [0x0x7ff6894a8243]\n\t(No symbol) [0x0x7ff689471431]\n\t(No symbol) [0x0x7ff6894721c3]\n\tGetHandleVerifier [0x0x7ff68994d29d+3051437]\n\tGetHandleVerifier [0x0x7ff6899478f3+3028483]\n\tGetHandleVerifier [0x0x7ff68996588d+3151261]\n\tGetHandleVerifier [0x0x7ff68969182e+185662]\n\tGetHandleVerifier [0x0x7ff6896996ef+218111]\n\tGetHandleVerifier [0x0x7ff68967fae4+112628]\n\tGetHandleVerifier [0x0x7ff68967fc99+113065]\n\tGetHandleVerifier [0x0x7ff689666c68+10616]\n\tBaseThreadInitThunk [0x0x7ff81428e8d7+23]\n\tRtlUserThreadStart [0x0x7ff81639c34c+44]","statusTrace":"self = <test_case.login_test.TestCase object at 0x00000183D7F412D0>\ndriver = <selenium.webdriver.chrome.webdriver.WebDriver (session=\"5016bd57b2721d90c13d26ab513ac9bf\")>\nusername = 15574213900, passoword = 123456, expect = '手机号或密码错误!'\n\n @allure.feature('登陆功能')\n @allure.story(\"这是登陆失败功能噢\")\n @allure.title(\"登陆-失败用例\")\n @allure.testcase(\"用例链接地址:http://120.25.127.201:18001/\")\n @allure.issue(\"缺陷链接地址:http://120.25.127.201:18001/.html\")\n @allure.description(\"登陆失败,这是没问题的描述\")\n @allure.severity(\"blocker\")\n @pytest.mark.parametrize(\"username,passoword,expect\", load_excel(\"./data/登陆账号失败.xlsx\"))\n def test_login_fail(self, driver, username, passoword, expect):\n allure.dynamic.title(f\"登陆失败用例,用户名为{username},密码{passoword}\")\n self.login_page = LoginPage(driver)\n self.login_page.login(username, passoword)\n # 断言\n> sjmsg=self.login_page.get_result_text()\n\ntest_case\\login_test.py:38: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\npage\\loginPage.py:29: in get_result_text\n result=self.get_text(*login_assert_text)\nbase\\WebKeys.py:78: in get_text\n result = self.wait.until(\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n\nself = <selenium.webdriver.support.wait.WebDriverWait (session=\"5016bd57b2721d90c13d26ab513ac9bf\")>\nmethod = <function WebKeys.get_text.<locals>.<lambda> at 0x00000183D803C280>\nmessage = ''\n\n def until(self, method: Callable[[D], Union[Literal[False], T]], message: str = \"\") -> T:\n \"\"\"Wait until the method returns a value that is not False.\n \n Calls the method provided with the driver as an argument until the\n return value does not evaluate to ``False``.\n \n Parameters:\n -----------\n method: callable(WebDriver)\n - A callable object that takes a WebDriver instance as an argument.\n \n message: str\n - Optional message for :exc:`TimeoutException`\n \n Return:\n -------\n object: T\n - The result of the last call to `method`\n \n Raises:\n -------\n TimeoutException\n - If 'method' does not return a truthy value within the WebDriverWait\n object's timeout\n \n Example:\n --------\n >>> from selenium.webdriver.common.by import By\n >>> from selenium.webdriver.support.ui import WebDriverWait\n >>> from selenium.webdriver.support import expected_conditions as EC\n \n # Wait until an element is visible on the page\n >>> wait = WebDriverWait(driver, 10)\n >>> element = wait.until(EC.visibility_of_element_located((By.ID, \"exampleId\")))\n >>> print(element.text)\n \"\"\"\n screen = None\n stacktrace = None\n \n end_time = time.monotonic() + self._timeout\n while True:\n try:\n value = method(self._driver)\n if value:\n return value\n except self._ignored_exceptions as exc:\n screen = getattr(exc, \"screen\", None)\n stacktrace = getattr(exc, \"stacktrace\", None)\n if time.monotonic() > end_time:\n break\n time.sleep(self._poll)\n> raise TimeoutException(message, screen, stacktrace)\nE selenium.common.exceptions.TimeoutException: Message: \nE Stacktrace:\nE \tGetHandleVerifier [0x0x7ff689676f65+76917]\nE \tGetHandleVerifier [0x0x7ff689676fc0+77008]\nE \t(No symbol) [0x0x7ff689429dea]\nE \t(No symbol) [0x0x7ff689480256]\nE \t(No symbol) [0x0x7ff68948050c]\nE \t(No symbol) [0x0x7ff6894d3887]\nE \t(No symbol) [0x0x7ff6894a84af]\nE \t(No symbol) [0x0x7ff6894d065c]\nE \t(No symbol) [0x0x7ff6894a8243]\nE \t(No symbol) [0x0x7ff689471431]\nE \t(No symbol) [0x0x7ff6894721c3]\nE \tGetHandleVerifier [0x0x7ff68994d29d+3051437]\nE \tGetHandleVerifier [0x0x7ff6899478f3+3028483]\nE \tGetHandleVerifier [0x0x7ff68996588d+3151261]\nE \tGetHandleVerifier [0x0x7ff68969182e+185662]\nE \tGetHandleVerifier [0x0x7ff6896996ef+218111]\nE \tGetHandleVerifier [0x0x7ff68967fae4+112628]\nE \tGetHandleVerifier [0x0x7ff68967fc99+113065]\nE \tGetHandleVerifier [0x0x7ff689666c68+10616]\nE \tBaseThreadInitThunk [0x0x7ff81428e8d7+23]\nE \tRtlUserThreadStart [0x0x7ff81639c34c+44]\n\nvenv\\lib\\site-packages\\selenium\\webdriver\\support\\wait.py:138: TimeoutException","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"driver","time":{"start":1752642866755,"stop":1752642868618,"duration":1863},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"stepsCount":0,"attachmentStep":false,"hasContent":false}],"testStage":{"description":"登陆失败,这是没问题的描述","status":"broken","statusMessage":"selenium.common.exceptions.TimeoutException: Message: \nStacktrace:\n\tGetHandleVerifier [0x0x7ff689676f65+76917]\n\tGetHandleVerifier [0x0x7ff689676fc0+77008]\n\t(No symbol) [0x0x7ff689429dea]\n\t(No symbol) [0x0x7ff689480256]\n\t(No symbol) [0x0x7ff68948050c]\n\t(No symbol) [0x0x7ff6894d3887]\n\t(No symbol) [0x0x7ff6894a84af]\n\t(No symbol) [0x0x7ff6894d065c]\n\t(No symbol) [0x0x7ff6894a8243]\n\t(No symbol) [0x0x7ff689471431]\n\t(No symbol) [0x0x7ff6894721c3]\n\tGetHandleVerifier [0x0x7ff68994d29d+3051437]\n\tGetHandleVerifier [0x0x7ff6899478f3+3028483]\n\tGetHandleVerifier [0x0x7ff68996588d+3151261]\n\tGetHandleVerifier [0x0x7ff68969182e+185662]\n\tGetHandleVerifier [0x0x7ff6896996ef+218111]\n\tGetHandleVerifier [0x0x7ff68967fae4+112628]\n\tGetHandleVerifier [0x0x7ff68967fc99+113065]\n\tGetHandleVerifier [0x0x7ff689666c68+10616]\n\tBaseThreadInitThunk [0x0x7ff81428e8d7+23]\n\tRtlUserThreadStart [0x0x7ff81639c34c+44]","statusTrace":"self = <test_case.login_test.TestCase object at 0x00000183D7F412D0>\ndriver = <selenium.webdriver.chrome.webdriver.WebDriver (session=\"5016bd57b2721d90c13d26ab513ac9bf\")>\nusername = 15574213900, passoword = 123456, expect = '手机号或密码错误!'\n\n @allure.feature('登陆功能')\n @allure.story(\"这是登陆失败功能噢\")\n @allure.title(\"登陆-失败用例\")\n @allure.testcase(\"用例链接地址:http://120.25.127.201:18001/\")\n @allure.issue(\"缺陷链接地址:http://120.25.127.201:18001/.html\")\n @allure.description(\"登陆失败,这是没问题的描述\")\n @allure.severity(\"blocker\")\n @pytest.mark.parametrize(\"username,passoword,expect\", load_excel(\"./data/登陆账号失败.xlsx\"))\n def test_login_fail(self, driver, username, passoword, expect):\n allure.dynamic.title(f\"登陆失败用例,用户名为{username},密码{passoword}\")\n self.login_page = LoginPage(driver)\n self.login_page.login(username, passoword)\n # 断言\n> sjmsg=self.login_page.get_result_text()\n\ntest_case\\login_test.py:38: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\npage\\loginPage.py:29: in get_result_text\n result=self.get_text(*login_assert_text)\nbase\\WebKeys.py:78: in get_text\n result = self.wait.until(\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n\nself = <selenium.webdriver.support.wait.WebDriverWait (session=\"5016bd57b2721d90c13d26ab513ac9bf\")>\nmethod = <function WebKeys.get_text.<locals>.<lambda> at 0x00000183D803C280>\nmessage = ''\n\n def until(self, method: Callable[[D], Union[Literal[False], T]], message: str = \"\") -> T:\n \"\"\"Wait until the method returns a value that is not False.\n \n Calls the method provided with the driver as an argument until the\n return value does not evaluate to ``False``.\n \n Parameters:\n -----------\n method: callable(WebDriver)\n - A callable object that takes a WebDriver instance as an argument.\n \n message: str\n - Optional message for :exc:`TimeoutException`\n \n Return:\n -------\n object: T\n - The result of the last call to `method`\n \n Raises:\n -------\n TimeoutException\n - If 'method' does not return a truthy value within the WebDriverWait\n object's timeout\n \n Example:\n --------\n >>> from selenium.webdriver.common.by import By\n >>> from selenium.webdriver.support.ui import WebDriverWait\n >>> from selenium.webdriver.support import expected_conditions as EC\n \n # Wait until an element is visible on the page\n >>> wait = WebDriverWait(driver, 10)\n >>> element = wait.until(EC.visibility_of_element_located((By.ID, \"exampleId\")))\n >>> print(element.text)\n \"\"\"\n screen = None\n stacktrace = None\n \n end_time = time.monotonic() + self._timeout\n while True:\n try:\n value = method(self._driver)\n if value:\n return value\n except self._ignored_exceptions as exc:\n screen = getattr(exc, \"screen\", None)\n stacktrace = getattr(exc, \"stacktrace\", None)\n if time.monotonic() > end_time:\n break\n time.sleep(self._poll)\n> raise TimeoutException(message, screen, stacktrace)\nE selenium.common.exceptions.TimeoutException: Message: \nE Stacktrace:\nE \tGetHandleVerifier [0x0x7ff689676f65+76917]\nE \tGetHandleVerifier [0x0x7ff689676fc0+77008]\nE \t(No symbol) [0x0x7ff689429dea]\nE \t(No symbol) [0x0x7ff689480256]\nE \t(No symbol) [0x0x7ff68948050c]\nE \t(No symbol) [0x0x7ff6894d3887]\nE \t(No symbol) [0x0x7ff6894a84af]\nE \t(No symbol) [0x0x7ff6894d065c]\nE \t(No symbol) [0x0x7ff6894a8243]\nE \t(No symbol) [0x0x7ff689471431]\nE \t(No symbol) [0x0x7ff6894721c3]\nE \tGetHandleVerifier [0x0x7ff68994d29d+3051437]\nE \tGetHandleVerifier [0x0x7ff6899478f3+3028483]\nE \tGetHandleVerifier [0x0x7ff68996588d+3151261]\nE \tGetHandleVerifier [0x0x7ff68969182e+185662]\nE \tGetHandleVerifier [0x0x7ff6896996ef+218111]\nE \tGetHandleVerifier [0x0x7ff68967fae4+112628]\nE \tGetHandleVerifier [0x0x7ff68967fc99+113065]\nE \tGetHandleVerifier [0x0x7ff689666c68+10616]\nE \tBaseThreadInitThunk [0x0x7ff81428e8d7+23]\nE \tRtlUserThreadStart [0x0x7ff81639c34c+44]\n\nvenv\\lib\\site-packages\\selenium\\webdriver\\support\\wait.py:138: TimeoutException","steps":[{"name":"访问浏览器","time":{"start":1752642868620,"stop":1752642869993,"duration":1373},"status":"passed","steps":[{"name":"访问","time":{"start":1752642868620,"stop":1752642869993,"duration":1373},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"url","value":"'http://novel.hctestedu.com/user/login.html'"}],"shouldDisplayMessage":false,"attachmentsCount":0,"stepsCount":0,"attachmentStep":false,"hasContent":true}],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"stepsCount":1,"attachmentStep":false,"hasContent":true},{"name":"输入用户名15574213900","time":{"start":1752642869993,"stop":1752642870085,"duration":92},"status":"passed","steps":[{"name":"元素定位","time":{"start":1752642869993,"stop":1752642870019,"duration":26},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"name","value":"'xpath'"},{"name":"value","value":"'//input[@id='txtUName']'"}],"shouldDisplayMessage":false,"attachmentsCount":0,"stepsCount":0,"attachmentStep":false,"hasContent":true}],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"stepsCount":1,"attachmentStep":false,"hasContent":true},{"name":"输入密码123456","time":{"start":1752642870086,"stop":1752642870166,"duration":80},"status":"passed","steps":[{"name":"元素定位","time":{"start":1752642870086,"stop":1752642870114,"duration":28},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"name","value":"'xpath'"},{"name":"value","value":"'//input[@id='txtPassword']'"}],"shouldDisplayMessage":false,"attachmentsCount":0,"stepsCount":0,"attachmentStep":false,"hasContent":true}],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"stepsCount":1,"attachmentStep":false,"hasContent":true},{"name":"点击登陆","time":{"start":1752642870166,"stop":1752642870319,"duration":153},"status":"passed","steps":[{"name":"点击","time":{"start":1752642870166,"stop":1752642870318,"duration":152},"status":"passed","steps":[{"name":"元素定位","time":{"start":1752642870166,"stop":1752642870197,"duration":31},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"name","value":"'xpath'"},{"name":"value","value":"'//input[@id='btnLogin']'"}],"shouldDisplayMessage":false,"attachmentsCount":0,"stepsCount":0,"attachmentStep":false,"hasContent":true}],"attachments":[],"parameters":[{"name":"name","value":"'xpath'"},{"name":"value","value":"'//input[@id='btnLogin']'"}],"shouldDisplayMessage":false,"attachmentsCount":0,"stepsCount":1,"attachmentStep":false,"hasContent":true}],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"stepsCount":2,"attachmentStep":false,"hasContent":true},{"name":"获得返回文本","time":{"start":1752642870319,"stop":1752642880513,"duration":10194},"status":"broken","statusMessage":"selenium.common.exceptions.TimeoutException: Message: \nStacktrace:\n\tGetHandleVerifier [0x0x7ff689676f65+76917]\n\tGetHandleVerifier [0x0x7ff689676fc0+77008]\n\t(No symbol) [0x0x7ff689429dea]\n\t(No symbol) [0x0x7ff689480256]\n\t(No symbol) [0x0x7ff68948050c]\n\t(No symbol) [0x0x7ff6894d3887]\n\t(No symbol) [0x0x7ff6894a84af]\n\t(No symbol) [0x0x7ff6894d065c]\n\t(No symbol) [0x0x7ff6894a8243]\n\t(No symbol) [0x0x7ff689471431]\n\t(No symbol) [0x0x7ff6894721c3]\n\tGetHandleVerifier [0x0x7ff68994d29d+3051437]\n\tGetHandleVerifier [0x0x7ff6899478f3+3028483]\n\tGetHandleVerifier [0x0x7ff68996588d+3151261]\n\tGetHandleVerifier [0x0x7ff68969182e+185662]\n\tGetHandleVerifier [0x0x7ff6896996ef+218111]\n\tGetHandleVerifier [0x0x7ff68967fae4+112628]\n\tGetHandleVerifier [0x0x7ff68967fc99+113065]\n\tGetHandleVerifier [0x0x7ff689666c68+10616]\n\tBaseThreadInitThunk [0x0x7ff81428e8d7+23]\n\tRtlUserThreadStart [0x0x7ff81639c34c+44]\n\n","statusTrace":" File \"F:\\web_pom_project2\\venv\\lib\\site-packages\\allure_commons\\_allure.py\", line 202, in impl\n return func(*a, **kw)\n File \"F:\\web_pom_project2\\base\\WebKeys.py\", line 78, in get_text\n result = self.wait.until(\n File \"F:\\web_pom_project2\\venv\\lib\\site-packages\\selenium\\webdriver\\support\\wait.py\", line 138, in until\n raise TimeoutException(message, screen, stacktrace)\n","steps":[],"attachments":[],"parameters":[{"name":"name","value":"'xpath'"},{"name":"value","value":"'//*[@id=\"LabErr\"]'"}],"shouldDisplayMessage":true,"attachmentsCount":0,"stepsCount":0,"attachmentStep":false,"hasContent":true},{"name":"添加失败的截图 ---> ","time":{"start":1752642880759,"stop":1752642880908,"duration":149},"status":"passed","steps":[],"attachments":[{"uid":"1eb13e638849764a","name":"失败的截图","source":"1eb13e638849764a.png","type":"image/png","size":255321}],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":1,"stepsCount":0,"attachmentStep":false,"hasContent":true}],"attachments":[],"parameters":[],"shouldDisplayMessage":true,"attachmentsCount":1,"stepsCount":11,"attachmentStep":false,"hasContent":true},"afterStages":[{"name":"driver::0","time":{"start":1752642880912,"stop":1752642883167,"duration":2255},"status":"passed","steps":[],"attachments":[],"parameters":[],"shouldDisplayMessage":false,"attachmentsCount":0,"stepsCount":0,"attachmentStep":false,"hasContent":false}],"labels":[{"name":"feature","value":"登陆功能"},{"name":"severity","value":"blocker"},{"name":"story","value":"这是登陆失败功能噢"},{"name":"epic","value":"读书屋项目"},{"name":"parentSuite","value":"test_case"},{"name":"suite","value":"login_test"},{"name":"subSuite","value":"TestCase"},{"name":"host","value":"chiyu"},{"name":"thread","value":"24028-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"test_case.login_test"},{"name":"resultFormat","value":"allure2"}],"parameters":[{"name":"expect","value":"'手机号或密码错误!'"},{"name":"passoword","value":"123456"},{"name":"username","value":"15574213900"}],"links":[{"name":"缺陷链接地址:http://120.25.127.201:18001/.html","url":"缺陷链接地址:http://120.25.127.201:18001/.html","type":"issue"},{"name":"用例链接地址:http://120.25.127.201:18001/","url":"用例链接地址:http://120.25.127.201:18001/","type":"tms"}],"hidden":false,"retry":false,"extra":{"severity":"blocker","retries":[],"categories":[{"name":"Test defects","matchedStatuses":[],"flaky":false}],"tags":[]},"source":"30fcaadeb0b2b005.json","parameterValues":["'手机号或密码错误!'","123456","15574213900"]}
|