From 07e0c646e7bc09b358cebcd30d97457e5abf67f9 Mon Sep 17 00:00:00 2001 From: Navin Chandra Date: Mon, 16 Dec 2024 17:53:19 +0530 Subject: [PATCH 1/2] better span name in `TracedCommandExecutor` for tracing --- java/src/org/openqa/selenium/remote/TracedCommandExecutor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/src/org/openqa/selenium/remote/TracedCommandExecutor.java b/java/src/org/openqa/selenium/remote/TracedCommandExecutor.java index a8d0b220ea678..a33d52d79e758 100644 --- a/java/src/org/openqa/selenium/remote/TracedCommandExecutor.java +++ b/java/src/org/openqa/selenium/remote/TracedCommandExecutor.java @@ -37,7 +37,7 @@ public TracedCommandExecutor(CommandExecutor delegate, Tracer tracer) { @Override public Response execute(Command command) throws IOException { - try (Span commandSpan = tracer.getCurrentContext().createSpan("command")) { + try (Span commandSpan = tracer.getCurrentContext().createSpan(command.getName())) { SessionId sessionId = command.getSessionId(); if (sessionId != null) { commandSpan.setAttribute("sessionId", sessionId.toString()); From 0bcbc4e2775d4528d8f8fa501cb35d8460e8b92f Mon Sep 17 00:00:00 2001 From: Navin Chandra Date: Mon, 16 Dec 2024 17:54:05 +0530 Subject: [PATCH 2/2] add test for `TracedCommandExecutor` --- .../remote/TracedCommandExecutorTest.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/java/test/org/openqa/selenium/remote/TracedCommandExecutorTest.java b/java/test/org/openqa/selenium/remote/TracedCommandExecutorTest.java index e747b712092fc..6a7aa226826f4 100644 --- a/java/test/org/openqa/selenium/remote/TracedCommandExecutorTest.java +++ b/java/test/org/openqa/selenium/remote/TracedCommandExecutorTest.java @@ -17,6 +17,7 @@ package org.openqa.selenium.remote; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; @@ -48,7 +49,7 @@ class TracedCommandExecutorTest { public void createMocksAndTracedCommandExecutor() { MockitoAnnotations.initMocks(this); when(tracer.getCurrentContext()).thenReturn(traceContext); - when(traceContext.createSpan("command")).thenReturn(span); + when(traceContext.createSpan(anyString())).thenReturn(span); tracedCommandExecutor = new TracedCommandExecutor(commandExecutor, tracer); } @@ -109,4 +110,18 @@ void canCreateSpanWithCommandName() throws IOException { verify(span, times(1)).close(); verifyNoMoreInteractions(span); } + + @Test + void canCreateSpanWithCommandNameAsSpanName() throws IOException { + SessionId sessionId = new SessionId(UUID.randomUUID()); + Command command = new Command(sessionId, "findElement"); + + tracedCommandExecutor.execute(command); + + verify(traceContext).createSpan("findElement"); + verify(span).setAttribute("sessionId", sessionId.toString()); + verify(span).setAttribute("command", "findElement"); + verify(span).close(); + verifyNoMoreInteractions(span); + } }