file_full_path 3.3 KB
def teststeps(self):
    """
    执行测试步骤函数,主要用于执行读取的测试用例并进行会议模板模块功能测试操作
    """
    # 从全局存储中获取webdriver对象
    wd = GSTORE['wd']
    # 先清空Excel文件中的测试结果和日志截图
    clear_columns_in_xlsx(xlsx_file_path, "会议审批", ["测试结果", "日志截图"])
    # 读取Excel文件中的测试用例数据
    ddt_cases = read_xlsx_data(xlsx_file_path, "会议审批")
    # 遍历 ddt_cases 并获取每一个 JSON 对象
    for case in ddt_cases:
        # 为每个测试用例添加一个 name 字段
        case_name = case.get('case_name', f"Case_{ddt_cases.index(case) + 1}")
        case['name'] = case_name

        # 创建审批会议
        meeting_message("审批会议室", "普通会议", "审批测试会议","长安大学", wd)
        for step in case:
            print(f"当前步骤: {step}")
            # 先赋值
            locator_type = get_by_enum(case.get('locator_type'))
            locator_value = case.get('locator_value')
            element_type = case.get('element_type')
            element_value = case.get('element_value')
            expented_result = case.get('expented_result')

            # 判断页面功能类型
            if case.get("page") == "ApprovalInitiate":

                if element_type == "input":
                    safe_send_keys((locator_type, locator_value), element_value, wd)
                    sleep(1)

                elif element_type == "click":
                    safe_click((locator_type, locator_value), wd)
                    sleep(2)

                elif element_type == "getTips":
                    notify_text = get_notify_text(wd, (locator_type, locator_value), "Message_Template", "Template_Edit", "长安审批测试")
                    INFO(f"提示信息为:{notify_text}")
                    CHECK_POINT("编辑测试判断是否正确", expented_result in notify_text)
                    SELENIUM_LOG_SCREEN(wd, "50")

                elif element_type == "function":
                    print(f"这是element_value的值:{element_value}")
                    # 退出登录,并调用用户登录函数
                    safe_click((By.XPATH, "//img[@title='退出登录']"), wd)
                    sleep(1)
                    wd.refresh()
                    user_login(element_value[0],element_value[1])
                    sleep(2)
                    # 调用审批会议状态设置函数
                    approval_status_control("审批测试会议", element_value[2], wd)
                    sleep(1)
                    # 退出登录
                    safe_click((By.XPATH, "//img[@title='退出登录']"), wd)
                    wd.refresh()
                    # 登录与退出操作频繁,到登录页后存在一个缓存界面,可以点击退出按钮
                    quit_element = wd.find_element(By.XPATH, "//div[@class='operat']//span//img")
                    if quit_element != "":
                        quit_element.click()
                    # 调用用户登录函数,登录普通用户
                    user_login("admin@PT","Ubains@4321")
                    # 进入会议审批模块
                    safe_click((By.XPATH, "//span[contains(text(),'会议审批')]"), wd)
                    sleep(1)