运行和调试测试
简介
你可以运行单个测试、一组测试或所有测试。可以通过使用 --browser
标志在单个浏览器或多个浏览器上运行测试。默认情况下,测试以无头模式运行,这意味着运行测试时不会打开浏览器窗口,结果会在终端中显示。如果你愿意,可以使用 --headed
CLI 参数在有头模式下运行测试。
你将会学到
运行测试
命令行
要运行你的测试,请使用 pytest
命令。这将在 Chromium 浏览器上默认运行你的测试。测试默认在无头模式下运行,这意味着运行测试时不会打开浏览器窗口,结果会在终端中显示。
pytest
在有头模式下运行测试
要在有头模式下运行测试,请使用 --headed
标志。这将在运行测试时打开一个浏览器窗口,并且一旦完成,浏览器窗口将关闭。
pytest --headed
在不同浏览器上运行测试
要指定你想在哪个浏览器上运行测试,请使用 --browser
标志,后跟浏览器的名称。
pytest --browser webkit
要指定多个浏览器来运行测试,请多次使用 --browser
标志,后跟每个浏览器的名称。
pytest --browser webkit --browser firefox
运行特定测试
要运行单个测试文件,请传入你想要运行的测试文件的名称。
pytest test_login.py
要运行一组测试文件,请传入你想要运行的测试文件的名称。
pytest tests/test_todo_page.py tests/test_landing_page.py
要运行特定测试,请传入你想要运行的测试的函数名称。
pytest -k test_add_a_todo_item
并行运行测试
要并行运行测试,请使用 --numprocesses
标志,后跟你想要运行测试的进程数。我们建议使用逻辑 CPU 核心的一半。
pytest --numprocesses 2
(这假设已安装 pytest-xdist
。更多信息请参见此处。)
关于更多信息,请参阅 Playwright Pytest 使用 或 Pytest 文档中的 通用 CLI 使用。
调试测试
由于 Playwright 在 Python 中运行,你可以使用你喜欢的调试器进行调试,例如使用 Visual Studio Code 中的 Python 扩展。Playwright 配套提供了 Playwright 检查器,允许你逐步执行 Playwright API 调用,查看它们的调试日志,并探索定位器。
要调试所有测试,请运行以下命令。
- Bash
- PowerShell
- Batch
PWDEBUG=1 pytest -s
$env:PWDEBUG=1
pytest -s
set PWDEBUG=1
pytest -s
要调试一个测试文件,请运行命令后跟你想要调试的测试文件的名称。
- Bash
- PowerShell
- Batch
PWDEBUG=1 pytest -s test_example.py
$env:PWDEBUG=1
pytest -s test_example.py
set PWDEBUG=1
pytest -s test_example.py
要调试特定测试,请添加 -k
后跟你想要调试的测试名称。
- Bash
- PowerShell
- Batch
PWDEBUG=1 pytest -s -k test_get_started_link
$env:PWDEBUG=1
pytest -s -k test_get_started_link
set PWDEBUG=1
pytest -s -k test_get_started_link
此命令将打开一个浏览器窗口以及 Playwright 检查器。你可以使用检查器顶部的逐过按钮逐步执行你的测试。或者按下播放按钮从头到尾运行你的测试。一旦测试完成,浏览器窗口将关闭。
在调试过程中,你可以使用选择定位器按钮选择页面上的元素,并查看 Playwright 将用来查找该元素的定位器。你还可以编辑定位器,并看到它在浏览器窗口中实时高亮显示。使用复制定位器按钮将定位器复制到剪贴板,然后将其粘贴到你的测试中。
请查看我们的 调试指南 以了解有关 Playwright 检查器 以及使用 浏览器开发者工具 进行调试的更多信息。