提交 7e2002f8 authored 作者: 陈泽健's avatar 陈泽健

补充write_xlsx_data函数用以将测试结果与日志截图写入到xlsx测试用例文件中。

上级 a93c02b3
......@@ -1715,3 +1715,59 @@ def approval_status_control(message_name, approval_type, wd):
# 点击【驳回】按钮
safe_click((By.XPATH, f"//span[contains(text(),'{approval_type}')]"), wd)
sleep(1)
# xlsx文件写入函数
import os
import openpyxl
import logging
def write_xlsx_data(xlsx_file_path, sheet_name, column_name, data):
"""
在XLSX文件的指定列的第四行开始填充测试数据。
参数:
xlsx_file_path (str): XLSX文件的路径。
sheet_name (str): 工作表的名称。
column_name (str): 要写入数据的列名。
data (list): 要写入的数据列表。
"""
try:
# 打开XLSX文件
workbook = openpyxl.load_workbook(xlsx_file_path)
except FileNotFoundError:
raise FileNotFoundError(f"文件未找到: {xlsx_file_path}")
except Exception as e:
raise Exception(f"无法打开文件: {e}")
# 选择工作表
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]]
# 打印表头列名
logging.info(f"表头列名: {headers}")
# 找到表头中名为 'column_name' 的列索引
try:
column_index = headers.index(column_name)
except ValueError as e:
raise ValueError(f"表头中没有找到所需的列: {column_name}")
# 从第四行开始写入数据
for row_num, value in enumerate(data, start=4):
cell = sheet.cell(row=row_num, column=column_index + 1) # 列索引从1开始
cell.value = value
# 保存修改后的文件
try:
workbook.save(xlsx_file_path)
logging.info(f"文件 {xlsx_file_path} 已保存,数据已写入列 {column_name} 的第四行开始。")
except Exception as e:
logging.error(f"保存文件时出错: {e}")
......@@ -266,3 +266,4 @@
- 补充clear_columns_in_xlsx函数实现在读取测试用例前,先将测试结果和日志截图清空。
71. 2025-03-21
- 实现通过JSON数据中对应的name值来区分测试用例数量。
- 补充write_xlsx_data函数用以将测试结果与日志截图写入到xlsx测试用例文件中。
\ No newline at end of file
......@@ -22,6 +22,8 @@ class ChangAnMessageApproval:
"""
ddt_cases = read_xlsx_data(xlsx_file_path, sheet_name='会议审批')
# 测试开始前调用clear_columns_in_xlsx函数,将测试用例中的测试结果和日志截图置空
clear_columns_in_xlsx(xlsx_file_path, sheet_name='会议审批')
def teststeps(self):
"""
......@@ -60,7 +62,10 @@ class ChangAnMessageApproval:
notify_text = get_notify_text(wd, (locator_type, locator_value), "Message_Template",
"Template_Edit", "长安审批测试")
INFO(f"提示信息为:{notify_text}")
CHECK_POINT("编辑测试判断是否正确", expented_result in notify_text)
if CHECK_POINT("编辑测试判断是否正确", expented_result in notify_text):
write_xlsx_data(xlsx_file_path, "会议审批", "测试结果", "通过")
else:
write_xlsx_data(xlsx_file_path, "会议审批", "测试结果", "失败")
SELENIUM_LOG_SCREEN(wd, "50")
elif element_type == "function":
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论