-
Notifications
You must be signed in to change notification settings - Fork 254
Labels
Description
I'm submitting a ...
- bug report
- feature request
- support request => Please do not submit support request here, see note at the top of this template.
What is the current behavior?
When Thead#entrance spawned Thread#node, Thread#node spawned Thread#session, step tree of allure seems incorrect?

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem
from concurrent.futures import ThreadPoolExecutor
import allure
def session_on_node(node_id, session):
with allure.step(f"Session#{session} on node {node_id}"):
pass
def parallel_task_for_specific_node(node_id):
with allure.step(f"Parallel task for node {node_id}"):
with ThreadPoolExecutor() as executor:
for session in range(5):
executor.submit(session_on_node, node_id, session)
executor.shutdown(wait=True)
def test_multithreaded():
with allure.step("Entrance"):
with ThreadPoolExecutor() as executor:
for node_id in range(3):
executor.submit(parallel_task_for_specific_node, node_id)
executor.shutdown(wait=True)
What is the expected behavior?
step tree should be like this?
Thread#entrance
- Thread#node
- Thread#session
- Thread#session
- Thread#session
- Thread#node
- Thread#session
- Thread#session
- Thread#session
What is the motivation / use case for changing the behavior?
There is a service combined of multiple nodes. Every node could handle several sessions from client.
Sometimes, parallel testing is needed: Multi sessions for multi nodes, which means main thread is to spawn threads of different node, thread of a single node is to spawn different threads of multiple session, and finally we collect every step and organize them in a friendly tree.
Please tell us about your environment:
- Allure version: 2.32.0
- Test framework: pytest@7.4.4
- Allure adaptor: allure-pytest@2.13.5