import sys import os from 预定配套件.Base.app_base import find_element_with_retry # 获取当前脚本的绝对路径 current_dir = os.path.dirname(os.path.abspath(__file__)) # 构建预定系统的绝对路径 预定配套件_path = os.path.abspath(os.path.join(current_dir, '..', '..', '..','..')) # 添加路径 sys.path.append(预定配套件_path) # 导入模块 from 预定配套件.Base.base import * from 预定配套件.Base.app_base import * # 获取当前脚本所在的目录 current_dir = os.path.dirname(os.path.abspath(__file__)) # 构建XLSX文件的绝对路径 xlsx_file_path = os.path.join(current_dir, '..', '..', '..', '测试数据', '门口屏5.0测试用例.xlsx') class DoorScreenDeployment: tags = ['门口屏首页功能'] """ 执行指令是: 1.cd .\预定配套件\中控门口屏\ 2.hytest --report_title 门口屏首页功能测试报告 --report_url_prefix http://nat.ubainsyun.com:31133 --tag 门口屏首页功能 """ ddt_cases = read_xlsx_data(xlsx_file_path, sheet_name='第二主界面',case_type="标准版") # 测试开始前调用clear_columns_in_xlsx函数,将测试用例中的测试结果和日志截图置空 clear_columns_in_xlsx(xlsx_file_path, sheet_name='第二主界面', columns_to_clear=['测试结果', '测试频次', '日志截图']) def teststeps(self): """ 执行测试步骤函数,主要用于执行读取的测试用例并进行会议预定界面操作 """ # 从全局存储中获取webdriver对象 wd = GSTORE['wd'] name = self.name sleep(1) # 初始化应用驱动,连接到指定的设备和应用 app_drive = app_setup_driver("Android", "11", "DoorScreen", "com.ubains.local.gviewer", "com.ubains.ub.gview.SplashActivity", "192.168.1.128:5555") app_drive.implicitly_wait(60) # 设置缺省等待时间 # 使用显式等待来等待元素出现 logging.info("等待首页加载...") for step in self.para: # 赋值页面类型page page_type = step.get('page') # 赋值元素定位类型,并将字符串转为Enum类型 locator_type = app_get_by_enum(step.get('locator_type')) # 赋值元素值 locator_value = step.get('locator_value') # 赋值元素类型,例如:click点击、input输入框等 element_type = step.get('element_type') # 赋值元素值,例如输入框的输入值 element_value = step.get('element_value') # 赋值预期结果 expented_result = step.get('expented_result') # 赋值灯带时间 sleep_time = step.get('sleep_time') # 判断页面功能类型 if page_type == "Deployment": if element_type == "input": INFO(f"输入框输入定位类型:{element_type}") # 调用app输入函数 input_text_with_retry(app_drive,locator_type, locator_value,element_value) sleep(sleep_time) elif element_type == "click": # 调用app点击函数 click_element_with_retry(app_drive, locator_type, locator_value) sleep(sleep_time) elif element_type == "getText": # 调用app获取文本函数 element_text = get_text_with_retry(app_drive, locator_type, locator_value) INFO(f"APP获取到的文本信息:{element_text}") sleep(sleep_time)