What is Cross-Browser Testing?
Cross-browser testing is a technique to test web applications across multiple browsers (example: Chrome, Firefox, Edge) to ensure that they work correctly and consistently for all users.
Why Cross-Browser Testing with TestNG?
TestNG allows parallel test execution across different browsers using:
@Parameters
annotationtestng.xml
for browser configurationWebDriver for browser launching
Steps to Perform Cross-Browser Testing:
- Add Selenium and TestNG dependencies (via Maven or manually).
- Write a test class with
@Parameters("browser")
. - Use
testng.xml
to define browser-specific configurations. - Run tests in parallel across multiple browsers (optional).
1. Add Maven Dependencies
<!-- pom.xml --> <dependencies> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.9.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.20.0</version> </dependency> </dependencies>
2. Java Code for Cross-Browser Test
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.edge.EdgeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.annotations.*; public class CrossBrowserTest { WebDriver driver; @Parameters("browser") @BeforeMethod public void setup(String browserName) { if (browserName.equalsIgnoreCase("chrome")) { driver = new ChromeDriver(); } else if (browserName.equalsIgnoreCase("firefox")) { driver = new FirefoxDriver(); } else if (browserName.equalsIgnoreCase("edge")) { driver = new EdgeDriver(); } else { throw new IllegalArgumentException("Browser not supported: " + browserName); } driver.manage().window().maximize(); } @Test public void openGoogle() { driver.get("https://www.google.com"); System.out.println("Title: " + driver.getTitle()); } @AfterMethod public void tearDown() { if (driver != null) { driver.quit(); } } }
3.
testng.xml
File for Cross-Browser Execution<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" > <suite name="CrossBrowserSuite" parallel="tests" thread-count="3"> <test name="ChromeTest"> <parameter name="browser" value="chrome" /> <classes> <class name="CrossBrowserTest"/> </classes> </test> <test name="FirefoxTest"> <parameter name="browser" value="firefox" /> <classes> <class name="CrossBrowserTest"/> </classes> </test> <test name="EdgeTest"> <parameter name="browser" value="edge" /> <classes> <class name="CrossBrowserTest"/> </classes> </test> </suite>
Execution:
Run the testng.xml
file via:
Eclipse/IDEA: Right-click > Run As > TestNG Suite
Command Line:
mvn test
(if configured)
No comments:
Post a Comment