提交 2c8758ac authored 作者: 彭甘宇's avatar 彭甘宇

1.处理代码路径变更导致无法检索用例问题;

2.增加错误日志打印和执行报错校验;
上级 916bca30
......@@ -4,6 +4,7 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="7af2ddda-4337-4bd9-adfd-87ab868c08f9" name="更改" comment="修正提交" />
<list default="true" id="7af2ddda-4337-4bd9-adfd-87ab868c08f9" name="更改" comment="重新提交运维相关脚本代码">
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/运维集控/项目测试/运维标准版/cases/05区域功能/01新增区域功能.py" beforeDir="false" afterPath="$PROJECT_DIR$/运维集控/项目测试/运维标准版/cases/05区域功能/01新增区域功能.py" afterDir="false" />
......@@ -24,12 +25,14 @@
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
<option name="UPDATE_TYPE" value="REBASE" />
</component>
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 6
}</component>
<component name="ProjectId" id="2qefK5jFULEB70ZGZl73iacPsCN" />
<component name="ProjectLevelVcsManager">
<OptionsSetting value="false" id="Update" />
</component>
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
......@@ -118,7 +121,15 @@
<option name="project" value="LOCAL" />
<updated>1735028100490</updated>
</task>
<option name="localTasksCounter" value="2" />
<task id="LOCAL-00002" summary="修正提交">
<option name="closed" value="true" />
<created>1735111241853</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1735111241853</updated>
</task>
<option name="localTasksCounter" value="3" />
<servers />
</component>
<component name="com.intellij.coverage.CoverageDataManagerImpl">
......@@ -148,6 +159,7 @@
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="重新提交运维相关脚本代码" />
<option name="LAST_COMMIT_MESSAGE" value="重新提交运维相关脚本代码" />
<MESSAGE value="修正提交" />
<option name="LAST_COMMIT_MESSAGE" value="修正提交" />
</component>
</project>
\ No newline at end of file
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
# def suite_setup():
# wd = GSTORE['wd']
def suite_teardown():
INFO('进行清除操作')
wd = GSTORE['wd']
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
class user_login_001:
name = 'login_test_01'
def teststeps(self):
wd = GSTORE['wd']
STEP(1, '用户登录')
user_login("admin@pgy", "ub@123456", "csba")
# run_login_tests()
# 读取 CSV 文件
csv_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', 'testdata', '01登录模块', '登录信息.csv'))
with open(csv_path, newline='', encoding='utf-8') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
username = row['username']
password = row['password']
captcha = row['captcha']
STEP(1, f'用户 {username} 登录')
user_login(username, password, captcha)
STEP(2, '验证是否登录成功')
try:
get_menu = WebDriverWait(wd, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, '.el-message__content'))
)
get_menu1 = get_menu.text
CHECK_POINT('检查是否出现弹窗', get_menu1 == "操作成功!")
def suite_teardown():
wd.quit()
# class user_login_002:
# name = 'login_test_02'
#
# def teststeps(self):
# STEP(1, '打开网页')
#
# wd = GSTORE['wd']
#
# STEP(2, '用户登录')
# user_login("admin@pgy", "ub@123456", "csba")
# # run_login_tests()
#
# STEP(3, '验证是否登录成功')
# get_menu = WebDriverWait(wd, 10).until(
# EC.presence_of_element_located((By.CSS_SELECTOR, '.el-message__content'))
# )
# get_menu1 = get_menu.text
# CHECK_POINT('检查是否出现弹窗', get_menu1 == "操作成功!")
#
# STEP(4, '清除数据')
#
# def suite_teardown():
# INFO('进行清除操作')
# wd.quit()
except Exception as e:
print(f"登录失败,原因是: {get_menu1}")
\ No newline at end of file
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
class UserAdd001:
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
class Userquery001:
name = 'user_query_001'
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
class UserModify001:
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
class Userdelete001:
name = 'user_delete_001'
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
def suite_setup():
wd = GSTORE['wd']
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
class AreagroupAdd001:
name = 'Areagroup_add_001'
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
class AreagroupMod001:
name = 'Areagroup_modify_001'
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
class AreagroupDel001:
name = 'Areagroup_delete_001'
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
def suite_setup():
wd = GSTORE['wd']
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
class AreatypeAdd001:
name = 'Areatype_add_001'
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
class AreatypeMod001:
name = 'Areatype_mod_001'
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
class AreatypeDel001:
name = 'Areatype_del_001'
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
def suite_setup():
wd = GSTORE['wd']
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
class AreafuntionAdd001:
name = 'Areafuntion_add_001'
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
class areafuntionMod001:
name = 'areafuntion_mod_001'
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
class areafuntionDel001:
name = 'areafuntion_del_001'
......
from lib.login import *
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
from 运维集控.项目测试.运维标准版.lib.base import *
def suite_setup():
wd = GSTORE['wd']
......
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..')))
# 确保项目根目录被添加到模块搜索路径中
from lib.login import *
from 运维集控.项目测试.运维标准版.lib.base import *
def suite_setup():
wd = GSTORE['wd']
......
......@@ -11,6 +11,7 @@ import base64
import time
import logging
from hytest import *
import pandas as pd
from selenium import webdriver
from datetime import datetime
from urllib.parse import urlencode
......@@ -39,21 +40,21 @@ def open_browser():
def user_login(username, password, captcha):
wd = GSTORE['wd']
INFO('输入登录账号')
INFO(f'输入登录账号: {username}')
username_input = WebDriverWait(wd, 3).until(
EC.presence_of_element_located((By.XPATH, "//input[@placeholder='请输入登录账号']"))
)
username_input.clear()
username_input.send_keys(username)
INFO('输入登录密码')
INFO(f'输入登录密码: {password}')
password_input = WebDriverWait(wd, 3).until(
EC.presence_of_element_located((By.XPATH, "//input[@placeholder='请输入登录密码']"))
)
password_input.clear()
password_input.send_keys(password)
INFO('输入验证码')
INFO(f'输入验证码:{captcha}')
captcha_input = WebDriverWait(wd, 3).until(
EC.presence_of_element_located((By.XPATH, "//input[@placeholder='请输入验证码(区分大小写)']"))
)
......
<!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 &quot;C:\Users\EDY\Desktop\运维标准版\cases\03区域分组\02编辑区域分组.py&quot;, line 11, in teststeps
checkbox = WebDriverWait(wd, 10).until(
File &quot;D:\python\lib\site-packages\selenium\webdriver\support\wait.py&quot;, 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 &quot;C:\Users\EDY\Desktop\运维标准版\cases\03区域分组\03删除区域分组.py&quot;, line 9, in teststeps
checkbox = WebDriverWait(wd, 10).until(
File &quot;D:\python\lib\site-packages\selenium\webdriver\support\wait.py&quot;, 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(&quot;body&quot;).scrollIntoView()">页首</div>
<div class="menu-item" onclick="window.open(&quot;http://www.byhy.net/tut/auto/hytest/01&quot;, &quot;_blank&quot;); ">帮助</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>
\ No newline at end of file
=== [ 收集测试用例 ] ===
== cases\__st__.py
== cases\__init__.py
** no cases in this file, skip it.
== cases\01登录模块\__st__.py
== cases\01登录模块\__init__.py
** no cases in this file, skip it.
== cases\01登录模块\管理员登录.py
** no cases in this file , skip it.
== cases\02用户管理\__st__.py
== cases\02用户管理\01新增用户.py
** no cases in this file , skip it.
== cases\02用户管理\02查询用户.py
** no cases in this file , skip it.
== cases\02用户管理\03编辑用户.py
** no cases in this file , skip it.
== cases\02用户管理\04删除用户.py
** no cases in this file , skip it.
== cases\02用户管理\__init__.py
** no cases in this file, skip it.
== cases\03区域分组\__st__.py
== cases\03区域分组\01新增区域分组.py
== cases\03区域分组\02编辑区域分组.py
== cases\03区域分组\03删除区域分组.py
== cases\03区域分组\__init__.py
** no cases in this file, skip it.
== cases\04区域类型\__st__.py
== cases\04区域类型\01新增区域类型.py
** no cases in this file , skip it.
== cases\04区域类型\02编辑区域类型.py
** no cases in this file , skip it.
== cases\04区域类型\03删除区域类型.py
** no cases in this file , skip it.
== cases\04区域类型\__init__.py
** no cases in this file, skip it.
== cases\05区域功能\__st__.py
== cases\05区域功能\01新增区域功能.py
** no cases in this file , skip it.
== cases\05区域功能\02编辑区域功能.py
** no cases in this file , skip it.
== cases\05区域功能\03删除区域功能.py
** no cases in this file , skip it.
== cases\05区域功能\__init__.py
** no cases in this file, skip it.
== cases\06区域管理\01新增区域.py
** no cases in this file, skip it.
== cases\06区域管理\02编辑区域.py
** no cases in this file, skip it.
== cases\06区域管理\03删除区域.py
** no cases in this file, skip it.
== cases\06区域管理\__init__.py
** no cases in this file, skip it.
== cases\07类型标签\__init__.py
** no cases in this file, skip it.
== cases\08协议管理\__init__.py
** no cases in this file, skip it.
== cases\09设备管理\__init__.py
** no cases in this file, skip it.
== cases\10数据类型\__init__.py
** no cases in this file, skip it.
== cases\11联动动作\__init__.py
** no cases in this file, skip it.
=== [ 执行测试用例 ] ===
预备执行用例数量 : 3
========= 测试开始 : 20241212_155323 =========
>>> cases\
[ suite setup ] cases\
打开浏览器
>>> cases\03区域分组\
[ suite setup ] cases\03区域分组\
打开浏览器
输入登录账号
输入登录密码
输入验证码
点击登录按钮
>>> cases\03区域分组\01新增区域分组.py
* Areagroup_add_001 - 2024-12-12 15:53:41
[ case execution steps ]
-- 第 1 步 -- 点击新增按钮
-- 第 2 步 -- 填写分组名称
-- 第 3 步 -- 填写分组地址
-- 第 4 步 -- 填写分组备注
-- 第 6 步 -- 点击确认
-- 第 7 步 -- 验证是否新增成功
** 检查点 ** 检查是否出现成功提示弹窗 ----> 通过
PASS
>>> cases\03区域分组\02编辑区域分组.py
* Areagroup_modify_001 - 2024-12-12 15:53:46
[ case execution steps ]
-- 第 1 步 -- 勾选分组,点击“编辑”按钮
ABORT 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]
>>> cases\03区域分组\03删除区域分组.py
* Areagroup_delete_001 - 2024-12-12 15:53:59
[ case execution steps ]
-- 第 1 步 -- 勾选分组
ABORT 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]
========= 测试结束 : 20241212_155409 =========
耗时 : 46.349 秒
预备执行用例数量 : 3
实际执行用例数量 : 3
通过 : 1
失败 : 0
异常 : 2
套件初始化失败 : 0
套件清除 失败 : 0
用例初始化失败 : 0
用例清除 失败 : 0
=== [ 收集测试用例 ] ===
== cases\__st__.py
== cases\__init__.py
** no cases in this file, skip it.
== cases\01登录模块\__st__.py
== cases\01登录模块\__init__.py
** no cases in this file, skip it.
== cases\01登录模块\管理员登录.py
** no cases in this file , skip it.
== cases\02用户管理\__st__.py
== cases\02用户管理\01新增用户.py
** no cases in this file , skip it.
== cases\02用户管理\02查询用户.py
** no cases in this file , skip it.
== cases\02用户管理\03编辑用户.py
** no cases in this file , skip it.
== cases\02用户管理\04删除用户.py
** no cases in this file , skip it.
== cases\02用户管理\__init__.py
** no cases in this file, skip it.
== cases\03区域分组\__st__.py
== cases\03区域分组\01新增区域分组.py
** no cases in this file , skip it.
== cases\03区域分组\02编辑区域分组.py
** no cases in this file , skip it.
== cases\03区域分组\03删除区域分组.py
** no cases in this file , skip it.
== cases\03区域分组\__init__.py
** no cases in this file, skip it.
== cases\04区域类型\__st__.py
== cases\04区域类型\01新增区域类型.py
** no cases in this file , skip it.
== cases\04区域类型\02编辑区域类型.py
** no cases in this file , skip it.
== cases\04区域类型\03删除区域类型.py
** no cases in this file , skip it.
== cases\04区域类型\__init__.py
** no cases in this file, skip it.
== cases\05区域功能\__st__.py
== cases\05区域功能\01新增区域功能.py
** no cases in this file , skip it.
== cases\05区域功能\02编辑区域功能.py
** no cases in this file , skip it.
== cases\05区域功能\03删除区域功能.py
** no cases in this file , skip it.
== cases\05区域功能\__init__.py
** no cases in this file, skip it.
== cases\06区域管理\01新增区域.py
** no cases in this file, skip it.
== cases\06区域管理\02编辑区域.py
** no cases in this file, skip it.
== cases\06区域管理\03删除区域.py
** no cases in this file, skip it.
== cases\06区域管理\__init__.py
** no cases in this file, skip it.
== cases\07类型标签\__init__.py
** no cases in this file, skip it.
== cases\08协议管理\__init__.py
** no cases in this file, skip it.
== cases\09设备管理\__init__.py
** no cases in this file, skip it.
== cases\10数据类型\__init__.py
** no cases in this file, skip it.
== cases\11联动动作\__init__.py
** no cases in this file, skip it.
=== [ 执行测试用例 ] ===
!! 没有可以执行的测试用例
username,password,captcha
test_user1,ub@1234567,csba
test_user1,ub@123,csba
test_user1,,csba
test_user1,ub@1234567,
test_user2,ub@123,csba
test_user3,,csba
test_user4,ub@1234567,
,ub@1234567,csba
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论