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__])
|