基于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
│   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/40821.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux--V4L2应用程序开发(二)获取数据

一、采集数据流程 申请buffer用来放置摄像头数据 ioctl VIDIOC_REQBUFS:申请buffer,APP可以申请很多个buffer,但是驱动程序不一定能申请到 ioctl VIDIOC_QUERYBUF和mmap:查询buffer信息、映射 如果申请到了N个buffer&#xff0c…

Web前端开发——HTML快速入门

HTML:控制网页的结构CSS:控制网页的表现 一、什么是HTML、CSS (1)HTML (HyperText Markup Languaqe:超文本标记语言) 超文本:超越了文本的限制,比普通文本更强大。除了…

Aigtek高压功率放大器主要应用场景是什么

高压功率放大器是一种关键的电子设备,其主要功能是将低电压信号放大到较高电压水平,以满足特定应用的需求。这种类型的放大器在各种领域都发挥着至关重要的作用。安泰电子官网将为大家介绍高压功率放大器的主要应用场景,并介绍其在这些领域中…

关于Web开发的详细介绍

目录 一、什么是Web? 二、Web网站的工作流程和开发模式 (1)简单介绍 (2)工作流程 1、第一步 2、第二步 (3)Web网站的开发模式 1、前后端分离开发模式 ​编辑2、混合开发模式 三、开发W…

数据库设计 物理模型和逻辑模型

在数据库设计中,物理模型和逻辑模型是两个关键阶段,它们分别代表了数据库设计的不同层面和细节。以下是对这两个模型的详细解释及涉及到的内容: 逻辑模型(Logical Data Model, LDM) 定义与概述: 逻辑数据…

智慧矿山:EasyCVR助力矿井视频多业务融合及视频转发服务建设

一、方案背景 随着矿井安全生产要求的不断提高,视频监控、数据传输、通讯联络等业务的需求日益增长。为满足矿井生产管理的多元化需求,提高矿井作业的安全性和效率,TSINGSEE青犀EasyCVR视频汇聚/安防监控综合管理平台,旨在构建一…

一款优秀、亮眼的开源堡垒机

介绍 在运维的日常工作中,登陆服务器操作不可避免,为了更安全的管控服务器,但凡有点规模的公司都会上线堡垒机系统,堡垒机能够做到事前授权、事中监控、事后审计,同时也可以满足等保合规要求。 提到堡垒机&#xff0…

Go语言中的时间与日期处理:time包详解

在Go语言中,time包提供了丰富而强大的功能来处理时间和日期,这对于构建精确计时、定时任务、日期格式化等应用场景至关重要。本文将深入浅出地探讨time包的核心概念、常见问题、易错点及其规避策略,并通过实用代码示例加深理解。 一、时间与…

3D虚拟会议室打破传统会议局限,提供沉浸式会议体验

一、身临其境的虚拟会议体验 1、沉浸感提升参会效果 3D虚拟会议室借助虚拟现实技术为用户创造出一个仿佛置身真实会议场所的感觉。用户可以进入一个虚拟的会议室,感受到空间的深度和互动性。这种身临其境的体验,使得参会者不仅仅是被动地观看屏幕&…

音乐剪辑免费软件有哪些?7个音频剪辑技巧!

音乐剪辑免费软件有很多,但是适合自己或适合剪辑小白的却屈指可数。 音频剪辑软件千千万,如果是没有任何剪辑经验的小白用户,个人建议使用知名度较高的音频剪辑软件。不管是免费还是收费的音频剪辑软件,只要能够解决问题&#xf…

[Mysql] 的基础知识和sql 语句.教你速成(下)——数据库的约束篇

目录 前言 约束 一.我们为什么需要约束 二.常见的约束类型 NOT NULL 约束 UNIQUE 约束 DEFAULT 约束 PRIMARY KEY FOREIGN KEY CHECK约束 原因: 结尾 前言 距离上篇的更新已经快两周了,这个时候大伙都已经考完了吧!现在更新多少有点马后炮,但是没办法呀…

gin框架解决跨域问题

文章目录 前言一、使用github.com/gin-contrib/cors 前言 今天遇到了前后端跨域问题,前后端跨域解决蛮简单的,下面是解决方案 一、使用github.com/gin-contrib/cors go get github.com/gin-contrib/cors在路由的地方 r : gin.Default()corsConfig : c…

Spring源码十:BeanPostProcess

上一篇Spring源码九:BeanFactoryPostProcessor,我们看到ApplicationContext容器通过refresh方法中的postProcessBeanFactory方法和BeanFactoryPostProcessor类提供预留扩展点,他可以在Spring容器的层面对BeanFactroy或其他属性进行修改&#…

科技赋能智慧应急:“数字孪生+无人机”在防汛救灾中的应用

近期,全国多地暴雨持续,“麻辣王子工厂停工”“水上派出所成水上的派出所了”等相关词条冲上热搜,让人们看到了全国各地城市内涝、洪涝带来的严重灾情。暴雨带来的影响可见一斑,潜在的洪水、泥石流、山体滑坡等地质灾害更应提高警…

Keil Map文件分析

以前查看map,基本就是看一下Flash大小、和RAM总大小,或者是debug时确认下 函数编译地址。 最近心血来潮,想用C#做个上位机来解一下这个map文件,所以又回过头来关注下map文件具体格式和细节。 map文件的具体结构: 1、…

MYSQL的简易安装

先下载好安装包 官网:https://www.mysql.com 双击运行进入界面 打开之后将左侧的产品移到右侧 点击使用的产品设置路径 之后一直下一步即可 选择主机类型 同时要记住端口号 设置密码 设置系统服务列表中的服务名称 之后一直下一步就可以了 安装完成记得配置环…

解决前端登录成功之后,往后端发请求携带cookie问题

项目背景: 今天在做伙伴匹配系统: 我现在实现的功能是: 在我登录成功之后,就进入了主页(默认页),在我访问用户页的时候产生的问题 首先说明一下这个Cookie的问题: 我们登录成功…

钽电容、电解电容、陶瓷电容的区别

电容是一种常见的电子元件,在电路中起着多种重要作用,并广泛应用于各种电子设备和系统中。 一、钽电容 1. 基本概述 钽电容,全称为钽电解电容器,是电解电容器的一种。它使用金属钽作为阳极,并在其表面形成一层五氧化…

Echarts折线图 自适应窗口大小

实现效果&#xff1a; 代码&#xff1a; <template><div class"echarts"><div class"select-box"><div v-for"(item,index) in trendList":key"index":class"[period item.id?active:,item]"click&…

2024微信小程序期末大作业-点奶茶微信小程序(后端nodejs-server)(附下载链接)_微信小程序期末大作业百度网盘下载

菜单展示 购物车展示&#xff1a; 提交订单&#xff1a; 支付详情页展示&#xff1a; 订单查看&#xff1a; 查看历史消费&#xff1a; 部分代码展示&#xff1a; <!--pages/home/home.wxml--> <block wx:for"{{listData}}" wx:key"itemlist&qu…