<!DOCTYPE html> <html> <head> <title>账号密码登录测试报告</title> <meta charset="UTF-8"> <style>body { font-family: consolas, Verdana, sans-serif; font-size: .95em; color: #696e71; display: grid; grid-template-columns: 1fr 5rem; } .main_section { width: 90%; margin: 0 auto; } #float_menu{ position:fixed; top:0; right:0; text-align: center; } #float_menu .menu-item { cursor: pointer; padding: .5em; margin: .5em 0; color: #c08580; background-color: #f8f0ef; font-size: 1.2em; } .result{ display: flex; } .result_table{ border-collapse: collapse; border: 1px solid #f0e0e5; width: 30em; text-align: center; font-size: 1.0em; } .result_table td{ border: 1px solid #f0e0e5; padding: .3em; } .result_barchart{ width: 30em; margin: 0 5em 0 5em; } .barchar_item{ margin: 2.5rem 0; } .barchart_barbox { margin: 0.5em 0; width: 100%; background-color: #fff; border: 1px solid #86c2dd; border-radius: .2em; } .barchart_bar { text-align: right; height: 1.2rem; } .h3_button { margin: 1.5em; cursor: pointer; color: #03a9f4; } .info { white-space:pre-wrap; margin: .8em 1.5em; } .error-info { color: #a64747 } .suite_dir { margin: 1em .2em; padding: .3em; /* background-color: #dfeff6; */ border: 1px solid #bcd8e4; } .suite_file { margin: 1em .2em; padding: .3em; border: 1px solid #bcd8e4; } .case { margin: 1em .2em; /* padding: .3em; */ border: 1px solid #e7d4d4; } .case_class_path{ margin: 0em 1em; } .folder_header { padding: .2em .7em; background-color: #fffaf9; cursor: pointer; } .setup{ margin: .2em; /* padding: .3em; */ /* border: 1px solid #e7d4d4; */ } .teardown{ margin: .2em; /* padding: .3em;*/ /* border: 1px solid #e7d4d4; */ } .test_steps{ margin: .2em; padding: .3em; /* border: 1px solid #e7d4d4; */ } .label { display: inline-block; padding: .1em .5em; font-size: .88em; letter-spacing: 1px; white-space: nowrap; color: #0d6ebc; border-radius: .2em; min-width: 5em; margin-right: 2em; font-family: consolas; } /* .suite_setup .label{ color: #219e26 ; } .suite_teardown .label{ color: #219e26; } */ /* .case.pass .casename{ color: #329132 ; } */ .case.pass .caselabel{ color: white; background-color: #3b9e3f; } /* .case.fail .casename{ color: #a64747; } */ .case.fail .caselabel{ color: white; background-color: #a64747; } /* .case.abort .casename{ color: #953ab7; } */ .case.abort .caselabel{ color: white; background-color: #9c27b0; } .case_step { margin: .8em; } .checkpoint_pass { margin: .8em; } .checkpoint_fail { margin: .8em; } .case_step .tag{ color: #2196f3;; margin: .3em 1em .3em 0; padding: .1em .3em; font-size: .92em; } .checkpoint_pass .tag{ color: #009806; margin:.3em 1em .3em .5em; padding: .1em .3em; font-size: .92em; } .checkpoint_fail .tag{ color: #9c2020; margin:.3em 1em .3em .5em; padding: .1em .3em; font-size: .92em; } .screenshot { border: 1px solid #86c2dd; } .executetime { float: right; } /* 模态框内容 */ .modal-content { margin: auto; display: block; width: 95%; max-width: 700px; max-height: 80vh; /* 设置最大高度为视口高度的80% */ object-fit: contain; /* 保持图片的宽高比 */ zoom: 3; } /* 模态框 */ .modal { display: none; /* 隐藏 */ position: fixed; /* 固定位置 */ z-index: 1; /* 坐在顶部 */ padding-top: 40px; /* 在图片上方添加一些内边距 */ left: 0; top: 0; width: 100%; /* 宽度 */ height: 100%; /* 高度 */ overflow: auto; /* 启用滚动 */ background-color: rgb(0,0,0); /* 背景颜色 */ background-color: rgba(0,0,0,0.9); /* 黑色背景半透明 */ } /* 关闭按钮 */ .close { position: absolute; /* 定义元素的定位方式为绝对定位 */ top: 10px; /* 距离最近的已定位祖先元素顶部15像素 */ right: 30px; /* 距离最近的已定位祖先元素右侧35像素 */ color: #f1f1f1; /* 文本颜色为浅灰色 */ font-size: 15px; /* 字体大小为40像素 */ font-weight: bold; /* 字体加粗 */ transition: 0.3s; /* 过渡效果,0.3秒内完成 */ } .close:hover, .close:focus { color: #bbb; text-decoration: none; cursor: pointer; } </style> <script type="text/javascript">var FOLDER_ALL_CASES = false; // 是否为精简模式的标记 var ERROR_INFOS = []; // 错误信息列表 var current_error_idx = -1; // 页面加载后执行的函数 window.addEventListener("load", function(){ // 所有 .folder_header 添加点击事件处理 let folderHeaderEles = document.querySelectorAll(".folder_header"); folderHeaderEles.forEach(function(ele) { ele.addEventListener("click", function(event) { let fb = event.target.closest('.folder_header').nextElementSibling; fb.style.display = fb.style.display === 'none' ? 'block' : 'none'; }); }); // 找到所有的错误信息对象 ERROR_INFOS = document.querySelectorAll(".error-info"); // 获取所有图片元素 let images = document.querySelectorAll('.modal-image'); // 获取模态框元素 let modal = document.getElementById("imageModal"); // 获取模态框中的图片元素 let modalImg = document.getElementById("img01"); // 获取关闭按钮元素 let span = document.getElementsByClassName("close")[0]; // 为每个图片添加点击事件监听器 images.forEach(function(img) { img.addEventListener("click", function() { modal.style.display = "block"; // 显示模态框 modalImg.src = this.src; // 设置模态框中的图片为点击的图片 }); }); // 当点击关闭按钮时,隐藏模态框 span.onclick = function() { modal.style.display = "none"; }; // 当点击模态框外区域时,隐藏模态框 window.onclick = function(event) { if (event.target == modal) { modal.style.display = "none"; } }; }); function toggle_folder_all_cases(){ let eles = document.querySelectorAll(".folder_body"); FOLDER_ALL_CASES = !FOLDER_ALL_CASES; document.getElementById('display_mode').innerHTML = FOLDER_ALL_CASES ? "Detail" : "Summary"; for (const ele of eles){ ele.style.display = FOLDER_ALL_CASES ? "none" : "block"; } } function previous_error(){ // 查找错误必须是详细模式 if (FOLDER_ALL_CASES) toggle_folder_all_cases() current_error_idx -= 1; if (current_error_idx < 0) current_error_idx = 0; let error = ERROR_INFOS[current_error_idx]; error.scrollIntoView({behavior: "smooth", block: "center", inline: "start"}); } function next_error(){ // 查找错误必须是详细模式 if (FOLDER_ALL_CASES) toggle_folder_all_cases() current_error_idx += 1; if (current_error_idx > ERROR_INFOS.length - 1) current_error_idx = ERROR_INFOS.length - 1; let error = ERROR_INFOS[current_error_idx]; error.scrollIntoView({behavior: "smooth", block: "center", inline: "start"}); } </script> </head> <body> <div class="modal" id="imageModal"> <div> <img class="modal-content" id="img01"> <span class="close">关闭</span> </div> </div> <div class="main_section"> <h1 style="font-family: auto">账号密码登录测试报告</h1> <h3>统计结果</h3> <div class="result"> <table class="result_table"> <tbody> <tr> <td>hytest 版本</td> <td>0.8.12</td> </tr> <tr> <td>开始时间</td> <td>2025/02/08 15:49:32</td> </tr> <tr> <td>结束时间</td> <td>2025/02/08 15:50:27</td> </tr> <tr> <td>耗时</td> <td>55.421 秒</td> </tr> <tr> <td>预备执行用例数量</td> <td>10</td> </tr> <tr> <td>实际执用例行数量</td> <td>10</td> </tr> <tr> <td>通过</td> <td>10</td> </tr> <tr> <td>失败</td> <td style="">0</td> </tr> <tr> <td>异常</td> <td style="">0</td> </tr> <tr> <td>阻塞</td> <td style="">0</td> </tr> <tr> <td>套件初始化失败</td> <td style="">0</td> </tr> <tr> <td>套件清除 失败</td> <td style="">0</td> </tr> <tr> <td>用例初始化失败</td> <td style="">0</td> </tr> <tr> <td>用例清除 失败</td> <td style="">0</td> </tr> </tbody> </table> <div class="result_barchart"> <div class="barchar_item"> <span>用例通过 100% : 10 个</span> <div class="barchart_barbox"> <div class="barchart_bar" style="width: 100.0%; background-color: #04AA6D;"></div> </div> </div> <div class="barchar_item"> <span>用例失败 0% : 0 个</span> <div class="barchart_barbox"> <div class="barchart_bar" style="width: 0.0%; background-color: #bb4069;"></div> </div> </div> <div class="barchar_item"> <span>用例异常 0% : 0 个</span> <div class="barchart_barbox"> <div class="barchart_bar" style="width: 0.0%; background-color: #9c27b0;"></div> </div> </div> <div class="barchar_item"> <span>用例阻塞 0% : 0 个</span> <div class="barchart_barbox"> <div class="barchart_bar" style="width: 0.0%; background-color: #dcbdbd;"></div> </div> </div> </div> </div> <div style="margin-top:2em"> <h3 style="display:inline">执行日志</h3> </div> <div class="exec_log"> <div class="suite_dir" id="suite_dir cases\"> <div> <span class="label">进入目录</span> <span>cases\</span> </div> </div> <div class="suite_dir" id="suite_dir cases\登录模块\"> <div> <span class="label">进入目录</span> <span>cases\登录模块\</span> </div> <div class="suite_setup setup" id="suite_setup setup cases\登录模块\"> <div class="folder_header"> <span class="label">套件初始化</span> <span>cases\登录模块\</span> <span class="executetime">2025-02-08 15:49:32</span> </div> <div class="folder_body"> <div class="case_step"> <span class="tag">步骤 #1</span> <span>初始化浏览器</span> </div> <div class="info">'----------' 正在初始化浏览器 '----------'</div> <div class="info">'----------' 浏览器初始化完成 '----------'</div> </div> </div> </div> <div class="suite_file" id="suite_file cases\登录模块\账号密码登录测试.py"> <div> <span class="label">进入文件</span> <span>cases\登录模块\账号密码登录测试.py</span> </div> <div class="case pass" id="case_00000001"> <div class="folder_header"> <span class="label caselabel">用例 PASS</span> <span class="casename">登录_001</span> <span class="executetime">2025-02-08 15:49:34</span> </div> <div class="folder_body"> <span class="case_class_path">cases\登录模块\账号密码登录测试.py::Login_00x</span> <div class="test_steps" id="test_steps 登录_001"> <span class="label">测试步骤</span> <div class="case_step"> <span class="tag">步骤 #1</span> <span>输入账号: , 密码: Ubains@4321, 验证码: csba</span> </div> <div class="case_step"> <span class="tag">步骤 #2</span> <span>点击登录按钮</span> </div> <div> <img class="modal-image screenshot" src="imgs/Login/Login_Pwd/登录_001_检查登录失败提示信息.png" width="50%"> </div> <div class="info">Alert text: 请输入账号!</div> <div class="case_step"> <span class="tag">步骤 #3</span> <span>校验提示信息: 请输入账号!</span> </div> <div class="checkpoint_pass"> <span class="tag">检查点 PASS</span> <span>弹出提示</span> </div> <div class="case_step"> <span class="tag">步骤 #4</span> <span>刷新页面</span> </div> </div> </div> </div> <div class="case pass" id="case_00000002"> <div class="folder_header"> <span class="label caselabel">用例 PASS</span> <span class="casename">登录_002</span> <span class="executetime">2025-02-08 15:49:36</span> </div> <div class="folder_body"> <span class="case_class_path">cases\登录模块\账号密码登录测试.py::Login_00x</span> <div class="test_steps" id="test_steps 登录_002"> <span class="label">测试步骤</span> <div class="case_step"> <span class="tag">步骤 #1</span> <span>输入账号: admin@czj, 密码: , 验证码: csba</span> </div> <div class="case_step"> <span class="tag">步骤 #2</span> <span>点击登录按钮</span> </div> <div> <img class="modal-image screenshot" src="imgs/Login/Login_Pwd/登录_002_检查登录失败提示信息.png" width="50%"> </div> <div class="info">Alert text: 请输入密码!</div> <div class="case_step"> <span class="tag">步骤 #3</span> <span>校验提示信息: 请输入密码!</span> </div> <div class="checkpoint_pass"> <span class="tag">检查点 PASS</span> <span>弹出提示</span> </div> <div class="case_step"> <span class="tag">步骤 #4</span> <span>刷新页面</span> </div> </div> </div> </div> <div class="case pass" id="case_00000003"> <div class="folder_header"> <span class="label caselabel">用例 PASS</span> <span class="casename">登录_003</span> <span class="executetime">2025-02-08 15:49:39</span> </div> <div class="folder_body"> <span class="case_class_path">cases\登录模块\账号密码登录测试.py::Login_00x</span> <div class="test_steps" id="test_steps 登录_003"> <span class="label">测试步骤</span> <div class="case_step"> <span class="tag">步骤 #1</span> <span>输入账号: admin@czj, 密码: Ubains@4321, 验证码: </span> </div> <div class="case_step"> <span class="tag">步骤 #2</span> <span>点击登录按钮</span> </div> <div> <img class="modal-image screenshot" src="imgs/Login/Login_Pwd/登录_003_检查登录失败提示信息.png" width="50%"> </div> <div class="info">Alert text: 请输入验证码!</div> <div class="case_step"> <span class="tag">步骤 #3</span> <span>校验提示信息: 请输入验证码!</span> </div> <div class="checkpoint_pass"> <span class="tag">检查点 PASS</span> <span>弹出提示</span> </div> <div class="case_step"> <span class="tag">步骤 #4</span> <span>刷新页面</span> </div> </div> </div> </div> <div class="case pass" id="case_00000004"> <div class="folder_header"> <span class="label caselabel">用例 PASS</span> <span class="casename">登录_004</span> <span class="executetime">2025-02-08 15:49:42</span> </div> <div class="folder_body"> <span class="case_class_path">cases\登录模块\账号密码登录测试.py::Login_00x</span> <div class="test_steps" id="test_steps 登录_004"> <span class="label">测试步骤</span> <div class="case_step"> <span class="tag">步骤 #1</span> <span>输入账号: admin@czj003, 密码: Ubains@4321, 验证码: csba</span> </div> <div class="case_step"> <span class="tag">步骤 #2</span> <span>点击登录按钮</span> </div> <div> <img class="modal-image screenshot" src="imgs/Login/Login_Pwd/登录_004_检查登录失败提示信息.png" width="50%"> </div> <div class="info">Alert text: 账号或密码错误</div> <div class="case_step"> <span class="tag">步骤 #3</span> <span>校验提示信息: 账号或密码错误</span> </div> <div class="checkpoint_pass"> <span class="tag">检查点 PASS</span> <span>弹出提示</span> </div> <div class="case_step"> <span class="tag">步骤 #4</span> <span>刷新页面</span> </div> </div> </div> </div> <div class="case pass" id="case_00000005"> <div class="folder_header"> <span class="label caselabel">用例 PASS</span> <span class="casename">登录_005</span> <span class="executetime">2025-02-08 15:49:45</span> </div> <div class="folder_body"> <span class="case_class_path">cases\登录模块\账号密码登录测试.py::Login_00x</span> <div class="test_steps" id="test_steps 登录_005"> <span class="label">测试步骤</span> <div class="case_step"> <span class="tag">步骤 #1</span> <span>输入账号: adM 1221n@czj, 密码: Ubains@4321, 验证码: csba</span> </div> <div class="case_step"> <span class="tag">步骤 #2</span> <span>点击登录按钮</span> </div> <div> <img class="modal-image screenshot" src="imgs/Login/Login_Pwd/登录_005_检查登录失败提示信息.png" width="50%"> </div> <div class="info">Alert text: 账号或密码错误</div> <div class="case_step"> <span class="tag">步骤 #3</span> <span>校验提示信息: 账号或密码错误</span> </div> <div class="checkpoint_pass"> <span class="tag">检查点 PASS</span> <span>弹出提示</span> </div> <div class="case_step"> <span class="tag">步骤 #4</span> <span>刷新页面</span> </div> </div> </div> </div> <div class="case pass" id="case_00000006"> <div class="folder_header"> <span class="label caselabel">用例 PASS</span> <span class="casename">登录_006</span> <span class="executetime">2025-02-08 15:49:48</span> </div> <div class="folder_body"> <span class="case_class_path">cases\登录模块\账号密码登录测试.py::Login_00x</span> <div class="test_steps" id="test_steps 登录_006"> <span class="label">测试步骤</span> <div class="case_step"> <span class="tag">步骤 #1</span> <span>输入账号: admin@czj34, 密码: 12345, 验证码: csba</span> </div> <div class="case_step"> <span class="tag">步骤 #2</span> <span>点击登录按钮</span> </div> <div> <img class="modal-image screenshot" src="imgs/Login/Login_Pwd/登录_006_检查登录失败提示信息.png" width="50%"> </div> <div class="info">Alert text: 账号或密码错误</div> <div class="case_step"> <span class="tag">步骤 #3</span> <span>校验提示信息: 账号或密码错误</span> </div> <div class="checkpoint_pass"> <span class="tag">检查点 PASS</span> <span>弹出提示</span> </div> <div class="case_step"> <span class="tag">步骤 #4</span> <span>刷新页面</span> </div> </div> </div> </div> <div class="case pass" id="case_00000007"> <div class="folder_header"> <span class="label caselabel">用例 PASS</span> <span class="casename">登录_007</span> <span class="executetime">2025-02-08 15:49:51</span> </div> <div class="folder_body"> <span class="case_class_path">cases\登录模块\账号密码登录测试.py::Login_00x</span> <div class="test_steps" id="test_steps 登录_007"> <span class="label">测试步骤</span> <div class="case_step"> <span class="tag">步骤 #1</span> <span>输入账号: admin@czj412, 密码: U bains1s@432, 验证码: csba</span> </div> <div class="case_step"> <span class="tag">步骤 #2</span> <span>点击登录按钮</span> </div> <div> <img class="modal-image screenshot" src="imgs/Login/Login_Pwd/登录_007_检查登录失败提示信息.png" width="50%"> </div> <div class="info">Alert text: 账号或密码错误</div> <div class="case_step"> <span class="tag">步骤 #3</span> <span>校验提示信息: 账号或密码错误</span> </div> <div class="checkpoint_pass"> <span class="tag">检查点 PASS</span> <span>弹出提示</span> </div> <div class="case_step"> <span class="tag">步骤 #4</span> <span>刷新页面</span> </div> </div> </div> </div> <div class="case pass" id="case_00000008"> <div class="folder_header"> <span class="label caselabel">用例 PASS</span> <span class="casename">登录_008</span> <span class="executetime">2025-02-08 15:49:54</span> </div> <div class="folder_body"> <span class="case_class_path">cases\登录模块\账号密码登录测试.py::Login_00x</span> <div class="test_steps" id="test_steps 登录_008"> <span class="label">测试步骤</span> <div class="case_step"> <span class="tag">步骤 #1</span> <span>输入账号: admin@czj012, 密码: Ubains@4321, 验证码: 123</span> </div> <div class="case_step"> <span class="tag">步骤 #2</span> <span>点击登录按钮</span> </div> <div> <img class="modal-image screenshot" src="imgs/Login/Login_Pwd/登录_008_检查登录失败提示信息.png" width="50%"> </div> <div class="info">Alert text: 验证码错误</div> <div class="case_step"> <span class="tag">步骤 #3</span> <span>校验提示信息: 验证码错误</span> </div> <div class="checkpoint_pass"> <span class="tag">检查点 PASS</span> <span>弹出提示</span> </div> <div class="case_step"> <span class="tag">步骤 #4</span> <span>刷新页面</span> </div> </div> </div> </div> <div class="case pass" id="case_00000009"> <div class="folder_header"> <span class="label caselabel">用例 PASS</span> <span class="casename">登录_009</span> <span class="executetime">2025-02-08 15:49:57</span> </div> <div class="folder_body"> <span class="case_class_path">cases\登录模块\账号密码登录测试.py::Login_00x</span> <div class="test_steps" id="test_steps 登录_009"> <span class="label">测试步骤</span> <div class="case_step"> <span class="tag">步骤 #1</span> <span>输入账号: admin@czj1213, 密码: Ubains@4321, 验证码: cs 12</span> </div> <div class="case_step"> <span class="tag">步骤 #2</span> <span>点击登录按钮</span> </div> <div> <img class="modal-image screenshot" src="imgs/Login/Login_Pwd/登录_009_检查登录失败提示信息.png" width="50%"> </div> <div class="info">Alert text: 验证码错误</div> <div class="case_step"> <span class="tag">步骤 #3</span> <span>校验提示信息: 验证码错误</span> </div> <div class="checkpoint_pass"> <span class="tag">检查点 PASS</span> <span>弹出提示</span> </div> <div class="case_step"> <span class="tag">步骤 #4</span> <span>刷新页面</span> </div> </div> </div> </div> <div class="case pass" id="case_00000010"> <div class="folder_header"> <span class="label caselabel">用例 PASS</span> <span class="casename">登录_010</span> <span class="executetime">2025-02-08 15:50:00</span> </div> <div class="folder_body"> <span class="case_class_path">cases\登录模块\账号密码登录测试.py::Login_00x</span> <div class="test_steps" id="test_steps 登录_010"> <span class="label">测试步骤</span> <div class="case_step"> <span class="tag">步骤 #1</span> <span>输入账号: admin@ZDH, 密码: Ubains@4321, 验证码: csba</span> </div> <div class="case_step"> <span class="tag">步骤 #2</span> <span>点击登录按钮</span> </div> <div> <img class="modal-image screenshot" src="imgs/Login/Login_Pwd/登录_010_检查登录成功提示信息.png" width="50%"> </div> <div class="info">Alert text: admin@ZDH</div> <div class="case_step"> <span class="tag">步骤 #3</span> <span>校验提示信息: admin@ZDH</span> </div> <div class="checkpoint_pass"> <span class="tag">检查点 PASS</span> <span>弹出提示</span> </div> <div class="case_step"> <span class="tag">步骤 #4</span> <span>刷新页面</span> </div> </div> </div> </div> <div class="suite_teardown teardown" id="suite_teardown teardown cases\登录模块\"> <div class="folder_header"> <span class="label">套件清除</span> <span>cases\登录模块\</span> <span class="executetime">2025-02-08 15:50:05</span> </div> <div class="folder_body"> <div class="info">None</div> </div> </div> <div class="suite_teardown teardown" id="suite_teardown teardown cases\"> <div class="folder_header"> <span class="label">套件清除</span> <span>cases\</span> <span class="executetime">2025-02-08 15:50:07</span> </div> <div class="folder_body"> <div class="info">清除浏览器</div> </div> </div> </div> </div> </div> <div id="float_menu"> <div class="menu-item" onclick="document.querySelector("body").scrollIntoView()">页首</div> <div class="menu-item" onclick="window.open("http://www.byhy.net/tut/auto/hytest/01", "_blank"); ">帮助</div> <div class="menu-item" id="display_mode" onclick="toggle_folder_all_cases()">Summary</div> <div class="error_jumper" display="none"> <div class="menu-item" onclick="previous_error()" title="上一个错误">∧</div> <div class="menu-item" onclick="next_error()" title="下一个错误">∨</div> </div> </div> </body> </html>