diff --git a/test/int/conftest.py b/test/int/conftest.py
index 247ad01ef90a4e15647eedcb013d5d03af57293d..f78ee4af6bb49c2ff28861ca858a9f46016598b3 100644
--- a/test/int/conftest.py
+++ b/test/int/conftest.py
@@ -23,13 +23,13 @@ from tarantool.error import (  # type: ignore
 # A constant represents invalid id of raft.
 # pub const INVALID_ID: u64 = 0;
 INVALID_RAFT_ID = 0
-RE_XDIST_WORKER_ID = re.compile(r"^gw(\d+)$")
 
 
 def eprint(*args, **kwargs):
     print(*args, file=sys.stderr, **kwargs)
 
 
+@pytest.fixture(scope="session")
 def xdist_worker_number(worker_id: str) -> int:
     """
     Identify xdist worker by an integer instead of a string.
@@ -40,9 +40,8 @@ def xdist_worker_number(worker_id: str) -> int:
     if worker_id == "master":
         return 0
 
-    match = RE_XDIST_WORKER_ID.match(worker_id)
-    if not match:
-        raise ValueError(worker_id)
+    match = re.fullmatch(r"gw(\d+)", worker_id)
+    assert match, f"unexpected worker id: {worker_id}"
 
     return int(match.group(1))
 
@@ -403,8 +402,8 @@ def binary_path(compile) -> str:
 
 
 @pytest.fixture
-def cluster(binary_path, tmpdir, worker_id) -> Generator[Cluster, None, None]:
-    n = xdist_worker_number(worker_id)
+def cluster(binary_path, tmpdir, xdist_worker_number) -> Generator[Cluster, None, None]:
+    n = xdist_worker_number
     assert isinstance(n, int)
     assert n >= 0
 
diff --git a/test/int/test_basics.py b/test/int/test_basics.py
index 182476176cff13e9e4ed2c7b633adb4659ac1497..e870f779cd7d27e2482cc708e9126844a9d989b1 100644
--- a/test/int/test_basics.py
+++ b/test/int/test_basics.py
@@ -5,7 +5,6 @@ import pytest
 import signal
 
 from conftest import (
-    xdist_worker_number,
     Instance,
     TarantoolError,
     ReturnError,
@@ -13,23 +12,6 @@ from conftest import (
 )
 
 
-def test_xdist_worker_number():
-    assert xdist_worker_number("master") == 0
-    assert xdist_worker_number("gw0") == 0
-    assert xdist_worker_number("gw1") == 1
-    assert xdist_worker_number("gw007") == 7
-    assert xdist_worker_number("gw1024") == 1024
-
-    with pytest.raises(ValueError, match=r"gw"):
-        assert xdist_worker_number("gw")
-
-    with pytest.raises(ValueError, match=r"xgw8x"):
-        assert xdist_worker_number("xgw8x")
-
-    with pytest.raises(ValueError, match=r"wtf"):
-        assert xdist_worker_number("wtf")
-
-
 def test_call_normalization(instance: Instance):
     assert instance.call("tostring", 1) == "1"
     assert instance.call("dostring", "return") is None