Real World Example

Cross-Browser Matrix for a Travel Site

A travel booking site (MakeMyTrip or an airline portal) must work on Chrome, Edge, Firefox and Safari. The team keeps one <test> block per browser and runs them in parallel on a cloud grid; inside each block, methods run in parallel too.

Example

testng-crossbrowser.xml

<suite name="Booking Cross Browser" parallel="tests" thread-count="4">
  <test name="Chrome" parallel="methods" thread-count="3">
    <parameter name="browser" value="chrome"/>
    <classes><class name="com.travel.tests.FlightBookingTest"/></classes>
  </test>
  <test name="Edge" parallel="methods" thread-count="3">
    <parameter name="browser" value="edge"/>
    <classes><class name="com.travel.tests.FlightBookingTest"/></classes>
  </test>
  <test name="Firefox" parallel="methods" thread-count="3">
    <parameter name="browser" value="firefox"/>
    <classes><class name="com.travel.tests.FlightBookingTest"/></classes>
  </test>
  <test name="Safari" parallel="methods" thread-count="3">
    <parameter name="browser" value="safari"/>
    <classes><class name="com.travel.tests.FlightBookingTest"/></classes>
  </test>
</suite>

Example output

===============================================
Booking Cross Browser
Total tests run: 32, Passes: 31, Failures: 1, Skips: 0
===============================================
FAILED: Safari > FlightBookingTest.selectReturnDate
org.openqa.selenium.ElementClickInterceptedException: Element <button class="day">...</button> is not clickable at point (412, 618). Other element would receive the click: <div class="cookie-banner">

What the Team Learned

  • Twelve parallel sessions finished the 32 tests in 6 minutes instead of 70.
  • The Safari-only failure was a real bug: the cookie banner covered the calendar only on Safari.
  • They run the full matrix nightly and only Chrome on every pull request to save grid minutes.