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.group_report_page import GroupReportPage
|
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 TestGroupReport:
|
driver = None
|
name = "MAQV2自动测试包-20230727155906"
|
member_email = None
|
|
@pytest.mark.parametrize('data_read', ["groupReport"], indirect=True)
|
def test_add(self, data_read: dict, driver):
|
home = HomePage(driver)
|
home.menu_select("测试包管理/组别报告")
|
group = GroupReportPage(driver)
|
# 点击新增按钮
|
group.click(group.es.add_btn)
|
# 切换iframe
|
group.switch_iframe(group.es.add_iframe)
|
# 获取随机名称
|
name = "组别报告-" + random_string(8)
|
TestGroupReport.name = name
|
# 输入名称
|
group.fill(group.es.add_name_input, name)
|
# 文件路径
|
# 获取当前项目根路径
|
root_path = os.getcwd()
|
# 拼接文件路径
|
if "\\testcase" in root_path:
|
root_path = root_path[0:root_path.rfind("\\testcase")]
|
file_path = root_path + r"\data\MAQ_group_data.xlsx"
|
# 传入文件
|
group.fill(group.es.add_load_file_input, file_path)
|
# 切换iframe
|
group.switch_parent_iframe()
|
# 点击确认按钮
|
group.click(group.es.layer_confirm_btn)
|
time.sleep(10)
|
|
@pytest.mark.parametrize('data_read', ["testPackageList"], indirect=True)
|
def test_group_data(self, data_read: dict, driver):
|
group = GroupReportPage(driver)
|
# 输入名称
|
group.fill(group.es.add_name_input, TestGroupReport.name)
|
# 点击搜索按钮
|
group.click(group.es.search_btn)
|
|
# 获取当前项目根路径
|
root_path = os.getcwd()
|
# 拼接下载文件目录
|
if "\\testcase" in root_path:
|
root_path = root_path[0:root_path.rfind("\\testcase")]
|
dir_path = root_path + r"\download"
|
# 获取目录下所有文件
|
old_file_names = []
|
for filename in os.listdir(dir_path):
|
if os.path.isfile(os.path.join(dir_path, filename)):
|
old_file_names.append(filename)
|
|
# 点击组别数据
|
group.click(group.es.group_data_btn)
|
|
i = 0
|
while i < data_read["downloadWaitTime"]:
|
# 获取目录下所有文件
|
new_file_names = []
|
for filename in os.listdir(dir_path):
|
if os.path.isfile(os.path.join(dir_path, filename)):
|
new_file_names.append(filename)
|
# 判断旧文件的数量与新文件的数量是否相同,相同则睡眠一秒
|
if len(old_file_names) == len(new_file_names):
|
time.sleep(1)
|
i += 1
|
continue
|
else:
|
# 否则直接退出循环
|
break
|
else:
|
assert False
|
|
@pytest.mark.parametrize('data_read', ["testPackageList"], indirect=True)
|
def test_group_report(self, data_read: dict, driver):
|
group = GroupReportPage(driver)
|
# 获取当前项目根路径
|
root_path = os.getcwd()
|
# 拼接下载文件目录
|
if "\\testcase" in root_path:
|
root_path = root_path[0:root_path.rfind("\\testcase")]
|
dir_path = root_path + r"\download"
|
# 获取目录下所有文件
|
old_file_names = []
|
for filename in os.listdir(dir_path):
|
if os.path.isfile(os.path.join(dir_path, filename)):
|
old_file_names.append(filename)
|
|
# 点击组别数据
|
group.click(group.es.group_report_btn)
|
|
i = 0
|
while i < data_read["downloadWaitTime"]:
|
# 获取目录下所有文件
|
new_file_names = []
|
for filename in os.listdir(dir_path):
|
if os.path.isfile(os.path.join(dir_path, filename)):
|
new_file_names.append(filename)
|
# 判断旧文件的数量与新文件的数量是否相同,相同则睡眠一秒
|
if len(old_file_names) == len(new_file_names):
|
time.sleep(1)
|
i += 1
|
continue
|
else:
|
# 否则直接退出循环
|
break
|
else:
|
assert False
|
|
|
if __name__ == '__main__':
|
pytest.main(["-s", __file__])
|