yj
2024-07-24 bf3d9cb7cd6d9990ad1e24adeb047343ef215e0d
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
from datetime import datetime
import time
from selenium.webdriver.common.by import By
 
import pytest
from selenium import webdriver
from po.login_page import LoginPage
from po.home_page import HomePage
from po.test_package_list_page import TestPackageListPage
from po.share_add_page import ShareAddPage
from po.ciaq_answer_page import CIAQAnswerPage
from comm.my_random import *
 
 
class TestCIAQ:
    driver = None
    test_package_name = "CIAQ自动测试包-20230718171809"
 
    @pytest.mark.parametrize('data_read', ["CIAQ"], indirect=True)
    def test_create_package(self, data_read: dict):
        """
        创建测试包
        :param data_read: 读取数据
        :return:
        """
        # 获取driver
        driver = TestCIAQ.driver
        # 创建home页面的对象
        home_page = HomePage(driver)
        # 点击左侧菜单进入页面
        home_page.menu_select(data_read["menu"])
        # 创建测试包列表页面的对象
        test_package_list = TestPackageListPage(driver)
        # 点击创建按钮
        test_package_list.click(test_package_list.es.create_btn)
        # 获取当前时间
        current_time = datetime.now()
        # 转换为字符串
        time_str = current_time.strftime("%Y%m%d%H%M%S")
        # 创建测试包填写的参数
 
        # 测试包名称
        test_package_name = "CIAQ自动测试包-" + time_str
        # 设置测试包名称为类变量
        TestCIAQ.test_package_name = test_package_name
        # 获取创建测试包的数据
        create_data = data_read["add"]
 
        # 填写测试包名称
        test_package_list.fill(test_package_list.es.add_testPackageName_input, test_package_name)
        # 填写报告企业名称
        test_package_list.fill(test_package_list.es.add_reportCompanyName_input, create_data["company"])
        # 选择测试包类型
        test_package_list.select(test_package_list.es.add_testPackageType_select, test_package_list.es.add_testPackageType_option, create_data["type"])
        # 选择产品包
        test_package_list.prodTree_select(create_data["product"])
        # 输入hr邮箱
        test_package_list.fill(test_package_list.es.add_hrEmail_input, create_data["hrEmail"])
        # 输入有效期
        test_package_list.fill(test_package_list.es.add_invalidTime, create_data["invalid"])
        # 选择邀请邮件语言类型
        test_package_list.select(test_package_list.es.add_templateLangType_select, test_package_list.es.add_templateLangType_option, create_data["memberLang"])
        # 选择HR邮件语言类型
        test_package_list.select(test_package_list.es.add_hrTemplateLangType_select, test_package_list.es.add_hrTemplateLangType_option, create_data["hrReportLang"])
        # 选择报告模板
        test_package_list.select(test_package_list.es.add_reportTemplateId_select, test_package_list.es.add_reportTemplateId_option, create_data["reportTemplate"])
        # 点击测试者接收报告
        test_package_list.click(test_package_list.es.add_autoSendReport_checkbox)
        # 选择测试者报告邮箱语言类型
        test_package_list.select(test_package_list.es.add_memberReportLangType_select, test_package_list.es.add_memberReportLangType_option, create_data["memberReportLang"])
 
        # 选择人口学编码
        test_package_list.select_code_checkbox(create_data["checkCode"], create_data["uncheckCode"])
 
        # 点击确认按钮
        test_package_list.click(test_package_list.es.add_confirm_btn)
        time.sleep(2)
        # 判断是否成功创建
        assert test_package_list.is_create_success(test_package_name)
        time.sleep(5)
 
    @pytest.mark.parametrize('data_read', ["CIAQ"], indirect=True)
    def test_open_url(self, data_read: dict):
        """
        打开分享链接
        :return:
        """
        # 获取driver
        driver = TestCIAQ.driver
        # 创建测试包列表页面的对象
        test_package_list = TestPackageListPage(driver)
        # 获取到url
        url = test_package_list.get_share_url(TestCIAQ.test_package_name)
        # 打开新标签页加载url
        test_package_list.goto_new_table(url)
        # 创建分享页面对象
        share_add = ShareAddPage(driver)
        # 填写信息提交并获取测试链接
        name = random_string(8)
        email = name + "@gmail.com"
        # 填写信息
        test_url = share_add.get_test_url(name, email)
        # 当前页面打开链接
        driver.get(test_url)
        # 点击提交按钮
        share_add.click(share_add.es.submit_btn)
        # 获取数据
        info = data_read["info"]
        # 填写基本信息并提交
        share_add.fill_info_CIAQ(info)
        time.sleep(5)
 
    def test_answer(self):
        # 获取driver
        driver = TestCIAQ.driver
        # 创建answer对象
        answer_page = CIAQAnswerPage(driver)
        # 点击开始测试
        answer_page.start_btn()
        # 开始答题
        flag = answer_page.answer()
        # 答完题关闭当前标签页
        driver.close()
        # 切换到第一个标签页
        answer_page.switch_window(0)
        if flag is not None or not flag:
            assert flag
            return
 
    def test_delete_package(self):
        # 获取driver
        driver = TestCIAQ.driver
        # 创建测试包列表页面的对象
        test_package_list = TestPackageListPage(driver)
        # 删除测试包
        test_package_list.delete_package(TestCIAQ.test_package_name)
        time.sleep(5)
        # 关闭
        driver.quit()
 
 
if __name__ == '__main__':
    pytest.main(["-s", __file__])