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