yj
2024-07-24 13af5663bd892c6f7a4e35b9761d12f135def81b
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
from datetime import datetime
import time
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
 
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.caq_answer_page import CAQAnswerPage
from comm.my_random import *
 
 
class TestCAQ:
    driver = None
    test_package_name = "CAQ自动测试包-20230718101350"
 
    @pytest.mark.parametrize('data_read', ["CAQ"], indirect=True)
    def test_create_package(self, data_read: dict, driver):
        """
        创建测试包
        :param data_read: 读取数据
        :return:
        """
        # 创建home页面的对象
        home_page = HomePage(driver)
        # 点击左侧菜单进入页面
        home_page.menu_select(data_read["menu"])
        # 创建测试包列表页面的对象
        test_package_list = TestPackageListPage(driver)
        # 创建测试包并接收创建的测试包名称
        create_package_name = test_package_list.create_package(data_read["add"])
        # 赋值到类变量
        TestCAQ.test_package_name = create_package_name
        time.sleep(5)
        # 判断是否成功创建
        assert test_package_list.is_create_success(create_package_name)
 
    @pytest.mark.parametrize('data_read', ["CAQ"], indirect=True)
    def test_open_url(self, data_read: dict, driver):
        """
        打开分享链接
        :return:
        """
        # 创建测试包列表页面的对象
        test_package_list = TestPackageListPage(driver)
        # 获取到分享链接
        url = test_package_list.get_share_url(TestCAQ.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)
        # 当前页面打开链接
        share_add.goto(test_url)
        # 点击提交按钮
        share_add.click(share_add.es.submit_btn, timeout=10)
        # 获取数据
        info = data_read["info"]
        # 填写基本信息并提交
        share_add.fill_info(email, info["position"], info["dept"])
 
    def test_answer(self, driver):
        # 创建answer对象
        answer_page = CAQAnswerPage(driver)
        # 开始答题
        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):
        # 创建测试包列表页面的对象
        test_package_list = TestPackageListPage(driver)
        # 删除测试包
        test_package_list.delete_package(TestCAQ.test_package_name)
        # 判断删除是否成功
        try:
            test_package_list.wait_visible(test_package_list.es.operate_success_layer)
            assert True
        except TimeoutException:
            assert False
        # 关闭
        driver.quit()
 
 
if __name__ == '__main__':
    pytest.main(["-s", __file__])