Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录
切换导航
U
ubains-module-test
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
郑晓兵
ubains-module-test
Commits
369fb84a
提交
369fb84a
authored
4月 17, 2025
作者:
陈泽健
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修复因xlsx文件读取失败导致的报错。
上级
df5a1b98
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
76 行增加
和
71 行删除
+76
-71
base.cpython-310.pyc
预定系统/Base/__pycache__/base.cpython-310.pyc
+0
-0
base.py
预定系统/Base/base.py
+65
-57
README.md
预定系统/README.md
+4
-2
展厅会议室中控屏.cpython-310.pyc
...ases/展厅巡检/05展厅会议室中控屏/__pycache__/展厅会议室中控屏.cpython-310.pyc
+0
-0
展厅会议室中控屏.py
预定系统/cases/展厅巡检/05展厅会议室中控屏/展厅会议室中控屏.py
+1
-1
MQTT会议推送.py
预定系统/cases/项目定制/富创项目24-12-25/MQTT会议推送.py
+2
-2
MQTT会议推送.cpython-310.pyc
...es/项目定制/富创项目24-12-25/__pycache__/MQTT会议推送.cpython-310.pyc
+0
-0
富创项目_会议预约推送.csv
预定系统/测试数据/MQTT模块/富创项目/富创项目_会议预约推送.csv
+4
-9
会议预定测试用例.xlsx
预定系统/测试数据/会议预定测试用例.xlsx
+0
-0
长安大学测试用例.xlsx
预定系统/测试数据/长安大学测试用例.xlsx
+0
-0
没有找到文件。
预定系统/Base/__pycache__/base.cpython-310.pyc
浏览文件 @
369fb84a
No preview for this file type
预定系统/Base/base.py
浏览文件 @
369fb84a
...
...
@@ -468,10 +468,9 @@ def read_csv_data(csv_file_path):
return
ddt_cases
# 读取测试用例xlsx文件中的JSON数据进行数据驱动函数
import
openpyxl
import
openpyxl
import
json
from
hytest
import
INFO
def
read_xlsx_data
(
xlsx_file_path
,
sheet_name
=
None
,
case_type
=
None
):
"""
读取XLSX文件中的数据,并将其转换为一个包含字典的列表,每个字典代表一行测试用例数据。
...
...
@@ -485,80 +484,89 @@ def read_xlsx_data(xlsx_file_path, sheet_name=None, case_type=None):
list: 包含字典的列表,每个字典包含测试用例的名称和参数。
"""
try
:
# 调试信息:打印文件路径
INFO
(
f
"尝试打开文件路径: {xlsx_file_path}"
)
if
not
os
.
path
.
exists
(
xlsx_file_path
):
raise
FileNotFoundError
(
f
"文件未找到: {xlsx_file_path}"
)
# 使用 with 语句打开 XLSX 文件,确保文件在读取完成后自动关闭
with
openpyxl
.
load_workbook
(
xlsx_file_path
,
read_only
=
True
)
as
workbook
:
# 选择工作表
if
sheet_name
:
try
:
sheet
=
workbook
[
sheet_name
]
except
KeyError
:
raise
KeyError
(
f
"工作表未找到: {sheet_name}"
)
else
:
sheet
=
workbook
.
active
# 读取表头,从第三行开始
headers
=
[
cell
.
value
for
cell
in
sheet
[
3
]]
# 打印表头列名
# INFO(f"表头列名: {headers}")
# 找到表头中名为 'JSON' 和 '功能类别' 的列索引
try
:
json_index
=
headers
.
index
(
'JSON'
)
except
ValueError
as
e
:
raise
ValueError
(
f
"表头中没有找到所需的列: {e}"
)
workbook
=
openpyxl
.
load_workbook
(
xlsx_file_path
,
read_only
=
True
)
INFO
(
"XLSX文件成功打开"
)
# 选择工作表
if
sheet_name
:
try
:
category_index
=
headers
.
index
(
'功能类别'
)
except
ValueError
as
e
:
raise
ValueError
(
f
"表头中没有找到所需的列: {e}"
)
sheet
=
workbook
[
sheet_name
]
INFO
(
f
"成功选择工作表: {sheet_name}"
)
except
KeyError
:
raise
KeyError
(
f
"工作表未找到: {sheet_name}"
)
else
:
sheet
=
workbook
.
active
INFO
(
"使用活动工作表"
)
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
]
# 读取表头,从第三行开始
headers
=
[
cell
.
value
for
cell
in
sheet
[
3
]]
INFO
(
f
"表头列名: {headers}"
)
# 打印 JSON 数据以进行调试
INFO
(
f
"行 {row_num} 的 JSON 数据: {json_data}"
)
# 找到表头中名为 'JSON' 和 '功能类别' 的列索引
try
:
json_index
=
headers
.
index
(
'JSON'
)
INFO
(
f
"找到 'JSON' 列索引: {json_index}"
)
except
ValueError
as
e
:
raise
ValueError
(
f
"表头中没有找到所需的列: {e}"
)
# 检查 JSON 数据是否为空
if
json_data
is
None
or
json_data
.
strip
()
==
""
:
# INFO(f"跳过行 {row_num},JSON 数据为空")
continue
try
:
category_index
=
headers
.
index
(
'功能类别'
)
INFO
(
f
"找到 '功能类别' 列索引: {category_index}"
)
except
ValueError
as
e
:
raise
ValueError
(
f
"表头中没有找到所需的列: {e}"
)
# 解析 JSON 字符串
try
:
parsed_json
=
json
.
loads
(
json_data
)
except
json
.
JSONDecodeError
:
raise
ValueError
(
f
"行 {row_num} 的 JSON 数据无法解析: {json_data}"
)
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
]
# 获取功能类别
category
=
row
[
category_index
]
INFO
(
f
"行 {row_num} 的功能类别: {category}"
)
# 检查是否需要过滤测试用例类型
if
case_type
and
category
!=
case_type
:
continue
# 检查是否需要过滤测试用例类型
if
case_type
and
category
!=
case_type
:
INFO
(
f
"跳过行 {row_num},功能类别不匹配: {category} != {case_type}"
)
continue
# 将解析后的 JSON 数据添加到列表中
ddt_cases
.
append
(
parsed_json
)
# 将解析后的 JSON 数据添加到列表中
ddt_cases
.
append
(
parsed_json
)
INFO
(
f
"行 {row_num} 的 JSON 数据已添加到 ddt_cases"
)
# 日志记录:XLSX文件已读取
INFO
(
"XLSX文件已读取"
)
# 返回包含所有测试用例数据的列表
return
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"
C:\PycharmData
\ubains-module-test\预定系统\测试数据\会议预定测试用例.xlsx"
# ddt_cases = read_xlsx_data(xlsx_file_path, sheet_name="
会议创建", case_type="工商银行项目-25-04-01
")
# 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)
import
openpyxl
import
openpyxl
def
clear_columns_in_xlsx
(
xlsx_file_path
,
sheet_name
=
None
,
columns_to_clear
=
None
):
...
...
预定系统/README.md
浏览文件 @
369fb84a
...
...
@@ -287,4 +287,6 @@
-
登录模块增加excel写入函数调用。调试将图片嵌入单元格的功能,验证不可行。
80.
2025-04-16
-
修复展厅巡检预约系统因为元素定位失败导致的创建会议失败问题,优化issue_send_and_upload议题上传函数。
-
修复因xlsx文件打开读取后没有关闭导致的文件损坏问题,优化read_xlsx_data函数,增加关闭文件操作。
\ No newline at end of file
-
修复因xlsx文件打开读取后没有关闭导致的文件损坏问题,优化read_xlsx_data函数,增加关闭文件操作。
81.
2025-04-17
-
修复因xlsx文件读取失败导致的报错。
\ No newline at end of file
预定系统/cases/展厅巡检/05展厅会议室中控屏/__pycache__/展厅会议室中控屏.cpython-310.pyc
浏览文件 @
369fb84a
No preview for this file type
预定系统/cases/展厅巡检/05展厅会议室中控屏/展厅会议室中控屏.py
浏览文件 @
369fb84a
...
...
@@ -125,7 +125,7 @@ class Exhibition_Meeting_Control_0001:
sleep
(
3
)
INFO
(
"尝试定位麦克风按钮"
)
mic_on_button
=
app_drive
.
find_element
(
AppiumBy
.
XPATH
,
"/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.FrameLayout/android.widget.RelativeLayout[
6
]/android.widget.Button[2]"
)
"/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.FrameLayout/android.widget.RelativeLayout[
2
]/android.widget.Button[2]"
)
INFO
(
"开启麦克风"
)
mic_on_button
.
click
()
sleep
(
2
)
...
...
预定系统/cases/项目定制/富创项目24-12-25/MQTT会议推送.py
浏览文件 @
369fb84a
...
...
@@ -19,8 +19,8 @@ if __name__ == "__main__":
broker_address
=
"192.168.5.218"
port
=
1883
num_repeats
=
1000
# 重复执行的次数
interval_between_repeats
=
0.1
# 每次重复之间的间隔时间(秒)
num_repeats
=
2
# 重复执行的次数
interval_between_repeats
=
30
# 每次重复之间的间隔时间(秒)
# 创建 MQTT 客户端实例
mqtt_client
=
Mqtt
(
broker_address
,
port
)
...
...
预定系统/cases/项目定制/富创项目24-12-25/__pycache__/MQTT会议推送.cpython-310.pyc
浏览文件 @
369fb84a
No preview for this file type
预定系统/测试数据/MQTT模块/富创项目/富创项目_会议预约推送.csv
浏览文件 @
369fb84a
topic,action,thirdPartyMeetingId,thirdPartyRoomId,conferenceName,messageName,startTime,endTime,companyNumber,signInBeforeMinutes,signEndTime,enableSignOut,signOutMinutesAfterSignIn,signOutAfterEndMinutes
/meeting/message/sync,add,9565416702283092156,1,表处办公室1号会议室,人脸长期运行测试4,2025-04-16 17:50:00.0,2025-04-16 18:20:00.0,CN-JHP-UBAINS,10,10,1,10,10
/meeting/message/sync,add,9565416702283092157,1,表处办公室1号会议室,人脸长期运行测试5,2025-04-16 18:40:00.0,2025-04-16 19:10:00.0,CN-JHP-UBAINS,10,10,1,10,10
/meeting/message/sync,add,9565416702283092158,1,表处办公室1号会议室,人脸长期运行测试6,2025-04-16 19:30:00.0,2025-04-16 20:00:00.0,CN-JHP-UBAINS,10,10,1,10,10
/meeting/message/sync,add,9565416702283092159,1,表处办公室1号会议室,人脸长期运行测试7,2025-04-16 20:20:00.0,2025-04-16 20:50:00.0,CN-JHP-UBAINS,10,10,1,10,10
/meeting/message/sync,add,9565416702283092160,1,表处办公室1号会议室,人脸长期运行测试8,2025-04-16 21:00:00.0,2025-04-16 21:30:00.0,CN-JHP-UBAINS,10,10,1,10,10
/meeting/message/sync,add,9565416702283092161,1,表处办公室1号会议室,人脸长期运行测试9,2025-04-16 21:40:00.0,2025-04-16 22:10:00.0,CN-JHP-UBAINS,10,10,1,10,10
/meeting/message/sync,add,9565416702283092162,1,表处办公室1号会议室,人脸长期运行测试10,2025-04-16 22:20:00.0,2025-04-16 22:50:00.0,CN-JHP-UBAINS,5,5,1,10,5
/meeting/message/sync,add,9565416702283092163,1,表处办公室1号会议室,人脸长期运行测试11,2025-04-16 23:00:00.0,2025-04-16 23:30:00.0,CN-JHP-UBAINS,5,5,1,10,5
\ No newline at end of file
/meeting/message/sync,add,936100702283092182,1,表处办公室1号会议室,人脸长期运行测试30,2025-04-17 11:40:00.0,2025-04-17 12:10:00.0,CN-JHP-UBAINS,5,2,1,5,2
/meeting/message/sync,add,936100702283092183,1,表处办公室1号会议室,人脸长期运行测试31,2025-04-17 12:20:00.0,2025-04-17 12:50:00.0,CN-JHP-UBAINS,5,2,1,5,2
/meeting/message/sync,add,936100702283092184,1,表处办公室1号会议室,人脸长期运行测试32,2025-04-17 13:00:00.0,2025-04-17 13:30:00.0,CN-JHP-UBAINS,5,2,1,5,2
\ No newline at end of file
预定系统/测试数据/会议预定测试用例.xlsx
浏览文件 @
369fb84a
No preview for this file type
预定系统/测试数据/长安大学测试用例.xlsx
浏览文件 @
369fb84a
No preview for this file type
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论