Real World Example

Checking Analytics Events on a Video Platform

Streaming and e-commerce companies (Netflix, Hotstar, Amazon) lose money if analytics events stop firing after a release. A Selenium test can listen to network traffic and assert that the right event was sent when the user presses Play, without any backend access.

List<String> analyticsCalls = new CopyOnWriteArrayList<>();

try (NetworkInterceptor interceptor = new NetworkInterceptor(driver,
        (Filter) next -> req -> {
            if (req.getUri().contains("/collect")) {
                analyticsCalls.add(Contents.string(req));      // record the payload
            }
            return next.execute(req);                          // let every request through
        })) {

    driver.get("https://stream.example.com/watch/kgf-chapter-2");
    driver.findElement(By.cssSelector("button.play")).click();
    new WebDriverWait(driver, Duration.ofSeconds(10))
            .until(d -> analyticsCalls.stream().anyMatch(c -> c.contains("\"event\":\"play_start\"")));
}
System.out.println("Events: " + analyticsCalls.size());

Example

mvn test -Dtest=PlaybackAnalyticsTest

Example output

Events: 3
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 8.214 s
[INFO] BUILD SUCCESS

Takeaways

  • The test verifies behaviour users never see but the business depends on.
  • A Filter passes requests through and only observes; a Route replaces responses.
  • Keep such tests few and Chromium-only if they rely on CDP; prefer BiDi features as they become available for all browsers.