import os from datetime import datetime import time from selenium.webdriver.common.by import By from selenium.common.exceptions import TimeoutException from selenium.common.exceptions import NoSuchElementException import pytest from comm.comm import * from comm.read_data import * from comm.write_data import * from selenium import webdriver from po.login_page import LoginPage from po.home_page import HomePage from po.export_test_data_page import ExportTestDataPage from po.member_detail_page import MemberDetailPage from po.report_page import ReportPage from po.share_add_page import ShareAddPage from po.maq_answer_page import MAQAnswerPage from po.caq_answer_page import CAQAnswerPage from comm.my_random import * class TestPackageList: driver = None test_package_name = "MAQV2自动测试包-20230727155906" member_email = None @pytest.mark.parametrize('data_read', ["testPackageList"], indirect=True) def test_export_test_data(self, data_read: dict, driver): home = HomePage(driver) home.menu_select("测试包管理/导出测试数据") time.sleep(5) export = ExportTestDataPage(driver) # 选择产品包 export.select(export.es.product_select, export.es.product_option, data_read["edit"]["product"]) # 获取当前日期 now = datetime.now() # 提取年、月、日 year = now.year month = now.month if month < 10: month = "0" + str(month) day = now.day if day < 10: day = "0" + str(day) # 拼接日期 date = f"{year}-{month}-{day}" # 输入完成时间 export.fill(export.es.test_begin_time_input, date) export.fill(export.es.test_end_time_input, date) # 点击搜索按钮 export.click(export.es.search_btn) time.sleep(5) # 获取当前项目根路径 root_path = os.getcwd() # 拼接下载文件目录 dir_path = root_path + r"\download" # 获取目录下所有文件 old_file_names = listdir(dir_path) # 勾选 export.click(export.es.table_thead_checkbox) # 点击导出 export.click(export.es.export_test_data_btn) # 等待加载框消失 export.wait_layer_reload_hide() new_file_names = [] i = 0 while i < data_read["downloadWaitTime"]: # 获取目录下所有文件 new_file_names = listdir(dir_path) # 判断旧文件的数量与新文件的数量是否相同,相同则睡眠一秒 if len(old_file_names) == len(new_file_names): time.sleep(1) i += 1 continue else: # 判断新的文件名是否包含未确认 for file_name in new_file_names: if "未确认" in file_name: new_file_names = listdir(dir_path) break else: # 否则直接退出循环 break else: assert False # 获取两个列表中的差集 result = set(old_file_names).symmetric_difference(set(new_file_names)) result_list = list(result) file_name = dir_path + "\\" + result_list[0] # 读取文件数据 data_list = read_excel(file_name, "Sheet1") # 导出的数据 excel_data = data_list[3] # 答题的数据 answer_data: dict = data_read["question"]["MAQ"] # 对比数据 for key in answer_data.keys(): if excel_data[key] != answer_data[key]["answer"]: print(key + "数据错误") assert False assert True if __name__ == '__main__': pytest.main(["-s", __file__])