Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录
切换导航
U
ubains-module-test
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
郑晓兵
ubains-module-test
Commits
7139b877
提交
7139b877
authored
6月 18, 2025
作者:
陈泽健
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
删除原函数,避免混淆。
上级
846ea603
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
3 行增加
和
98 行删除
+3
-98
base.py
预定系统/Base/base.py
+0
-97
README.md
预定系统/README.md
+2
-0
兰州中石化测试.py
预定系统/cases/项目定制/兰州中石化项目25-05-24/兰州中石化测试.py
+1
-1
没有找到文件。
预定系统/Base/base.py
浏览文件 @
7139b877
...
...
@@ -477,103 +477,6 @@ import json
from
hytest
import
INFO
def
read_xlsx_data
(
xlsx_file_path
,
sheet_name
=
None
,
case_type
=
None
):
"""
读取XLSX文件中的数据,并将其转换为一个包含字典的列表,每个字典代表一行测试用例数据。
参数:
xlsx_file_path (str): XLSX文件的路径。
sheet_name (str, optional): 工作表的名称。如果未指定,则使用活动工作表。
case_type (str, optional): 测试用例类型,例如 '标准版' 或 'XX项目需求'。如果未指定,则读取所有测试用例。
返回:
list: 包含字典的列表,每个字典包含测试用例的名称和参数。
"""
try
:
# 调试信息:打印文件路径
INFO
(
f
"尝试打开文件路径: {xlsx_file_path}"
)
if
not
os
.
path
.
exists
(
xlsx_file_path
):
raise
FileNotFoundError
(
f
"文件未找到: {xlsx_file_path}"
)
# 使用 with 语句打开 XLSX 文件,确保文件在读取完成后自动关闭
workbook
=
openpyxl
.
load_workbook
(
xlsx_file_path
,
read_only
=
True
)
INFO
(
"XLSX文件成功打开"
)
# 选择工作表
if
sheet_name
:
try
:
sheet
=
workbook
[
sheet_name
]
INFO
(
f
"成功选择工作表: {sheet_name}"
)
except
KeyError
:
raise
KeyError
(
f
"工作表未找到: {sheet_name}"
)
else
:
sheet
=
workbook
.
active
INFO
(
"使用活动工作表"
)
# 读取表头,从第三行开始
headers
=
[
cell
.
value
for
cell
in
sheet
[
3
]]
INFO
(
f
"表头列名: {headers}"
)
# 找到表头中名为 'JSON' 和 '功能类别' 的列索引
try
:
json_index
=
headers
.
index
(
'JSON'
)
INFO
(
f
"找到 'JSON' 列索引: {json_index}"
)
except
ValueError
as
e
:
raise
ValueError
(
f
"表头中没有找到所需的列: {e}"
)
try
:
category_index
=
headers
.
index
(
'功能类别'
)
INFO
(
f
"找到 '功能类别' 列索引: {category_index}"
)
except
ValueError
as
e
:
raise
ValueError
(
f
"表头中没有找到所需的列: {e}"
)
ddt_cases
=
[]
# 遍历XLSX文件中的每一行数据,从第四行开始
for
row_num
,
row
in
enumerate
(
sheet
.
iter_rows
(
min_row
=
4
,
values_only
=
True
),
start
=
4
):
# 获取 JSON 列的数据
json_data
=
row
[
json_index
]
INFO
(
f
"行 {row_num} 的 JSON 数据: {json_data}"
)
# 检查 JSON 数据是否为空
if
json_data
is
None
or
json_data
.
strip
()
==
""
:
INFO
(
f
"跳过行 {row_num},JSON 数据为空"
)
continue
# 解析 JSON 字符串
try
:
parsed_json
=
json
.
loads
(
json_data
)
INFO
(
f
"行 {row_num} 的 JSON 数据解析成功: {parsed_json}"
)
except
json
.
JSONDecodeError
:
raise
ValueError
(
f
"行 {row_num} 的 JSON 数据无法解析: {json_data}"
)
# 获取功能类别
category
=
row
[
category_index
]
INFO
(
f
"行 {row_num} 的功能类别: {category}"
)
# 检查是否需要过滤测试用例类型
if
case_type
and
category
!=
case_type
:
INFO
(
f
"跳过行 {row_num},功能类别不匹配: {category} != {case_type}"
)
continue
# 将解析后的 JSON 数据添加到列表中
ddt_cases
.
append
(
parsed_json
)
INFO
(
f
"行 {row_num} 的 JSON 数据已添加到 ddt_cases"
)
# 日志记录:XLSX文件已读取
INFO
(
"XLSX文件已读取"
)
# 返回包含所有测试用例数据的列表
return
ddt_cases
except
FileNotFoundError
:
raise
FileNotFoundError
(
f
"文件未找到: {xlsx_file_path}"
)
except
Exception
as
e
:
raise
Exception
(
f
"无法打开文件: {e}"
)
# if __name__ == "__main__":
# xlsx_file_path = r"D:\GithubData\自动化\ubains-module-test\预定系统\测试数据\会议预定测试用例.xlsx"
# ddt_cases = read_xlsx_data(xlsx_file_path, sheet_name="AI创会", case_type="标准版")
# print(ddt_cases)
def
read_xlsx_data_auto
(
xlsx_file_path
,
sheet_name
=
None
,
case_type
=
None
):
try
:
INFO
(
f
"尝试打开文件路径: {xlsx_file_path}"
)
if
not
os
.
path
.
exists
(
xlsx_file_path
):
...
...
预定系统/README.md
浏览文件 @
7139b877
...
...
@@ -325,3 +325,4 @@
-
标准版注释clear_columns_in_xlsx和write_xlsx_data方法调用。定时任务补充兰州。
96.
2025-06-18:
-
base增加read_xlsx_data_auto函数,支持sheet_name为None时,默认遍历整个测试用例所有模块从第一个sheet到最后的sheet执行,若sheet_name传参时,则为单独执行某个模块测试。
-
删除原函数,避免混淆。
\ No newline at end of file
预定系统/cases/项目定制/兰州中石化项目25-05-24/兰州中石化测试.py
浏览文件 @
7139b877
...
...
@@ -20,7 +20,7 @@ class LanzhouSinopecProject:
1.cd 预定系统
2.hytest --report_title 兰州中石化项目测试报告 --report_url_prefix http://nat.ubainsyun.com:31135 --tag 合并测试
"""
ddt_cases
=
read_xlsx_data
_auto
(
xlsx_file_path
,
case_type
=
"兰州中石化项目25-05-24"
)
ddt_cases
=
read_xlsx_data
(
xlsx_file_path
,
case_type
=
"兰州中石化项目25-05-24"
)
# 测试开始前调用clear_columns_in_xlsx函数,将测试用例中的测试结果和日志截图置空
# clear_columns_in_xlsx(xlsx_file_path, sheet_name='会议创建', columns_to_clear=['测试结果', '测试频次', '日志截图'])
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论