Playwright + Pytest 自动化测试应用

本文介绍了如何安装pytest-playwright插件,使用Playwright进行浏览器自动化测试,包括在不同浏览器和模式下运行测试,编写和调试测试用例,以及跟踪测试过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pytest-playwright 安装与简单使用

先附上官方文档链接:nstallation | Playwright Python

安装 Pytest 插件

pip install pytest-playwright

安装所需的浏览器:

playwright install

怎么运行测试用例

创建一个名称为 test_baidu.py的文件,输入如下内容

from playwright.sync_api import Page, expect
def test_example(page: Page) -> None:
    """
    测试示例函数,用于模拟在百度上搜索“实在智能百度百科”,并点击相关链接打开新的页面。
    参数:
    - page: Page对象,表示当前页面。
    返回值:
    - None
    """
    # 打开百度首页
    page.goto("https://www.baidu.com/")
    # 在搜索框中点击
    page.locator("#kw").click()
    # 在搜索框中输入关键词
    page.locator("#kw").fill("实在智能百度百科")
    # 按下回车键
    page.locator("#kw").press("Enter")
    # 断点
    page.pause()
    # 等待弹出窗口并获取信息
    with page.expect_popup() as page1_info:
        # 点击第一个链接
        page.get_by_role("link", name="杭州实在智能科技有限公司(超自动化解决方案公司... - 百度百科").click()
    # 获取第一个弹出窗口
    page1 = page1_info.value
    # 等待第二个弹出窗口并获取信息
    with page1.expect_popup() as page2_info:
        # 点击第二个链接
        page1.get_by_role("link", name="恐龙百科").click()
    # 获取第二个弹出窗口
    page2 = page2_info.value
    # 等待第三个弹出窗口并获取信息
    with page2.expect_popup() as page3_info:
        # 点击第三个链接
        page2.get_by_role("link", name="恐龙灭绝的秘密——五大灭绝事件").click()
    # 获取第三个弹出窗口
    page3 = page3_info.value

运行测试用例

默认情况下,会使用chromium内核运行测试用例,默认为无头模式,

在有头模式下运行测试

若要在有标题模式下运行测试,请使用该标志。这将在运行测试时打开一个浏览器窗口,完成后,浏览器窗口将关闭。

$ pytest --headed PlayW/test_baidu1.py 

在不同的浏览器上运行测试

若要指定要运行测试的浏览器,请使用后跟浏览器名称的标志。

若要指定要运行测试的多个浏览器,请多次使用该标志,后跟每个浏览器的名称

$ pytest --no-header PlayW/test_baidu1.py  --browser webkit --browser chromium

运行特定测试

若要运行单个测试文件,请传入要运行的测试文件的名称。

pytest  PlayW/test_baidu1.py

若要运行一组测试文件,请传入要运行的测试文件的名称。

pytest tests/test_todo_page.py tests/test_landing_page.py

若要运行特定测试,请传入要运行的测试的函数名称。

pytest -k test_add_a_todo_item

批量调试(不加指定目录会运行当前目录下的所有测试案例)

PWDEBUG=1 pytest -s 指定目录

若要调试一个测试文件,请运行命令,后跟要调试的测试文件的名称。

PWDEBUG=1 pytest -s  PlayW/test_baidu1.py

若要调试特定测试,请添加,后跟要调试的测试的名称。-k

PWDEBUG=1 pytest -s -k test_get_started_link

此命令将打开浏览器窗口以及 Playwright 检查器。您可以使用检查器顶部的“单步执行”按钮来逐步完成测试。或者按播放按钮从头到尾运行测试。测试完成后,浏览器窗口将关闭。

调试时,可以使用“选取定位器”按钮选择页面上的元素,并查看 Playwright 用于查找该元素的定位器。您还可以编辑定位器,并在浏览器窗口中实时高亮显示定位器。使用“复制定位器”按钮将定位器复制到剪贴板,然后将其粘贴到测试中。

记录跟踪

可以通过使用标志运行测试来记录跟踪

pytest --tracing on

跟踪选项包括:

on:每个测试的记录跟踪,这将记录跟踪并将其放入目录中命名的文件中
off:不记录跟踪。(默认)
retain-on-failure:记录每个测试的跟踪,但从成功的测试运行中删除所有跟踪。

生成记录之后,会自动在当前目录下新建一个test-results目录

打开跟踪

可以使用 Playwright CLI 或在 trace.playwright.dev 上的浏览器中打开保存的跟踪。请确保将文件所在位置的完整路径添加到此位置。

$ playwright show-trace test-results/playw-test-baidu1-py-test-example-chromium/trace.zip

通过单击每个操作或使用时间线悬停来查看测试的跟踪,并查看操作前后的页面状态。在测试的每个步骤中检查日志、源和网络。跟踪查看器创建一个 DOM 快照,以便可以与它完全交互、打开开发工具等。

更多pytest插件请参考 Pytest Plugin Reference | Playwright Python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值