Python Pytest与Playwright结合实现UI自动化测试框架深度解析
文章目录
一、框架介绍
本框架是基于Python+Pytest+Playwright的UI自动化测试框架。
本框架要求使用者对playwright有一定的了解才能上手使用。
二、实现功能
三、框架目录结构
# 框架目录结构
├────.auth/
├────.gitignore
├────config/ 配置文件层,存放整个项目需要用到的配置项
│ ├────__init__.py
│ ├────allure_config/
│ │ ├────http_server.exe 生成的一个http服务,用于放在allure报告压缩包里面,在windows环境下不安装allure也能打开查看报告
│ │ ├────logo.svg 当前部门或者项目logo,用于替换allure报告里面的logo。注意:代码里面无替换,是手动在lib/allure里面替换的
│ │ └────双击打开Allure报告.bat 一个用于在windows环境下不安装allure也能打开查看报告bat文件
│ ├────global_vars.py 全局变量,用于保存测试过程中变量,方便调用
│ ├────path_config.py 项目路径配置文件,注意:目录名称更改,需要更改配置文件
│ └────settings.py 项目配置文件,用于保存一些配置数据
└────utils/ 公共模块,将一些公共函数、方法以及通用操作进行封装
│ ├────__init__.py
│ ├────assertion_utils/ 接口断言的处理
│ │ ├────__init__.py
│ │ ├────assert_control.py
│ │ └────assert_function.py
│ ├────base_utils/ playwright基类,包括UI和API
│ │ ├────__init__.py
│ │ ├────base_page.py 基类,定义项目所需的基础方法,对playwright一些常用的页面进行二次封装,提高项目的代码重用性
│ │ ├────base_request.py 基类,定义项目所需的基础方法,对playwright的接口进行二次封装
│ │ └────request_control.py 请求playwright的接口进行再次封装,包括请求前数据处理,请求时日志记录,请求后断言,数据提取
│ ├────data_utils/ 处理数据的一些方法
│ │ ├────__init__.py
│ │ ├────data_handle.py
│ │ ├────eval_data_handle.py
│ │ ├────extract_data_handle.py
│ │ └────faker_handle.py
│ ├────database_utils/ 数据库处理
│ │ ├────__init__.py
│ │ └────mysql_handle.py
│ ├────files_utils/ 文件处理
│ │ ├────__init__.py
│ │ ├────files_handle.py
│ │ └────yaml_handle.py
│ ├────logger_utils/ 日志处理
│ │ ├────__init__.py
│ │ └────loguru_log.py
│ ├────models.py 模型类
│ ├────notify_utils/ 通知处理
│ │ ├────__init__.py
│ │ ├────dingding_bot.py
│ │ ├────wechat_bot.py
│ │ └────yagmail_bot.py
│ ├────report_utils/ 报告处理
│ │ ├────__init__.py
│ │ ├────allure_handle.py
│ │ ├────get_results_handle.py
│ │ ├────platform_handle.py
│ │ └────
作者:florachy