yj
2024-07-25 c0dc1bc9676d0bc15355cfd16e9bb92a31518aa8
testcase/test_maq.py
@@ -1,6 +1,7 @@
from datetime import datetime
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import pytest
from selenium import webdriver
@@ -14,7 +15,7 @@
class TestMAQ:
    driver = None
    test_package_name = None
    test_package_name = "MAQ自动测试包-20230720170011"
    @pytest.mark.parametrize('data_read', ["login"], indirect=True)
    def test_login(self, data_read: dict):
@@ -53,7 +54,14 @@
                except:
                    break
        login_page.login(data_read["username"], data_read["password"], data_read["code"])
        # 输入用户名
        login_page.send_keys("username_ipt", data_read["username"])
        # 输入密码
        login_page.oper_elem("password_ipt", data_read["password"])
        # 输入验证码
        login_page.oper_elem("code_ipt", data_read["code"])
        # 点击登录按钮
        login_page.oper_elem("login_btn")
        time.sleep(2)
        assert login_page.is_login_success()
@@ -72,8 +80,13 @@
        home_page.menu_select(data_read["menu"])
        # 创建测试包列表页面的对象
        test_package_list = TestPackageListPage(driver)
        # 切换到测试包列表页面iframe
        test_package_list.oper_elem("this_iframe")
        time.sleep(2)
        # 点击创建按钮
        test_package_list.create_btn()
        test_package_list.oper_elem("create_btn")
        # 切换到添加窗口的iframe
        test_package_list.oper_elem("add_iframe")
        # 获取当前时间
        current_time = datetime.now()
        # 转换为字符串
@@ -86,33 +99,43 @@
        # 获取创建测试包的数据
        create_data = data_read["add"]
        # 填写测试包名称
        test_package_list.testPackageName_input(test_package_name)
        test_package_list.oper_elem("add_testPackageName_input", test_package_name)
        # 填写报告企业名称
        test_package_list.reportCompanyName_input(create_data["company"])
        test_package_list.oper_elem("add_reportCompanyName_input", create_data["company"])
        # 选择测试包类型
        test_package_list.testPackageType_select(create_data["type"])
        test_package_list.oper_elem("add_testPackageType_select", create_data["type"])
        # 点击产品包按钮
        test_package_list.oper_elem("add_prodTree_btn")
        # 切换到prodTree的iframe
        test_package_list.oper_elem("prodTree_iframe")
        # 选择产品包
        test_package_list.prodTree_select(create_data["product"])
        # 输入hr邮箱
        test_package_list.hrReportEmail_input(create_data["hrEmail"])
        # 输入有效期
        test_package_list.invalidTime_input(create_data["invalid"])
        # 选择邀请邮件语言类型
        test_package_list.testTemplateLangType_select(create_data["memberLang"])
        # 选择HR邮件语言类型
        test_package_list.hrTemplateLangType_select(create_data["hrReportLang"])
        # 选择报告模板
        test_package_list.reportTemplate_select(create_data["reportTemplate"])
        # 点击测试者接收报告
        test_package_list.autoSendReport_checkbox()
        # 选择测试者报告邮箱语言类型
        test_package_list.memberReportLangType_select(create_data["memberReportLang"])
        test_package_list.oper_elem("prodTree_option", create_data["product"])
        # 回到上一层iframe
        test_package_list.switch_parent_iframe()
        # 点击确认按钮
        test_package_list.add_confirm()
        time.sleep(2)
        test_package_list.oper_elem("prodTree_confirm_btn")
        # 输入hr邮箱
        test_package_list.oper_elem("add_hrEmail_input", create_data["hrEmail"])
        # 输入有效期并点击以取消日期选择器显示
        test_package_list.oper_elem("add_invalidTime_input", create_data["invalid"])
        test_package_list.oper_elem("add_invalidTime_btn")
        # 选择邀请邮件语言类型
        test_package_list.oper_elem("add_templateLangType_select", create_data["memberLang"])
        # 选择HR邮件语言类型
        test_package_list.oper_elem("add_hrTemplateLangType_select", create_data["hrReportLang"])
        # 选择报告模板
        test_package_list.oper_elem("add_reportTemplateId_select", create_data["reportTemplate"])
        # 点击测试者接收报告
        test_package_list.oper_elem("add_autoSendReport_checkbox")
        # 选择测试者报告邮箱语言类型
        test_package_list.oper_elem("add_memberTemplateLangType_select", create_data["memberReportLang"])
        # 切换到上一层iframe
        test_package_list.switch_parent_iframe()
        # 点击确认按钮
        test_package_list.oper_elem("add_confirm_btn")
        time.sleep(5)
        # 判断是否成功创建
        assert test_package_list.is_create_success(test_package_name)
        time.sleep(5)
    @pytest.mark.parametrize('data_read', ["MAQ"], indirect=True)
    def test_open_url(self, data_read: dict):
@@ -127,9 +150,16 @@
        # 勾选新创建的测试包
        test_package_list.click_package_checkbox(TestMAQ.test_package_name)
        # 点击生成分享链接按钮
        test_package_list.click_share_1_btn()
        test_package_list.oper_elem("share_1_btn")
        # 切换到分享窗口的iframe
        test_package_list.oper_elem("share_iframe")
        # 获取到url
        url = test_package_list.get_share_url()
        url = test_package_list.oper_elem("share_url_text")
        # 切换到上一层iframe
        test_package_list.switch_parent_iframe()
        # 点击关闭按钮
        test_package_list.oper_elem("share_cancel_btn")
        time.sleep(1)
        # 打开新标签页加载url
        test_package_list.open_new_table_to_url(url)
        # 创建分享页面对象
@@ -137,16 +167,24 @@
        # 填写信息提交并获取测试链接
        name = random_string(8)
        email = name + "@gmail.com"
        test_url = share_add.page_default_operation(name, email)
        # 填写邮箱和姓名并提交
        share_add.oper_elem("name_input", name)
        share_add.oper_elem("email_input", email)
        share_add.oper_elem("submit_btn")
        # 获取到测试链接
        test_url = share_add.oper_elem("test_url_text")
        # 当前页面打开链接
        driver.get(test_url)
        # 点击提交按钮
        share_add.submit_btn()
        share_add.oper_elem("submit_btn")
        # 获取数据
        info = data_read["info"]
        # 填写基本信息并提交
        share_add.fill_info(email, info["position"], info["dept"])
        time.sleep(5)
        share_add.oper_elem("fill_email_input", email)
        share_add.oper_elem("fill_position_input", info["position"])
        share_add.oper_elem("fill_dept_input", info["dept"])
        share_add.oper_elem("submit_btn")
        time.sleep(3)
    def test_answer(self):
        # 获取driver
@@ -154,13 +192,11 @@
        # 创建answer对象
        answer_page = MAQAnswerPage(driver)
        # 点击开始测试
        answer_page.start_btn()
        answer_page.oper_elem("start_btn")
        # 开始答题
        flag = answer_page.answer_MAQ()
        flag = answer_page.answer()
        # 答完题关闭当前标签页
        driver.close()
        # 切换到第一个标签页
        answer_page.switch_window(0)
        if flag is not None or not flag:
            assert flag
            return
@@ -170,9 +206,13 @@
        driver = TestMAQ.driver
        # 创建测试包列表页面的对象
        test_package_list = TestPackageListPage(driver)
        # 切换到第一个标签页
        test_package_list.switch_window(0)
        test_package_list.oper_elem("this_iframe")
        # 删除测试包
        test_package_list.delete_package()
        time.sleep(5)
        test_package_list.oper_elem("delete_btn")
        test_package_list.oper_elem("delete_confirm_btn")
        time.sleep(3)
        # 关闭
        driver.quit()