问题标签 [pytest-xdist]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
400 浏览

selenium - Selenium Grid 和 pytest-xdist 插件有什么区别?

我是并行测试的新手,我想知道它们之间有什么区别。

显然,pytest-xdist 不需要 Selenium Grid 来运行。它可以单独与 Selenium 一起使用。

有没有人有任何线索或资源可以让我了解差异?

谢谢和亲切的问候。

0 投票
0 回答
33 浏览

plugins - Pytest-xdist 无法识别作为脚本执行的自定义 pytest 插件

我有以下模块,它充当执行 pytest 的脚本。

当我在没有 pytest-xdist 的情况下正常运行脚本时,该脚本按预期工作。

但是当我使用 pytest-xdist 时,它无法识别基于自定义插件的标记和 collection_modifications。

在正常运行以及使用 xdist 时附加输出

正常执行时输出

使用 xdist 执行时的输出

如何让 pytest-xdist 在并行执行测试时运行自定义插件?

0 投票
0 回答
155 浏览

python - 通过 pytest xdist 在 python selenium 中并行运行时测试失败,但按顺序运行良好

当我运行以下代码时

pytest .\tests\GET\test_setupFunc.py

它工作得很好,即 setup(my_fixture) 函数运行一次然后 test_one 和 test_two

如果我使用pytest-xdist并行运行它

pytest .\tests\GET\test_setupFunc.py -n=2

它失败

我认为 my_fixture 正在被两个测试调用,因为我已经设置了scope="session"应该共享的函数。

一旦该功能成功运行,我希望并行性应该得到触发

========== 简短的测试摘要信息 =========

错误测试\GET\test_setupFunc.py::test_one - selenium.common.exceptions.WebDriverException:消息:未知错误:无法删除旧的 devtools 端口文件。也许...

如果您打算运行它,请在添加代码步骤中用您的系统用户名替换您的用户名

'''

另请注意,如果我删除selenium相关步骤并仅保留打印语句,它可以正常工作

预期结果

  1. setup 方法被调用一次 2 个方法应该被调用一次 setup 成功运行一次

pytest-parallel不支持 python 3.9 但也尝试过

0 投票
1 回答
206 浏览

python - 当远程模块具有 pytest_collection_modifyitems() 时,Pytest-xdist 抛出 AssertionError

我有一个需要由 xdist 执行的远程脚本,我通过钩子 pytest_xdist_getremotemodule() 给出它,我正在执行一些集合更改,这些更改对所有节点都是通过 pytest_collection_modifyitems() 通用的,但是在 runtestloop 期间,工作人员失败了断言错误

测试脚本有一个简单的断言语句 1==1

当我从远程脚本中删除 pytest_collection_modifyitems() 函数时,程序可以正常工作。有人可以帮我理解这个问题的原因吗?

0 投票
1 回答
72 浏览

pytest - 多线程 Pytest

我想在 PyTest 中创建一个测试,它将同时打开两个 Chrome 和 Firefox 浏览器,并使用有效和无效的输入集一个接一个地测试两个测试用例。我应该如何实现它?

感谢您的高级帮助。

0 投票
0 回答
140 浏览

python-3.x - pytest 找不到数据库和表

我正在尝试通过使用来加速测试运行时pytest-xdist,以前我使用 pytest、pytest-django 来运行测试,

安装后pytest-xdist,我面临的一个问题是大多数测试都失败,并显示关系不存在的消息

pytest -n auto accounts/tests

例如 psycopg2.errors.UndefinedTable: relation "auth_user" does not exist

我猜有错误说数据库不存在: django.db.utils.OperationalError: FATAL: database "test_dev" does not exist

但有趣的是一些测试正在通过:(

0 投票
0 回答
45 浏览

pytest - 使用 pytest 运行并行测试套件,而无需在每个测试套件中重新排序测试

我正在尝试一次执行多个 pytest 套件,即使用 pytest 使用 pytest-xdist 包并行执行。

例如,我有两个测试套件

  1. test_one.py
  2. test_two.py

pytest test_one.py test_two.py -n 2

但是,这是在 test_one.py 和 test_two.py 中随机重新排序我的测试并运行测试。有什么方法可以使两个测试套件并行运行,但在每个套件内按顺序进行测试?

0 投票
0 回答
72 浏览

python - 如何指定pytest中每个测试使用的核心数?

我正在使用 pytest-xdist 来并行化我的测试。我正在使用的机器有 12 个内核。我的一半测试在每个测试中使用 2 个进程,而另一半测试只使用一个进程(正常的单进程)。

目前我将 addopts = -n6 添加到我的 pytest.init 文件中,因为某些测试实际上需要两个进程(6 * 2 = 12,或我机器上的所有可用内核)。我想知道是否可以指定每个测试使用的核心数量?

例如,所有使用 2 个进程的测试我都会这样标记它,并且 pytest-xdist 理想情况下会知道从它的工作池中为这些测试占用 2 个进程。然后我可以更改我的 pytest.ini 以包含 addopts = -n12?我无法通过阅读文档来弄清楚如何做到这一点,也许这是不可能的。

非常感谢!

0 投票
0 回答
101 浏览

pytest - 在 pytest-html 中,有没有办法组合 2 个不同 pytest 运行的 html 报告?

基本上我有一个场景,我需要分别运行一组并行 pytest 和另一组串行 pytest。每个都会生成单独的 pytest-html 报告。但我正在寻找结合生成的报告的解决方案。例如: py.test -n auto -m "not serial" --dist=loadfile --html=report1.html py.test -n auto -m "serial" --dist=loadfile --html=report2.html

有没有办法结合 report1.html 和 report2.html 并生成单个 html 报告?

0 投票
0 回答
25 浏览

python - 如何使用 pytest 夹具中的实例化页面对象

我是 python 新手并使用 pytest 构建我的 UI 测试框架。我想在调用类的方法之前用用户(不固定)登录一次。我将驱动程序实例化为 -

conftest.py

现在在我的测试文件中,我定义了一个带有 scope= class 的夹具,并像这样实例化了我的所有页面-

现在,由于我没有从设置装置返回页面对象,因此我无法直接在我的函数中访问它们。有什么方法可以定义我的类设置,以便它使用 conftest 夹具中定义的浏览器实例;让我登录并初始化我的所有页面以供其中的方法使用。

非常感谢您对此的任何帮助。