Retry ChromeDriver startup in Selenium tests#8284
Conversation
Co-authored-by: NachoEchevarria <[email protected]>
|
I can only run on private repositories. |
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (8284) and master. ✅ No regressions detected - check the details below Full Metrics ComparisonFakeDbCommand
HttpMessageHandler
Comparison explanationExecution-time benchmarks measure the whole time it takes to execute a program, and are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are highlighted in **red**. The following thresholds were used for comparing the execution times:
Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard. Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph). Duration chartsFakeDbCommand (.NET Framework 4.8)gantt
title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8284) - mean (74ms) : 72, 77
master - mean (75ms) : 73, 77
section Bailout
This PR (8284) - mean (78ms) : 76, 80
master - mean (79ms) : 77, 81
section CallTarget+Inlining+NGEN
This PR (8284) - mean (1,092ms) : 1038, 1147
master - mean (1,092ms) : 1049, 1134
FakeDbCommand (.NET Core 3.1)gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8284) - mean (116ms) : 112, 120
master - mean (117ms) : 114, 120
section Bailout
This PR (8284) - mean (117ms) : 115, 120
master - mean (118ms) : 115, 120
section CallTarget+Inlining+NGEN
This PR (8284) - mean (785ms) : 721, 849
master - mean (774ms) : 716, 832
FakeDbCommand (.NET 6)gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8284) - mean (103ms) : 100, 106
master - mean (103ms) : 99, 106
section Bailout
This PR (8284) - mean (104ms) : 102, 107
master - mean (103ms) : 101, 106
section CallTarget+Inlining+NGEN
This PR (8284) - mean (764ms) : 713, 815
master - mean (752ms) : 687, 818
FakeDbCommand (.NET 8)gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8284) - mean (102ms) : 99, 105
master - mean (102ms) : 98, 106
section Bailout
This PR (8284) - mean (103ms) : 101, 105
master - mean (103ms) : 101, 105
section CallTarget+Inlining+NGEN
This PR (8284) - mean (683ms) : 662, 704
master - mean (680ms) : 655, 704
HttpMessageHandler (.NET Framework 4.8)gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8284) - mean (194ms) : 190, 198
master - mean (193ms) : 187, 200
section Bailout
This PR (8284) - mean (197ms) : 194, 200
master - mean (196ms) : 192, 201
section CallTarget+Inlining+NGEN
This PR (8284) - mean (1,151ms) : 1098, 1203
master - mean (1,163ms) : 1103, 1222
HttpMessageHandler (.NET Core 3.1)gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8284) - mean (278ms) : 269, 286
master - mean (278ms) : 271, 284
section Bailout
This PR (8284) - mean (278ms) : 273, 284
master - mean (278ms) : 273, 282
section CallTarget+Inlining+NGEN
This PR (8284) - mean (943ms) : 911, 975
master - mean (936ms) : 896, 977
HttpMessageHandler (.NET 6)gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8284) - mean (273ms) : 266, 280
master - mean (269ms) : 264, 274
section Bailout
This PR (8284) - mean (272ms) : 266, 277
master - mean (269ms) : 264, 274
section CallTarget+Inlining+NGEN
This PR (8284) - mean (938ms) : 903, 974
master - mean (934ms) : 906, 963
HttpMessageHandler (.NET 8)gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8284) - mean (269ms) : 262, 275
master - mean (270ms) : 265, 276
section Bailout
This PR (8284) - mean (269ms) : 263, 274
master - mean (270ms) : 264, 276
section CallTarget+Inlining+NGEN
This PR (8284) - mean (833ms) : 810, 855
master - mean (830ms) : 809, 852
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BenchmarksBenchmark execution time: 2026-03-10 14:13:51 Comparing candidate commit 9eeec4d in PR branch Found 9 performance improvements and 7 performance regressions! Performance is the same for 162 metrics, 14 unstable metrics. scenario:Benchmarks.Trace.ActivityBenchmark.StartStopWithChild netcoreapp3.1
scenario:Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces net6.0
scenario:Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces netcoreapp3.1
scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody net6.0
scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody netcoreapp3.1
scenario:Benchmarks.Trace.AspNetCoreBenchmark.SendRequest netcoreapp3.1
scenario:Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces net472
scenario:Benchmarks.Trace.CharSliceBenchmark.OriginalCharSlice net6.0
scenario:Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery net6.0
scenario:Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery netcoreapp3.1
scenario:Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch net472
scenario:Benchmarks.Trace.NLogBenchmark.EnrichedLog net6.0
scenario:Benchmarks.Trace.SingleSpanAspNetCoreBenchmark.SingleSpanAspNetCore netcoreapp3.1
scenario:Benchmarks.Trace.SpanBenchmark.StartFinishSpan netcoreapp3.1
|
andrewlock
left a comment
There was a problem hiding this comment.
Worth a try, thanks! Though I think the description doesn't entirely make sense - there were no retries before, and now there are! 😄
You are right! Corrected! Thanks! |
Summary of changes
Improve resilience of the Selenium CI integration path against transient Chrome startup crashes by retrying the ChromeDriver initialization.
Reason for change
We observed failures that appear to conflict when tests start close together in CI. A longer pause between ChromeDriver startup retries reduces pressure on shared CI resources and gives Chrome more time to recover between attempts.
Implementation details
InvalidOperationExceptionandWebDriverException) are retried.Test coverage
Other details
PR by Bits
View session in Datadog
Comment @DataDog to request changes