Performance metrics help us see how fast a web page loads and works. Using DevTools lets us check these numbers automatically in tests.
0
0
Performance metrics via DevTools in Selenium Java
Introduction
You want to check if your website loads quickly for users.
You need to find slow parts of a page to improve them.
You want to compare performance before and after changes.
You want to make sure your site meets speed goals.
You want to catch performance problems early in testing.
Syntax
Selenium Java
DevTools devTools = ((HasDevTools) driver).getDevTools(); devTools.createSession(); // Enable performance monitoring devTools.send(Performance.enable(Optional.empty())); // Get performance metrics List<Metric> metrics = devTools.send(Performance.getMetrics());
You need Selenium 4+ and a browser that supports DevTools (like Chrome).
Performance metrics include things like page load time and CPU usage.
Examples
This example starts a DevTools session, enables performance monitoring, and prints all metrics.
Selenium Java
DevTools devTools = ((HasDevTools) driver).getDevTools(); devTools.createSession(); devTools.send(Performance.enable(Optional.empty())); List<Metric> metrics = devTools.send(Performance.getMetrics()); for (Metric metric : metrics) { System.out.println(metric.getName() + ": " + metric.getValue()); }
This example filters and prints only the TaskDuration metric, which shows the total time spent executing tasks.
Selenium Java
DevTools devTools = ((HasDevTools) driver).getDevTools(); devTools.createSession(); devTools.send(Performance.enable(Optional.empty())); List<Metric> metrics = devTools.send(Performance.getMetrics()); // Find and print only the "TaskDuration" metric metrics.stream() .filter(m -> m.getName().equals("TaskDuration")) .forEach(m -> System.out.println("TaskDuration: " + m.getValue()));
Sample Program
This test opens a Chrome browser, starts DevTools performance monitoring, loads example.com, then prints performance metrics like page load times.
Selenium Java
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.devtools.DevTools; import org.openqa.selenium.devtools.v114.performance.Performance; import org.openqa.selenium.devtools.v114.performance.model.Metric; import java.util.List; import java.util.Optional; public class PerformanceMetricsTest { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); WebDriver driver = new ChromeDriver(); DevTools devTools = ((ChromeDriver) driver).getDevTools(); devTools.createSession(); // Enable performance monitoring devTools.send(Performance.enable(Optional.empty())); driver.get("https://example.com"); // Get performance metrics List<Metric> metrics = devTools.send(Performance.getMetrics()); // Print all metrics for (Metric metric : metrics) { System.out.println(metric.getName() + ": " + metric.getValue()); } driver.quit(); } }
OutputSuccess
Important Notes
Make sure to use the correct ChromeDriver version matching your Chrome browser.
Performance metrics names and values may vary by browser version.
Always quit the driver to close the browser and free resources.
Summary
DevTools lets Selenium get performance data from the browser.
Enable performance monitoring before loading the page.
Use metrics to understand and improve page speed.