阳洁
2023-07-28 23217c7d73da2df35a72b4bf5879ee2bea50d1d4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
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__])