当前位置: 首页 > news >正文

杨浦做网站公司做视频网站视频短片

杨浦做网站公司,做视频网站视频短片,合肥网站设计建设公司,wordpress 摘要 格式这是初版的 pom web 测试框架#xff0c;目录如下同时部分代码也放在下面#xff0c;详细代码可前往 github 查看#xff0c;欢迎大家给出宝贵意见。 |--base | base_page.py#xff08;封装方法#xff09; | |--config | allure_config.py#xff08;测试报告配…这是初版的 pom web 测试框架目录如下同时部分代码也放在下面详细代码可前往 github 查看欢迎大家给出宝贵意见。 |--base | base_page.py封装方法 | |--config | allure_config.py测试报告配置 | |--data | code验证码 | user.yaml用户目录 | |--logs | log日志文件 | log.py日志模块 | |--page_object | login_page.py登陆页面元素及流程 | |--reports测试报告存放处 | allure-page | report | |--screenshot | err_screenhot错误截图 | screenshot.py截图模块 | |--test_case | conftestfixture配置 | test_login.py登录测试用例 | |--utils | util公共方法类似于验证码识别等 | web_driver.pydriver配置 | |--run.py测试框架运行模块 base封装方法 class BasePage:def __init__(self, driver):self.driver driverself.logger Logs.get_logger()self.scr Screenshot(driver)打开urldef open_url(self, url: str):self.driver.maximize_window()self.logger.info(最大化窗口)self.driver.get(url)self.logger.info(f打开网址{url})# self.driver.implicitly_wait(80)元素定位元组形态返回web_element对象def locator(self, loc: tuple) - WebElement:try:# 显示等待直到元素可见并可交互return self.display_wait(loc)except NoSuchElementException:self.logger.error(f元素{loc}未找到)self.scr.screenshot(loc)raiseexcept TimeoutException:self.logger.error(f元素{loc}未在规定时间内变为可见)self.scr.screenshot(loc)raise config测试报告配置 # 用户数据路径 user_data_path os.path.join(os.path.dirname(os.path.dirname(__file__)), data, user.yaml)# 测试用例路径 def case_path(path):return os.path.join(os.path.dirname(path), test_cases)# 测试报告路径 def report_path(path):return os.path.join(os.path.dirname(path), reports)# 执行 pytest 命令生成 Allure 报告配置 pytest_command [pytest,test_login.py, # 登陆测试test_home.py, # 首页测试test_search.py, # 搜索测试--alluredir../reports/report,--clean-alluredir] # 执行 Allure 命令生成并打开报告配置 allure_command [allure, generate, report, --clean] # 打开allure报告 allure_open [allure, open, allure-report]logs日志 class Logs:LOG_DIRECTORY os.path.join(os.path.dirname(__file__), log_file)LOG_FORMAT [%(asctime)s] %(levelname)s %(name)s(%(lineno)d): %(message)sLOG_DATE_FORMAT %Y-%m-%d %H:%M:%SLOG_LEVEL logging.INFOBACKUP_COUNT 0_logger Nonedef __init_subclass__(cls, **kwargs):super().__init_subclass__(**kwargs)cls.ensure_log_directory()classmethoddef ensure_log_directory(cls):if not os.path.exists(cls.LOG_DIRECTORY):os.makedirs(cls.LOG_DIRECTORY)classmethoddef get_logger(cls):if cls._logger is None:try:cls.ensure_log_directory()log_path os.path.join(cls.LOG_DIRECTORY, f{time.strftime(%Y%m%d)}.log)file_handler TimedRotatingFileHandler(log_path, whenmidnight, interval1,encodingutf8, backupCountcls.BACKUP_COUNT)formatter logging.Formatter(cls.LOG_FORMAT, datefmtcls.LOG_DATE_FORMAT)file_handler.setFormatter(formatter)cls._logger logging.getLogger(cls.__name__)cls._logger.setLevel(cls.LOG_LEVEL)cls._logger.addHandler(file_handler) except Exception as e:raise RuntimeError(f无法初始化类的记录器 {cls.__name__}: {e})return cls._logger page_object页面对象 class LoginPage(BasePage):# 网址_url http://baidu.com# 账号_account (id, account)# 密码_password (id, PASSWORD)# 登录_login_button (id, login_button)def correct_login(self, username, password):with allure.step(打开登陆页面):self.open_url(self._url)with allure.step(f输入账号:{username}):self.input(self._account, username)with allure.step(f输入密码:{password}):self.input(self._password, password)with allure.step(点击登陆):self.click(self._login_button) screenshot截图 class Screenshot:def __init__(self, driver):self._driver driverself._screenshot_path os.path.join(os.path.dirname(__file__), err_screenshot)self._ensure_screenshot_directory()self._logger Logs.get_logger()def _ensure_screenshot_directory(self):try:if not os.path.exists(self._screenshot_path):os.makedirs(self._screenshot_path)except Exception as e:self._logger.error(f创建屏幕截图目录时出错: {e})def screenshot(self, error_name):date_time datetime.now().strftime(%Y-%m-%d_%H.%M.%S)screenshot_name f{error_name}_{date_time}.pngscreenshot_path os.path.join(self._screenshot_path, screenshot_name)try:self._driver.get_screenshot_as_file(screenshot_path)with open(screenshot_path, rb) as image_file:image_data image_file.read()allure.attach(image_data, namescreenshot_name, attachment_typeallure.attachment_type.PNG)self._logger.info(f截图成功: {screenshot_path})except FileNotFoundError as e:self._logger.error(f保存截图时文件路径不存在: {e})except Exception as e:self._logger.error(f截取屏幕快照并保存时出错: {type(e).__name__}: {e}) test_case测试用例 conftest pytest.fixture(scopeclass) def driver():with allure.step(webdriver初始化):driver_instance init_driver()try:yield driver_instancefinally:with allure.step(退出浏览器):driver_instance.quit() test_login.py allure.epic(xxx系统) allure.feature(首页登陆页面) class TestLogin:pytest.fixture(autouseTrue)def setup(self, driver):self._lp LoginPage(driver)allure.title(正确账号登录)allure.description(验证正确账号可以登录首页)allure.severity(allure.severity_level.BLOCKER)pytest.mark.parametrize(login_account, yaml.safe_load(open(user_data_path))[login_data])def test_login(self, driver, login_account):try:self._lp.correct_login(login_account[CorrectAccount], login_account[CorrectPassword])except Exception as e:screenshot_taker Screenshot(driver)screenshot_taker.screenshot(f登陆出错)raise eunitls unil 未用到公共方法暂未配置 web_driver def init_driver():options Options()# 可选配置项options.page_load_strategy eager # 页面加载策略默认为normal可选eager和none。# options.add_argument(--headless) #无头模式options.add_argument(--disable-gpu) # 禁用gpuoptions.add_argument(--user-agentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0) # 用户代理# options.add_argument(--incognito) # 隐身模式options.add_argument(--disable-infobars) # 禁用信息栏浏览器正在被自动化工具控制options.add_argument(--start-maximized) # 窗口最大化options.add_argument(--ignore-certificate-errors) # 忽略证书错误options.add_argument(--no-sandbox) # 禁用沙箱模式# 设置浏览器首选项prefs {download.prompt_for_download: False, # 下载文件时是否提示保存对话框safebrowsing.enabled: True, # 是否启用安全浏览功能credentials_enable_service: False, # 是否启用保存密码提示profile.password_manager_enabled: False # 是否启用密码管理功能}options.add_experimental_option(prefs, prefs)driver webdriver.Chrome(optionsoptions)return driver run运行文件 # 初始化日志配置 logger Logs.get_logger()# 路径配置 BASE_DIR os.path.dirname(__file__) TEST_CASE_DIR os.path.join(BASE_DIR, test_cases) REPORT_DIR os.path.join(BASE_DIR, reports)def main():try:# 执行 pytest 命令生成 Allure 报告logger.info(正在运行 pytest 以生成 Allure 报告...)subprocess.run(pytest_command, cwdTEST_CASE_DIR, shellTrue)# 执行 Allure 命令生成报告logger.info(正在生成 Allure 报告...)subprocess.run(allure_command, cwdREPORT_DIR, shellTrue)# 打开 Allure 报告logger.info(打开Allure报告...)subprocess.run(allure_open, cwdREPORT_DIR, shellTrue)except subprocess.CalledProcessError as e:logger.error(f发生错误: {e})exit(1)if __name__ __main__:main()
http://www.dnsts.com.cn/news/197810.html

相关文章:

  • 简单的英文网站模板html5 个人网站模板
  • 有一个可以做任务的网站三亚做网站公司
  • asp图片网站源码做公司网站开发的公司
  • 网站筹备建设情况新闻门户网站制作
  • 展览网站源码网站建设与制作教案
  • 一定要建设好网站才能备案吗消防器材网站建设背景
  • 做网站常用什么软件摄影网站建设方案
  • 网站建设 风险wordpress 5.0.2 中文
  • 网站如何备案 附备案流程图新站点seo联系方式
  • 高端网站建设 骆电商设计工资
  • 网站举报中心官网仿新浪首页网站模板
  • 中国建材建设网站wordpress游客发帖插件
  • 做阿里国际网站要收费吗淘宝网站都是怎么做的吗
  • 本地网站搭建工具wordpress 投票插件
  • 网站商城注意事项网页设计师招聘条件
  • 自助网站建设平台专业的公司网站开发
  • 艺术签名设计免费版seo建站公司推荐
  • 聊城网站制作工作室查询网站服务器地址
  • 广州建站外包wp 企业网站模板
  • 西安网站建设网网站搭建培训学校
  • 客栈网站建设代码高端网站设计
  • 雷神代刷网站推广wordpress做推送
  • 罗湖商城网站建设哪家公司便宜点营销的四种方式
  • 免费部署网站中国企业500强2020排名
  • 企业网站管理源码仿58网站怎么做
  • 青岛做网站优化哪家好宜昌市住房和城乡建设局网站
  • 网站开发最好企业销售网站建设
  • 具有品牌的做网站直播app开发需求
  • 网站后台无编辑器更改wordpress后台登录图标
  • 搜狗网站推广u钙网在线制作logo