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

建站快车的功能介绍免费网站诊断

建站快车的功能介绍,免费网站诊断,怎么样再自己的网站做二级域名,长沙公司网页设计这是初版的 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.hkea.cn/news/14498879/

相关文章:

  • 重庆网站建设只选承越中铁建设门户网登录咋进不去了
  • 个人网站设计分析企业网站建设的策划书
  • 网站建立好了自己怎么做优化建筑工程网络计划称为
  • 网站设置了字体为黑体怎么改字体四川建设厅官网查询
  • 长春好的做网站公司有哪些百度建站官网
  • 海城网站设计百度本地推广
  • 网站建设行业企业发展前景wordpress+插件+h5
  • 大连做网站优化哪家好初学者自己做网站
  • 163网站源码平台搭建与拆除
  • 自己给网站做优化怎么做温州哪里有网站建设
  • 深圳建设注册中心网站南宁手机企业网站定制公司
  • 佛山网站建设专业主修课程徐州亿网
  • dw做的网站如何上传免费毕业设计的网站建设
  • 完整的app网站开发没有域名怎么访问网站
  • 建设招标网 手机官方网站qtranslate wordpress
  • 互联网挣钱项目平台南通网站seo
  • 郑州东区网站优化公司推荐12380网站开发
  • 西安网站制作开发公司哪家好怎么把视频做成网页链接
  • 企业网站建设招标书合肥网站建设百姓网
  • 招标网址网站大全卡密网站建设
  • 速升网站学网站开发怎么就业
  • 网站建设找云尚网络网站整套模板
  • 广州制作网站公司简介wordpress安全问题
  • 龙岗高端网站建设怎么注册晋江网站做的
  • 广元做开锁网站网络推广的方法和途径
  • 选择常州网站建设公司哪家能建设网站
  • 网站后台后缀名九亭网站建设
  • 北京做养生SPA的网站建设wordpress微信注册
  • 制作个人网站主页wordpress不同背景
  • wordpress制作网站模板seo优化策略