Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录
切换导航
U
ubains-module-test
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
郑晓兵
ubains-module-test
Commits
93803d12
提交
93803d12
authored
3月 24, 2025
作者:
陈泽健
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
优化write_xlsx_data函数实现表格自动填充测试结果和日志截图功能。
上级
b7bcebb6
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
44 行增加
和
19 行删除
+44
-19
base.cpython-310.pyc
预定系统/Base/__pycache__/base.cpython-310.pyc
+0
-0
base.py
预定系统/Base/base.py
+37
-14
README.md
预定系统/README.md
+4
-2
会议审批.cpython-310.pyc
...项目定制/长安大学项目25-03-17/会议审批/__pycache__/会议审批.cpython-310.pyc
+0
-0
会议审批.py
预定系统/cases/项目定制/长安大学项目25-03-17/会议审批/会议审批.py
+3
-3
富创项目_会议预约推送.csv
预定系统/测试数据/MQTT模块/富创项目/富创项目_会议预约推送.csv
+0
-0
长安大学测试用例.xlsx
预定系统/测试数据/长安大学测试用例.xlsx
+0
-0
没有找到文件。
预定系统/Base/__pycache__/base.cpython-310.pyc
浏览文件 @
93803d12
No preview for this file type
预定系统/Base/base.py
浏览文件 @
93803d12
...
@@ -1721,16 +1721,18 @@ def approval_status_control(message_name, approval_type, wd):
...
@@ -1721,16 +1721,18 @@ def approval_status_control(message_name, approval_type, wd):
import
os
import
os
import
openpyxl
import
openpyxl
import
logging
import
logging
def
write_xlsx_data
(
xlsx_file_path
,
sheet_name
,
function_number
,
column_name
,
data
):
from
openpyxl.drawing.image
import
Image
from
openpyxl.utils
import
get_column_letter
def
write_xlsx_data
(
xlsx_file_path
,
sheet_name
,
function_number
,
test_result
,
log_screenshot
):
"""
"""
在XLSX文件的指定
列的指定功能编号的行开始填充测试数据
。
在XLSX文件的指定
行中填充测试结果和日志截图
。
参数:
参数:
xlsx_file_path (str): XLSX文件的路径。
xlsx_file_path (str): XLSX文件的路径。
sheet_name (str): 工作表的名称。
sheet_name (str): 工作表的名称。
function_number (str): 功能编号,用于匹配行。
function_number (str): 功能编号,用于匹配行。
column_name (str): 要写入数据的列名
。
test_result (str): 测试结果
。
data (list): 要写入的数据列表
。
log_screenshot (str): 日志截图路径
。
"""
"""
try
:
try
:
# 打开XLSX文件
# 打开XLSX文件
...
@@ -1755,24 +1757,44 @@ def write_xlsx_data(xlsx_file_path, sheet_name, function_number, column_name, da
...
@@ -1755,24 +1757,44 @@ def write_xlsx_data(xlsx_file_path, sheet_name, function_number, column_name, da
# 打印表头列名
# 打印表头列名
logging
.
info
(
f
"表头列名: {headers}"
)
logging
.
info
(
f
"表头列名: {headers}"
)
# 找到表头中名为 '
function_number' 和 'column_name
' 的列索引
# 找到表头中名为 '
功能编号'、'测试结果' 和 '日志截图
' 的列索引
try
:
try
:
function_number_index
=
headers
.
index
(
"功能编号"
)
function_number_index
=
headers
.
index
(
"功能编号"
)
except
ValueError
as
e
:
except
ValueError
as
e
:
raise
ValueError
(
f
"表头中没有找到 '功能编号' 列: {e}"
)
raise
ValueError
(
f
"表头中没有找到 '功能编号' 列: {e}"
)
try
:
try
:
column_index
=
headers
.
index
(
column_name
)
test_result_index
=
headers
.
index
(
"测试结果"
)
except
ValueError
as
e
:
except
ValueError
as
e
:
raise
ValueError
(
f
"表头中没有找到所需的列: {column_name}"
)
raise
ValueError
(
f
"表头中没有找到 '测试结果' 列: {e}"
)
try
:
log_screenshot_index
=
headers
.
index
(
"日志截图"
)
except
ValueError
as
e
:
raise
ValueError
(
f
"表头中没有找到 '日志截图' 列: {e}"
)
# 遍历数据行,找到与给定功能编号匹配的行
# 遍历数据行,找到与给定功能编号匹配的行
for
row
in
sheet
.
iter_rows
(
min_row
=
4
,
values_only
=
True
):
for
row
in
sheet
.
iter_rows
(
min_row
=
4
,
values_only
=
False
):
if
row
[
function_number_index
]
==
function_number
:
if
row
[
function_number_index
]
.
value
==
function_number
:
row_num
=
row
[
0
]
.
row
# 填充测试结果
for
data_index
,
value
in
enumerate
(
data
,
start
=
0
):
row
[
test_result_index
]
.
value
=
test_result
cell
=
sheet
.
cell
(
row
=
row_num
+
data_index
,
column
=
column_index
+
1
)
# 列索引从1开始
cell
.
value
=
value
# 插入日志截图
if
log_screenshot
:
img
=
Image
(
log_screenshot
)
# 获取单元格的宽度和高度
cell
=
row
[
log_screenshot_index
]
cell_width
=
sheet
.
column_dimensions
[
get_column_letter
(
cell
.
column
)]
.
width
cell_height
=
sheet
.
row_dimensions
[
cell
.
row
]
.
height
# 调整图片大小以适应单元格
img
.
width
=
cell_width
*
7
# 7 是一个经验值,根据需要调整
img
.
height
=
cell_height
*
1.5
# 1.5 是一个经验值,根据需要调整
# 设置图片位置
sheet
.
add_image
(
img
,
cell
.
coordinate
)
break
break
else
:
else
:
raise
ValueError
(
f
"未找到功能编号为 {function_number} 的行"
)
raise
ValueError
(
f
"未找到功能编号为 {function_number} 的行"
)
...
@@ -1780,6 +1802,6 @@ def write_xlsx_data(xlsx_file_path, sheet_name, function_number, column_name, da
...
@@ -1780,6 +1802,6 @@ def write_xlsx_data(xlsx_file_path, sheet_name, function_number, column_name, da
# 保存修改后的文件
# 保存修改后的文件
try
:
try
:
workbook
.
save
(
xlsx_file_path
)
workbook
.
save
(
xlsx_file_path
)
logging
.
info
(
f
"文件 {xlsx_file_path} 已保存,数据已写入功能编号为 {function_number} 的行
,列 {column_name}
。"
)
logging
.
info
(
f
"文件 {xlsx_file_path} 已保存,数据已写入功能编号为 {function_number} 的行。"
)
except
Exception
as
e
:
except
Exception
as
e
:
logging
.
error
(
f
"保存文件时出错: {e}"
)
logging
.
error
(
f
"保存文件时出错: {e}"
)
\ No newline at end of file
预定系统/README.md
浏览文件 @
93803d12
...
@@ -266,4 +266,6 @@
...
@@ -266,4 +266,6 @@
-
补充clear_columns_in_xlsx函数实现在读取测试用例前,先将测试结果和日志截图清空。
-
补充clear_columns_in_xlsx函数实现在读取测试用例前,先将测试结果和日志截图清空。
71.
2025-03-21
71.
2025-03-21
-
实现通过JSON数据中对应的name值来区分测试用例数量。
-
实现通过JSON数据中对应的name值来区分测试用例数量。
-
补充write_xlsx_data函数用以将测试结果与日志截图写入到xlsx测试用例文件中。调试write_xlsx_data函数与统一平台的窗口切换关闭。
-
补充write_xlsx_data函数用以将测试结果与日志截图写入到xlsx测试用例文件中。调试write_xlsx_data函数与统一平台的窗口切换关闭。
\ No newline at end of file
72.
2025-03-24
-
优化write_xlsx_data函数实现表格自动填充测试结果和日志截图功能。
\ No newline at end of file
预定系统/cases/项目定制/长安大学项目25-03-17/会议审批/__pycache__/会议审批.cpython-310.pyc
浏览文件 @
93803d12
No preview for this file type
预定系统/cases/项目定制/长安大学项目25-03-17/会议审批/会议审批.py
浏览文件 @
93803d12
...
@@ -23,7 +23,7 @@ class ChangAnMessageApproval:
...
@@ -23,7 +23,7 @@ class ChangAnMessageApproval:
ddt_cases
=
read_xlsx_data
(
xlsx_file_path
,
sheet_name
=
'会议审批'
)
ddt_cases
=
read_xlsx_data
(
xlsx_file_path
,
sheet_name
=
'会议审批'
)
# 测试开始前调用clear_columns_in_xlsx函数,将测试用例中的测试结果和日志截图置空
# 测试开始前调用clear_columns_in_xlsx函数,将测试用例中的测试结果和日志截图置空
clear_columns_in_xlsx
(
xlsx_file_path
,
sheet_name
=
'会议审批'
)
clear_columns_in_xlsx
(
xlsx_file_path
,
sheet_name
=
'会议审批'
,
columns_to_clear
=
[
'测试结果'
,
'测试频次'
,
'日志截图'
]
)
def
teststeps
(
self
):
def
teststeps
(
self
):
"""
"""
...
@@ -63,9 +63,9 @@ class ChangAnMessageApproval:
...
@@ -63,9 +63,9 @@ class ChangAnMessageApproval:
"Template_Edit"
,
"长安审批测试"
)
"Template_Edit"
,
"长安审批测试"
)
INFO
(
f
"提示信息为:{notify_text}"
)
INFO
(
f
"提示信息为:{notify_text}"
)
if
CHECK_POINT
(
"编辑测试判断是否正确"
,
expented_result
in
notify_text
):
if
CHECK_POINT
(
"编辑测试判断是否正确"
,
expented_result
in
notify_text
):
write_xlsx_data
(
xlsx_file_path
,
"会议审批"
,
name
,
"
测试结果"
,
"通过
"
)
write_xlsx_data
(
xlsx_file_path
,
"会议审批"
,
name
,
"
失败"
,
r"D:\GithubData\自动化\ubains-module-test\预定系统\reports\imgs\Exhibit_Inspect\Android\门口屏截屏.png
"
)
else
:
else
:
write_xlsx_data
(
xlsx_file_path
,
"会议审批"
,
name
,
"
测试结果"
,
"失败
"
)
write_xlsx_data
(
xlsx_file_path
,
"会议审批"
,
name
,
"
通过"
,
r"D:\GithubData\自动化\ubains-module-test\预定系统\reports\imgs\Exhibit_Inspect\Android\门口屏截屏.png
"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50"
)
SELENIUM_LOG_SCREEN
(
wd
,
"50"
)
elif
element_type
==
"function"
:
elif
element_type
==
"function"
:
...
...
预定系统/测试数据/MQTT模块/富创项目/富创项目_会议预约推送.csv
浏览文件 @
93803d12
此差异已折叠。
点击以展开。
预定系统/测试数据/长安大学测试用例.xlsx
浏览文件 @
93803d12
No preview for this file type
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论