Python Pytest与Playwright结合实现UI自动化测试框架深度解析

文章目录

  • 一、框架介绍
  • 二、实现功能
  • 三、框架目录结构
  • 四、依赖库
  • 五、安装教程
  • 六、如何创建用例
  • 1. 修改配置文件 `config.settings.py`
  • 2.删除框架中的示例用例数据
  • 3. 编写测试用例
  • 七、运行自动化测试
  • 方式一:使用pipenv管理虚拟环境
  • 1. 激活已存在的虚拟环境
  • 2. 运行
  • 方式二:依赖包安装在本机
  • 八 、初始化项目可能遇到的问题
  • Playwright Documentation
  • pytest-playwright Documentation
  • 联系我
  • 所有我的项目
  • 博客与社区
  • 加入项目说明
  • 一、框架介绍

    本框架是基于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
    │    │    └────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

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python Pytest与Playwright结合实现UI自动化测试框架深度解析

    发表回复