基于Python+Pytest+Playwright的UI自动化测试框架

发布于:2024-07-08 ⋅ 阅读:(69) ⋅ 点赞:(0)

一、框架介绍

本框架是基于Python+Pytest+Playwright的UI自动化测试框架。

本框架要求使用者对playwright有一定的了解才能上手使用。

二、实现功能

  • 支持通过命令行指定浏览器,选择需要运行的浏览器。
  • 建立接口池,处理用例依赖数据
  • 支持通过命令行指定运行环境,实现环境一键切换,解决多环境相互影响问题。
  • 采用pageobject模式,管理页面元素以及操作,提高项目的代码重用性
  • 采用loguru管理日志,可以输出更为优雅,简洁的日志
  • 钉钉、企业微信通知: 支持多种通知场景,执行成功之后,可选择发送钉钉、或者企业微信、邮箱通知
  • 使用pipenv管理虚拟环境和依赖文件,可以使用pipenv install一键安装依赖包。

三、框架目录结构

# 框架目录结构
├────.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
│   

网站公告

今日签到

点亮在社区的每一天
去签到