Close Menu
    DevStackTipsDevStackTips
    • Home
    • News & Updates
      1. Tech & Work
      2. View All

      Full-Stack Techies vs Toptal: Which Is Better for React.js Outsourcing?

      July 3, 2025

      The AI productivity paradox in software engineering: Balancing efficiency and human skill retention

      July 2, 2025

      The impact of gray work on software development

      July 2, 2025

      CSS Intelligence: Speculating On The Future Of A Smarter Language

      July 2, 2025

      Your Roku has secret menus and screens – here’s how to unlock them

      July 3, 2025

      Add Paramount+, STARZ, and more to your Prime Video account for $0.99 a month – here’s how

      July 3, 2025

      My new favorite keychain accessory gives me 2TB of SSD storage instantly

      July 3, 2025

      HP’s latest OmniBook finally sold me on the 2-in-1 form factor (and it’s on sale)

      July 3, 2025
    • Development
      1. Algorithms & Data Structures
      2. Artificial Intelligence
      3. Back-End Development
      4. Databases
      5. Front-End Development
      6. Libraries & Frameworks
      7. Machine Learning
      8. Security
      9. Software Engineering
      10. Tools & IDEs
      11. Web Design
      12. Web Development
      13. Web Security
      14. Programming Languages
        • PHP
        • JavaScript
      Featured

      Simplifying Stream Handling with Laravel’s resource Method

      July 3, 2025
      Recent

      Simplifying Stream Handling with Laravel’s resource Method

      July 3, 2025

      Intelligent Parsing and Formatting of Names in PHP Applications

      July 3, 2025

      This Week in Laravel: Cursor Rules, Nightwatch Review, and Race Conditions

      July 3, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured

      Microsoft confirms Windows 11 KB5060829 issues, but you can safely ignore it

      July 3, 2025
      Recent

      Microsoft confirms Windows 11 KB5060829 issues, but you can safely ignore it

      July 3, 2025

      Hash Calculator – calculates around 50 cryptographic hashes of strings and files

      July 3, 2025

      Rilasciato Thunderbird 140 ESR: Un’attenzione alle esigenze aziendali

      July 3, 2025
    • Learning Resources
      • Books
      • Cheatsheets
      • Tutorials & Guides
    Home»Operating Systems»New Calendar app for Windows 11 is here, but not for everyone

    New Calendar app for Windows 11 is here, but not for everyone

    May 17, 2025

    Microsoft has introduced a new Calendar app designed to help Windows 11 users stay on top of their day directly from the taskbar. The app is part of the Microsoft 365 Companion suite. So, the new Calendar app sits with the likes of People and File Search. The main aim is to make everyday tasks […]

    Source: Read More 

    windows
    Facebook Twitter Reddit Email Copy Link
    Previous ArticleBitrix24 Review: How Good is the All-in-One CRM?
    Next Article Microsoft may have pulled the plug on the Surface Laptop Studio 2

    Related Posts

    Operating Systems

    Microsoft confirms Windows 11 KB5060829 issues, but you can safely ignore it

    July 3, 2025
    Linux

    Hash Calculator – calculates around 50 cryptographic hashes of strings and files

    July 3, 2025
    Leave A Reply Cancel Reply

    For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

    Continue Reading

    Rilasciata Linux Lite 7.4: Aggiornamenti e Miglioramenti per il Desktop Leggero

    Linux

    Cyber Brief 25-06 – May 2025

    Security

    Distribution Release: Oracle Linux 9.6

    News & Updates

    Ivanti Fixes RCE and Auth Bypass Vulnerabilities in Endpoint Manager Mobile

    Development

    Highlights

    Development

    Data-Driven Testing with Selenium WebDriver

    June 19, 2025

     
    Data-driven testing is a robust testing methodology that focuses on testing the functionality of an application using multiple sets of data. Instead of hardcoding input values and expected results, this approach separates test logic from the test data, enhancing reusability and maintainability. Selenium, being a popular automation tool, supports data-driven testing seamlessly when integrated with testing frameworks like TestNG or JUnit.
    In this blog, we’ll delve into the concept of data-driven testing, explore its benefits, and demonstrate how to implement it using Selenium with detailed coding examples.

    What is Data-Driven Testing?
    Data-driven testing involves executing test scripts multiple times with different sets of input data. The test data is typically stored in external sources such as:

    Excel files

    CSV files

    Databases

    JSON or XML files

    This approach is particularly useful for validating applications where the same functionality needs to be tested with various input combinations.

    Benefits of Data-Driven Testing

    Reusability: Test scripts are reusable for different data sets.

    Maintainability: Test logic is separated from test data, making maintenance easier.

    Scalability: Allows extensive test coverage with diverse data.

    Efficiency: Reduces redundancy in writing test scripts.

    Tools Required

    Selenium WebDriver: For browser automation.

    Apache POI: To read/write data from Excel files.

    TestNG/JUnit: For test execution and data provider functionality.

    Setting Up Your Project
    Add Dependencies
    Include the following dependencies in your pom.xml if you’re using Maven:<dependencies>
    <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.10.0</version>
    </dependency>
    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.2.3</version>
    </dependency>
    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.3</version>
    </dependency>
    <dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>7.8.0</version>
    </dependency>
    </dependencies>

    Code Example: Data-Driven Testing Using Excel and TestNG
    Step 1: Create the Test Data
    Create an Excel file named TestData.xlsx with the following columns:

    Username
    Password

    user1
    pass1

    user2
    pass2

    Save this file in the project directory.
    Step 2: Utility Class to Read Excel Data
    Create a utility class ExcelUtils.java:import java.io.FileInputStream;
    import java.io.IOException;
    import org.apache.poi.ss.usermodel.*;

    public class ExcelUtils {
    private static Workbook workbook;
    private static Sheet sheet;

    public static void loadExcel(String filePath) throws IOException {
    FileInputStream fis = new FileInputStream(filePath);
    workbook = WorkbookFactory.create(fis);
    }

    public static String getCellData(int row, int column) {
    sheet = workbook.getSheetAt(0);
    Row rowData = sheet.getRow(row);
    Cell cell = rowData.getCell(column);
    return cell.toString();
    }

    public static int getRowCount() {
    return sheet.getLastRowNum();
    }
    }
    Step 3: Test Class with Data Provider
    Create a test class LoginTest.java:import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.testng.annotations.*;

    public class LoginTest {

    WebDriver driver;

    @BeforeClass
    public void setup() {
    System.setProperty(“webdriver.chrome.driver”, “path_to_chromedriver”);
    driver = new ChromeDriver();
    driver.get(“https://example.com/login”);
    }

    @DataProvider(name = “loginData”)
    public Object[][] loginData() throws Exception {
    ExcelUtils.loadExcel(“TestData.xlsx”);
    int rowCount = ExcelUtils.getRowCount();
    Object[][] data = new Object[rowCount][2];

    for (int i = 1; i <= rowCount; i++) {
    data[i – 1][0] = ExcelUtils.getCellData(i, 0);
    data[i – 1][1] = ExcelUtils.getCellData(i, 1);
    }
    return data;
    }

    @Test(dataProvider = “loginData”)
    public void testLogin(String username, String password) {
    WebElement usernameField = driver.findElement(By.id(“username”));
    WebElement passwordField = driver.findElement(By.id(“password”));
    WebElement loginButton = driver.findElement(By.id(“login”));

    usernameField.sendKeys(username);
    passwordField.sendKeys(password);
    loginButton.click();

    // Add assertions here to verify login success or failure
    }

    @AfterClass
    public void teardown() {
    driver.quit();
    }
    }

    Best Practices for Data-Driven Testing

    Use External Data: Store test data in external files to reduce script changes.

    Parameterize Test Cases: Avoid hardcoding data in test scripts.

    Error Handling: Implement robust error handling for file operations.

    Optimize Performance: Load test data only once if possible.

    Clear Test Data: Ensure the test environment is reset before each run.

    Advantages of Data-Driven Testing with Selenium

    Flexibility: Easily test multiple scenarios by changing input data.

    Enhanced Coverage: Test edge cases by providing varied data sets.

    Reduced Redundancy: Write fewer scripts for multiple test cases.

    Conclusion
    Data-driven testing is a vital strategy for efficient and thorough test automation. By combining Selenium with tools like Apache POI and TestNG, you can create scalable and maintainable test suites that cover a wide range of scenarios. Implement this approach to enhance your testing process and ensure high-quality software delivery.

    Keywords: Data-Driven Testing, Selenium, TestNG, Apache POI, Automation Testing, Excel Integration, Test Automation Framework.

    Ming-Lite-Uni: An Open-Source AI Framework Designed to Unify Text and Vision through an Autoregressive Multimodal Structure

    May 9, 2025

    PyQSO – contact logging tool for amateur radio operators

    June 12, 2025

    So, You Want to Give Up CSS Pre- and Post-Processors…

    April 17, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.