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

修复因xlsx文件打开读取后没有关闭导致的文件损坏问题,优化read_xlsx_data函数,增加关闭文件操作。

上级 317c152b
......@@ -469,6 +469,9 @@ def read_csv_data(csv_file_path):
# 读取测试用例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文件中的数据,并将其转换为一个包含字典的列表,每个字典代表一行测试用例数据。
......@@ -482,13 +485,8 @@ def read_xlsx_data(xlsx_file_path, sheet_name=None, case_type=None):
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}")
# 使用 with 语句打开 XLSX 文件,确保文件在读取完成后自动关闭
with openpyxl.load_workbook(xlsx_file_path, read_only=True) as workbook:
# 选择工作表
if sheet_name:
try:
......@@ -550,6 +548,12 @@ def read_xlsx_data(xlsx_file_path, sheet_name=None, case_type=None):
# 返回包含所有测试用例数据的列表
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")
......
......@@ -287,3 +287,4 @@
- 登录模块增加excel写入函数调用。调试将图片嵌入单元格的功能,验证不可行。
80. 2025-04-16
- 修复展厅巡检预约系统因为元素定位失败导致的创建会议失败问题,优化issue_send_and_upload议题上传函数。
- 修复因xlsx文件打开读取后没有关闭导致的文件损坏问题,优化read_xlsx_data函数,增加关闭文件操作。
\ No newline at end of file
......@@ -136,10 +136,10 @@ class Exhibition_Meeting_Control_0001:
play_cloud_voice(app_id, app_secret, device_sn)
sleep(20)
# 关闭麦克风
mic_off_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[5]/android.widget.Button[3]")
INFO("关闭麦克风")
mic_off_button.click()
# mic_off_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[5]/android.widget.Button[3]")
# INFO("关闭麦克风")
# mic_off_button.click()
# 关闭左摄像头
left_camera_off_button = app_drive.find_element(AppiumBy.XPATH,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论