pytest-playwright 插件的使用
引言
在自动化测试领域,Playwright 是一个强大的工具,它支持 Chromium、Firefox 和 WebKit 三大浏览器引擎。Playwright 提供了与 Pytest 集成的插件,使得编写端到端测试变得更加简单和高效。本文将介绍如何使用 Pytest Playwright 插件来编写和运行自动化测试。
pytest-playwright 插件简介
Playwright 的 Pytest 插件允许开发者通过 Pytest 命令行接口(CLI)来启动和控制 Playwright 的浏览器实例。这使得测试过程更加灵活,并且可以轻松地集成到现有的 Pytest 测试框架中。
安装和配置
可以通过以下命令安装:
pip install pytest-playwright
安装内置浏览器
playwright install
使用 Pytest CLI 运行测试
使用 Pytest CLI 运行测试非常简单。只需在命令行中输入以下命令:
pytest --browser webkit --headed
这条命令会启动 WebKit 浏览器,并以有头模式(headed mode)运行测试。
自动化 CLI 参数配置
为了简化测试命令,可以在 pytest.ini 文件中自动添加常用的 CLI 参数:
# pytest.ini 文件内容
[pytest]
# 使用 Firefox 浏览器并开启 UI
addopts = --headed --browser firefox
CLI 参数详解
CLI 参数允许你定制测试的运行方式。以下是一些常用的参数:
--headed: 以有头模式运行测试(默认为无头模式 headless)。--browser: 指定运行测试的浏览器,可以是chromium、firefox或webkit。可以多次指定以测试不同的浏览器(默认为chromium)。--browser-channel: 指定要使用的浏览器通道。--slowmo: 减慢 Playwright 操作的速度,单位为毫秒。这在调试时非常有用(默认为0)。--device: 指定要模拟的设备。--output: 测试产生的工件(如截图、视频等)的目录(默认为test-results)。--tracing: 是否为每个测试记录跟踪信息。选项有on、off或retain-on-failure(默认为off)。--video: 是否为每个测试录制视频。选项有on、off或retain-on-failure(默认为off)。--screenshot: 是否在每个测试后自动捕获屏幕截图。选项有on、off或only-on-failure(默认为off)。--full-page-screenshot: 是否在失败时捕获全页面截图。默认情况下,只捕获视口截图。需要启用--screenshot参数(默认为off)。
代码示例
下面是一个简单的测试示例,使用 Pytest Playwright 插件来测试一个网页的标题:
# test_example.py
import pytest
from playwright.sync_api import Page, expect@pytest.mark.parametrize("browser_type", ["chromium", "firefox", "webkit"])
def test_page_title(browser_type, browser):page = browser.new_page()page.goto("https://example.com")expect(page.title()).to_be("Example Domain")
在这个示例中,我们使用 pytest.mark.parametrize 装饰器来为不同的浏览器类型运行相同的测试。测试检查 “https://example.com” 的页面标题是否为 “Example Domain”。
以下是 CLI 参数及其使用示例:
–headed
运行测试时显示浏览器 UI。
pytest --headed
–browser
指定测试使用的浏览器类型。
pytest --browser chromium
pytest --browser firefox
pytest --browser webkit
–browser-channel
指定浏览器的版本通道。
pytest --browser-channel xxx
–slowmo
减慢 Playwright 操作的速度,方便观察测试过程。
pytest --slowmo 500
–device
模拟特定设备。
pytest --device "iPhone 6"
–output
指定测试产生的工件(如截图、视频等)的目录。
pytest --output works
–tracing
为每个测试记录跟踪信息。
pytest --tracing on
pytest --tracing retain-on-failure
–video
为每个测试录制视频。
pytest --video on
pytest --video retain-on-failure
–screenshot
在每个测试后自动捕获屏幕截图。
pytest --screenshot on
pytest --screenshot only-on-failure
–full-page-screenshot
在失败时捕获全页面截图。
pytest --screenshot on --full-page-screenshot on
结语
pytest-playwright 插件提供了丰富的 CLI 参数,可以帮助你定制测试环境,提高测试的可读性和可维护性。希望本文能够帮助你在自动化测试的道路上更进一步。
相关文章:
pytest-playwright 插件的使用
引言 在自动化测试领域,Playwright 是一个强大的工具,它支持 Chromium、Firefox 和 WebKit 三大浏览器引擎。Playwright 提供了与 Pytest 集成的插件,使得编写端到端测试变得更加简单和高效。本文将介绍如何使用 Pytest Playwright 插件来编…...
基于springboot实现智慧校园之家长子系统项目【项目源码】计算机毕业设计
基于springboot实现智慧校园之家长子系统演示 SpringBoot框架介绍 本课题程序开发使用到的框架技术,英文名称缩写是SpringBoot,在JavaWeb开发中使用的流行框架有SSH、SpringBoot、SpringMVC等,作为一个课题程序采用SSH框架也可以,…...
云WAF的安全审计功能
云WAF(Cloud Web Application Firewall)是一种部署在云端的专业网络安全解决方案,它为Web应用程序提供强力的保护,通过检测和阻止恶意流量、攻击和漏洞,确保Web应用程序的安全性和可用性。在安全审计方面,云…...
第十七章 创建Web客户端 - 其他调整
文章目录 第十七章 创建Web客户端 - 其他调整其他调整使用生成的 Web 客户端类示例 1:使用使用包装消息的客户端示例 2:使用使用未包装消息的客户端 第十七章 创建Web客户端 - 其他调整 其他调整 如果 WSDL 未指定 Web 服务的位置,则 SOAP …...
学习java的日子 Day52 多表联合查询,DCL,数据类型,约束,索引,视图
Day52 1.DML-多表联合查询(重要) 1.1 一对一情况 略 1.2 一对多情况 当需要查询多个表中的字段时,就可以使用表连接来实现。表联接分为内连接和外连接 内连接:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结 外连接:…...
计算机视觉(CV)的教程、相关项目
计算机视觉(CV)是一个广泛而深入的领域,其教程和项目众多。以下是针对计算机视觉(CV)的教程和相关项目的一个清晰概述: 教程 入门教程: OpenCV入门:OpenCV是一个开源的计算机视觉库,提供了大量用于图像和视频处理的函数。可以通过OpenCV的官方文档或在线教程来学习其…...
mysql in 逗号分隔_数据库字段是逗号分隔的查询(FIND_IN_SET(str,strlist)方法的使用)
使用函数FIND_IN_SET(str,strlist)--(推荐) 函数介绍:返回在strlist中str字符串通过“,”分隔成列表后所在的位置(索引),如 SELECT FIND_IN_SET("c", "a,b,c,d,e"); 返回3(索引从1开始) 有了这个方法再回到之前的sql语句可以变成如下: select name,bra…...
【Python】 将日期转换为 datetime 对象在 Python 中
基本原理 在 Python 中,处理日期和时间的库是 datetime,它提供了广泛的功能来处理日期和时间。datetime 模块中有一个 datetime 类,它可以用来表示日期和时间。有时,我们可能会遇到需要将日期字符串转换为 datetime 对象的情况&a…...
dpdk-19.11 arm64 环境适配 Mellanox CX4 网卡
环境信息 cpu: arm64 架构 dpdk 版本:19.11 glibc 版本:2.17 网卡型号: Mellanox CX4 网卡,详细 pci 信息如下: 02:00.0 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx] 02:00.1 Ether…...
1141. 查询近30天活跃用户数
1141. 查询近30天活跃用户数 题目链接:1141. 查询近30天活跃用户数 代码如下: # Write your MySQL query statement below select activity_date as day,count(distinct user_id) as active_users from Activity where activity_date between 2019-06-…...
11_JavaWeb监听器
文章目录 监听器1.监听器的分类2.application域监听器案例 监听器 概念:后端要发生一些事情的时候,自动触发一些代码的执行; 1.监听器的分类 web中定义八个监听器接口作为监听器的规范,这八个接口按照不同的标准可以形成不同的分类 按监听的…...
jmeter常用的断言
包括(Contains):响应内容包括需要匹配的内容即代表响应成功,支持正则表达式 匹配(Matches):响应内容要完全匹配需要匹配的内容即代表响应成功,大小写不敏感,支持正则表达…...
Opencv Python图像处理笔记二:图像变换、卷积、形态学变换
文章目录 前言一、几何变换1.1 缩放1.2 平移1.3 旋转1.4 翻转1.5 仿射1.6 透视 二、低通滤波2.1 均值滤波2.2 高斯滤波2.3 中值滤波2.4 双边滤波2.5 自定义滤波 三、高通滤波3.1 Sobel3.2 Scharr3.3 Laplacian3.4 Canny 四、图像金字塔4.1 高斯金字塔4.2 拉普拉斯金字塔 五、形…...
使用若依框架RuoYi前后端分离版+运行+自动生成页面进行导入进行开发+工具(完整版)
若依后台预览 摘要: 随着前后端分离开发模式的流行,越来越多的开发者开始将项目的前端和后端分离开发,以提高开发效率和项目的灵活性。若依框架作为一款优秀的开源后台管理系统,提供了强大的权限管理和代码生成功能,非常适合前后端分离开发。 一、若依框架介绍 若依框架…...
开源博客项目Blog .NET Core源码学习(29:App.Hosting项目结构分析-17)
本文学习并分析App.Hosting项目中后台管理页面的按钮管理页面。 按钮管理页面用于显示、新建、编辑、删除页面按钮数据,以便配置后台管理页面中每个页面的工具栏、操作栏、数据列中的按钮的事件及响应url。按钮管理页面附带一新建及编辑页面,以支撑新…...
2021 hnust 湖科大 计组课设 包含multisim14连线文件,报告,指导书
2021 hnust 湖科大 计组课设 包含multisim14连线文件,报告,指导书 描述 hnust计组课设要用到的东西都在里面了 下载链接 https://pan.baidu.com/s/1tHooJmhkrwX47JCqsg379g?pwd1111...
CHATGPT升级plus(已有账号前提下)
注册wildcard(虚拟卡) 注册号账号后先进行充值,充值后选择CHATGPT一键升级按照他的流程来即可 Wildcard网址:Wildcard跳转注册 填写邀请码充值时少两美金合计14¥ 邀请码:OL3QXTRH...
通过血清拉曼光谱进行COVID-19的高效初步筛查
通过血清拉曼光谱进行COVID-19的高效初步筛查 原创 小王搬运工 时序课堂 2024-06-04 20:04 四川 论文地址:https://analyticalsciencejournals.onlinelibrary.wiley.com/doi/full/10.1002/jrs.6080 论文源码:无 期刊:JOURNAL OF RAMAN SPE…...
Java 性能调优与监控工具详解
在Java开发中,性能调优和监控是确保应用程序高效、稳定运行的关键环节。本文将详细介绍Java性能调优的基本原则和常用的监控工具,并通过代码示例帮助读者理解如何进行实际操作。 一、性能调优的基本原则 在开始调优之前,了解以下基本原则是…...
LeetCode 1633, 122, 239
目录 1633. 各赛事的用户注册率题目链接表要求知识点思路代码 122. 买卖股票的最佳时机 II题目链接标签思路代码 239. 滑动窗口最大值题目链接标签思路代码 1633. 各赛事的用户注册率 题目链接 1633. 各赛事的用户注册率 表 表Users有字段user_id和user_name。表Register有…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...
