Python使用pytest-playwright的原因分析
作者:田辛 发布时间:2023-12-12 01:22:39
pytest-playwright 是一个 Python 包,它允许您使用 Microsoft 的 Playwright 库在 Python 项目中进行端到端测试。
在这篇博客中,田辛老师将向您介绍 pytest-playwright,演示如何安装它,并举例说明如何在您的 Python 项目中使用它。
1 用playwright能不能不用这个包?
首先田辛老师强调,如果你不想使用 pytest-playwright,你仍然可以在你的 Python 项目中使用 Playwright。只不过需要一些额外的配置。 我们会在下次博客中介绍如何PyUnit+playwright。 下面的代码是一个单纯的playwright的例子
from playwright.sync_api import Playwright, sync_playwright_with_browsers
with sync_playwright_with_browsers() as playwright:
browser = playwright.chromium.launch(headless=False)
page = browser.new_page()
page.goto('https://www.baidu.com')
browser.close()
此代码使用 sync_playwright_with_browsers()
函数启动 Playwright 实例,启动 Chromium 浏览器,导航至 Google 主页,然后关闭浏览器。只不过Python不会识别它是一段自动化测试代码, 只是当成一段普通的Python程序去运行。
2 安装
安装方法其实田辛老师在前两天的文档里面提过,通过pip进行安装:pip install pytest-playwright
3 代码和文档
田辛老师还是希望大家去看原始文档的,所以给出如下链接:
pytest-playwright 的官方 Github 存储库:
https://github.com/pytest-playwright/pytest-playwright 。
在这里您可以找到源代码、文档、问题 * 和与包相关的其他资源。
pytest-playwright 的官方文档托管在 Read the Docs:
https://pytest-playwright.readthedocs.io/en/latest/
该文档包括安装说明、使用示例、配置选项等。
4 示例代码
以下是如何使用 pytest-playwright 测试一个简单网站的示例:
import pytest
from playwright.sync_api import Playwright, sync_playwright
@pytest.fixture(scope='module')
def playwright() -> Playwright:
with sync_playwright() as playwright:
yield playwright
@pytest.fixture(scope='module')
def browser(playwright: Playwright):
browser = playwright.chromium.launch(headless=False)
yield browser
browser.close()
@pytest.fixture(scope='module')
def page(browser):
page = browser.new_page()
yield page
page.close()
def test_baidu_homepage(page):
page.goto('https://www.baidu.com')
assert page.title() == '百度一下,你就知道'
以上的代码使用, 创建一个 Playwright 实例,启动一个 Chromium 浏览器,并创建一个新页面。然后使用 test_baidu_homepage
方法使用 page
fixture 导航到网站主页并检查页面标题。
要使用 pytest-playwright 运行此测试,请将代码保存到名为 test_baidu.py
的文件中,然后从命令行运行以下命令:
pytest test_google.py
另外这个代码中,田辛老师故意用到了yield
的机制, 如果对yield
不熟悉的同学可以尝试阅读之前田老师写的这篇文章:【Python】一篇文章读懂yield基本用法
5 结论
pytest-playwright 是一个强大且易于使用的工具,用于在 Python 中自动化浏览器测试。凭借其直观的语法、丰富的功能集和大量的文档,它是任何希望改进其测试工作流程的人的绝佳选择。田辛老师要提醒的是, playwright的使用不一定非使用pytest-playwright, 明天我们会来看看pyunit怎么使用playwright。 虽然麻烦一点,但是田辛老师想说,作为测试人员提升的一个重要逻辑就是:不要对任何技术产生路径依赖。
来源:https://blog.csdn.net/u013589130/article/details/129291896
猜你喜欢
- Python实现八大排序算法,具体内容如下1、插入排序描述插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个
- 一、说明自己一是想跟上潮流二是习惯于直接干三是没有人可以请教,由于这三点经常搞得要死要活。之前只简单看过没写过Diango,没看过Djang
- php去掉数组的第一个值的两种删除方法:1、使用array_shift()函数删除数组的第一个值,语法“array_sh
- 较基础的SVM,后续会加上多分类以及高斯核,供大家参考。Talk is cheap, show me the codeimport tens
- 回文数字是很有意思的数字,不管从最高位开始念,还是从个位开始念,最终结果都一样,有一种对称美。下面是回文数字的函数判断方式:def is_p
- 本文中介绍的系统优化,主要针对前端和后台这两方面(后台方面主要对SQL语句和数据存储进行了优化),下文中我们将介绍一些优化技巧和经验。技巧:
- 前言本文从代码复用的角度一步一步演示如何从python普通代码进化到面向对象,并通过代码去解释一些面向对象的理论。所以,本文前面的内容都是非
- 今天是边复习边创作博客的第三天,我今年大二,我们专业开的有这门课程,因为喜欢所以更加认真学习,本以为没人看呢,看了后台浏览量让我更加认真创作
- 在python中json分别由列表和字典组成,本文主要介绍python中字典与json相互转换的方法。使用json.dumps可以把字典转成
- 本篇主要将react全家桶的产品非常精炼的提取了核心内容,精华程度堪比精油。各位大人,既然来了,客官您坐,来人,给客官看茶~~redux前言
- 前言大家好!这个系列文章是W3CN 阿捷编写的。是一些制作过程中的心得和经验,希望对大家有点帮助。第一天开始制作符合标准的站点,第一件事情就
- 希望通过本文能够帮助大家顺顺利利通过Python面试,之后还有一篇关于Python Web相关的文章欢迎大家阅读。1、Python中pass
- kelon 问:格式如下:s="地,在要,大,奇功,不知,但是,不示"我想把它split分出來,变成数组來循环,但是不知
- 读取和存储dict()与.json格式文件读取.json格式文件并将数据保存到字典中数据文件:hg.json{"商家名称"
- 如下所示:'''@author: Jacobpc'''import osimport sys
- 如下所示:import cv2import numpy as npbins = np.arange(256).reshape(256,1)d
- 本文实例为大家分享了python计算日期之间的放假日期,供大家参考,具体内容如下代码如下:#encoding=utf-8 print
- 前言这周和大家分享如何用python识别图像里的条码。用到的库可以是zbar。希望西瓜6辛苦码的代码不要被盗了。(zxing的话,我一直没有
- 1、Linux主机重定向 Godaddy的Liunx主机,Godaddy本身已经支持Apache,所以直接创建一个.htaccess文件就可
- 最近学习Python接口测试,对于接口测试完全小白。大概一周的学习成果进行总结。1.接口测试:目前涉及到的只是对简单单一的接口进行参数传递,