<!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; }</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"); }); 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="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>2024/12/12 15:53:23</td> </tr> <tr> <td>结束时间</td> <td>2024/12/12 15:54:09</td> </tr> <tr> <td>耗时</td> <td>46.349 秒</td> </tr> <tr> <td>预备执行用例数量</td> <td>3</td> </tr> <tr> <td>实际执用例行数量</td> <td>3</td> </tr> <tr> <td>通过</td> <td>1</td> </tr> <tr> <td>失败</td> <td style="">0</td> </tr> <tr> <td>异常</td> <td style="color:red">2</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>用例通过 33.3% : 1 个</span> <div class="barchart_barbox"> <div class="barchart_bar" style="width: 33.3%; 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>用例异常 66.7% : 2 个</span> <div class="barchart_barbox"> <div class="barchart_bar" style="width: 66.7%; 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 class="suite_setup setup" id="suite_setup setup cases\"> <div class="folder_header"> <span class="label">套件初始化</span> <span>cases\</span> <span class="executetime">2024-12-12 15:53:23</span> </div> <div class="folder_body"> <div class="info">打开浏览器</div> </div> </div> </div> <div class="suite_dir" id="suite_dir cases\03区域分组\"> <div> <span class="label">进入目录</span> <span>cases\03区域分组\</span> </div> <div class="suite_setup setup" id="suite_setup setup cases\03区域分组\"> <div class="folder_header"> <span class="label">套件初始化</span> <span>cases\03区域分组\</span> <span class="executetime">2024-12-12 15:53:29</span> </div> <div class="folder_body"> <div class="info">打开浏览器</div> <div class="info">输入登录账号</div> <div class="info">输入登录密码</div> <div class="info">输入验证码</div> <div class="info">点击登录按钮</div> </div> </div> </div> <div class="suite_file" id="suite_file cases\03区域分组\01新增区域分组.py"> <div> <span class="label">进入文件</span> <span>cases\03区域分组\01新增区域分组.py</span> </div> <div class="case pass" id="case_00000001"> <div class="folder_header"> <span class="label caselabel">用例 PASS</span> <span class="casename">Areagroup_add_001</span> <span class="executetime">2024-12-12 15:53:41</span> </div> <div class="folder_body"> <span class="case_class_path">cases\03区域分组\01新增区域分组.py::AreagroupAdd001</span> <div class="test_steps" id="test_steps Areagroup_add_001"> <span class="label">测试步骤</span> <div class="case_step"> <span class="tag">步骤 #1</span> <span>点击新增按钮</span> </div> <div class="case_step"> <span class="tag">步骤 #2</span> <span>填写分组名称</span> </div> <div class="case_step"> <span class="tag">步骤 #3</span> <span>填写分组地址</span> </div> <div class="case_step"> <span class="tag">步骤 #4</span> <span>填写分组备注</span> </div> <div class="case_step"> <span class="tag">步骤 #6</span> <span>点击确认</span> </div> <div class="case_step"> <span class="tag">步骤 #7</span> <span>验证是否新增成功</span> </div> <div class="checkpoint_pass"> <span class="tag">检查点 PASS</span> <span>检查是否出现成功提示弹窗</span> </div> </div> </div> </div> </div> <div class="suite_file" id="suite_file cases\03区域分组\02编辑区域分组.py"> <div> <span class="label">进入文件</span> <span>cases\03区域分组\02编辑区域分组.py</span> </div> <div class="case abort" id="case_00000002"> <div class="folder_header"> <span class="label caselabel">用例 ABORT</span> <span class="casename">Areagroup_modify_001</span> <span class="executetime">2024-12-12 15:53:46</span> </div> <div class="folder_body"> <span class="case_class_path">cases\03区域分组\02编辑区域分组.py::AreagroupMod001</span> <div class="test_steps" id="test_steps Areagroup_modify_001"> <span class="label">测试步骤</span> <div class="case_step"> <span class="tag">步骤 #1</span> <span>勾选分组,点击“编辑”按钮</span> </div> <div class="info error-info">Message: Stacktrace: GetHandleVerifier [0x00007FF60157CEC5+12997] Microsoft::Applications::Events::EventProperty::empty [0x00007FF6017FBCA4+1897908] (No symbol) [0x00007FF60132F1CC] (No symbol) [0x00007FF60137672E] (No symbol) [0x00007FF6013767B5] (No symbol) [0x00007FF6013B4ED7] (No symbol) [0x00007FF601397F8F] (No symbol) [0x00007FF60136C09D] (No symbol) [0x00007FF6013B2887] (No symbol) [0x00007FF601397BB3] (No symbol) [0x00007FF60136B5AC] (No symbol) [0x00007FF60136AA8D] (No symbol) [0x00007FF60136B171] Microsoft::Applications::Events::EventProperty::empty [0x00007FF601729DD4+1038052] Microsoft::Applications::Events::EventProperty::~EventProperty [0x00007FF6014A08BF+56655] Microsoft::Applications::Events::EventProperty::~EventProperty [0x00007FF601493063+1267] Microsoft::Applications::Events::EventProperty::empty [0x00007FF601728B5D+1033325] Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF601519731+327857] Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF601515BB4+312628] Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF601515CE9+312937] Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF60150C25C+273372] BaseThreadInitThunk [0x00007FFB6624259D+29] RtlUserThreadStart [0x00007FFB6798AF38+40] Traceback: File "C:\Users\EDY\Desktop\运维标准版\cases\03区域分组\02编辑区域分组.py", line 11, in teststeps checkbox = WebDriverWait(wd, 10).until( File "D:\python\lib\site-packages\selenium\webdriver\support\wait.py", line 87, in until raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message: Stacktrace: GetHandleVerifier [0x00007FF60157CEC5+12997] Microsoft::Applications::Events::EventProperty::empty [0x00007FF6017FBCA4+1897908] (No symbol) [0x00007FF60132F1CC] (No symbol) [0x00007FF60137672E] (No symbol) [0x00007FF6013767B5] (No symbol) [0x00007FF6013B4ED7] (No symbol) [0x00007FF601397F8F] (No symbol) [0x00007FF60136C09D] (No symbol) [0x00007FF6013B2887] (No symbol) [0x00007FF601397BB3] (No symbol) [0x00007FF60136B5AC] (No symbol) [0x00007FF60136AA8D] (No symbol) [0x00007FF60136B171] Microsoft::Applications::Events::EventProperty::empty [0x00007FF601729DD4+1038052] Microsoft::Applications::Events::EventProperty::~EventProperty [0x00007FF6014A08BF+56655] Microsoft::Applications::Events::EventProperty::~EventProperty [0x00007FF601493063+1267] Microsoft::Applications::Events::EventProperty::empty [0x00007FF601728B5D+1033325] Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF601519731+327857] Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF601515BB4+312628] Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF601515CE9+312937] Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF60150C25C+273372] BaseThreadInitThunk [0x00007FFB6624259D+29] RtlUserThreadStart [0x00007FFB6798AF38+40] </div> </div> </div> </div> </div> <div class="suite_file" id="suite_file cases\03区域分组\03删除区域分组.py"> <div> <span class="label">进入文件</span> <span>cases\03区域分组\03删除区域分组.py</span> </div> <div class="case abort" id="case_00000003"> <div class="folder_header"> <span class="label caselabel">用例 ABORT</span> <span class="casename">Areagroup_delete_001</span> <span class="executetime">2024-12-12 15:53:59</span> </div> <div class="folder_body"> <span class="case_class_path">cases\03区域分组\03删除区域分组.py::AreagroupDel001</span> <div class="test_steps" id="test_steps Areagroup_delete_001"> <span class="label">测试步骤</span> <div class="case_step"> <span class="tag">步骤 #1</span> <span>勾选分组</span> </div> <div class="info error-info">Message: Stacktrace: GetHandleVerifier [0x00007FF60157CEC5+12997] Microsoft::Applications::Events::EventProperty::empty [0x00007FF6017FBCA4+1897908] (No symbol) [0x00007FF60132F1CC] (No symbol) [0x00007FF60137672E] (No symbol) [0x00007FF6013767B5] (No symbol) [0x00007FF6013B4ED7] (No symbol) [0x00007FF601397F8F] (No symbol) [0x00007FF60136C09D] (No symbol) [0x00007FF6013B2887] (No symbol) [0x00007FF601397BB3] (No symbol) [0x00007FF60136B5AC] (No symbol) [0x00007FF60136AA8D] (No symbol) [0x00007FF60136B171] Microsoft::Applications::Events::EventProperty::empty [0x00007FF601729DD4+1038052] Microsoft::Applications::Events::EventProperty::~EventProperty [0x00007FF6014A08BF+56655] Microsoft::Applications::Events::EventProperty::~EventProperty [0x00007FF601493063+1267] Microsoft::Applications::Events::EventProperty::empty [0x00007FF601728B5D+1033325] Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF601519731+327857] Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF601515BB4+312628] Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF601515CE9+312937] Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF60150C25C+273372] BaseThreadInitThunk [0x00007FFB6624259D+29] RtlUserThreadStart [0x00007FFB6798AF38+40] Traceback: File "C:\Users\EDY\Desktop\运维标准版\cases\03区域分组\03删除区域分组.py", line 9, in teststeps checkbox = WebDriverWait(wd, 10).until( File "D:\python\lib\site-packages\selenium\webdriver\support\wait.py", line 87, in until raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message: Stacktrace: GetHandleVerifier [0x00007FF60157CEC5+12997] Microsoft::Applications::Events::EventProperty::empty [0x00007FF6017FBCA4+1897908] (No symbol) [0x00007FF60132F1CC] (No symbol) [0x00007FF60137672E] (No symbol) [0x00007FF6013767B5] (No symbol) [0x00007FF6013B4ED7] (No symbol) [0x00007FF601397F8F] (No symbol) [0x00007FF60136C09D] (No symbol) [0x00007FF6013B2887] (No symbol) [0x00007FF601397BB3] (No symbol) [0x00007FF60136B5AC] (No symbol) [0x00007FF60136AA8D] (No symbol) [0x00007FF60136B171] Microsoft::Applications::Events::EventProperty::empty [0x00007FF601729DD4+1038052] Microsoft::Applications::Events::EventProperty::~EventProperty [0x00007FF6014A08BF+56655] Microsoft::Applications::Events::EventProperty::~EventProperty [0x00007FF601493063+1267] Microsoft::Applications::Events::EventProperty::empty [0x00007FF601728B5D+1033325] Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF601519731+327857] Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF601515BB4+312628] Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF601515CE9+312937] Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF60150C25C+273372] BaseThreadInitThunk [0x00007FFB6624259D+29] RtlUserThreadStart [0x00007FFB6798AF38+40] </div> </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="block"> <div class="menu-item" onclick="previous_error()" title="上一个错误">∧</div> <div class="menu-item" onclick="next_error()" title="下一个错误">∨</div> </div> </div> </body> </html>