NashTech Insights

Monkey Testing with Selenium

Sujeet Kumar Srivastava
Sujeet Kumar Srivastava
Table of Contents

In software testing, it is crucial to ensure the stability and reliability of web applications. While traditional testing techniques cover many scenarios, they may not always uncover hidden bugs or edge cases. This is where monkey testing comes into play. it involves random and exploratory testing, where the application is bombarded with unpredictable inputs to uncover unexpected behaviour. In this blog post, we will explore how to perform monkey testing using Java and the Selenium WebDriver.

Prerequisites

Make sure you have the following prerequisites in place :

  • Java Installed
  • IntelliJ IDEA IDE or any of your choice
  • Selenium WebDriver Java bindings
  • Web browser drivers (e.g., ChromeDriver, GeckoDriver, etc.)
  • Basic understanding of Java programming and Selenium WebDriver

Step 1: Set Up Your Project

  • Create a new Java project in your preferred IDE.
  • Add the Selenium WebDriver Java bindings to your project’s dependencies.
  • Download the appropriate web browser driver and configure it with your project.

Step 2: Launch the Web Browser

To begin monkey testing, we need to launch the web browser and navigate to the target web page. Let’s create a new Java class called “MonkeyTest” and add the example code:


import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class MonkeyTest {
    public static void main(String[] args) {
        // Setting the path to your chromedriver
        System.setProperty("webdriver.chrome.driver", "Path_to_chromedriver");

        // Launching the Chrome browser
        WebDriver driver = new ChromeDriver();

        // Navigating to your target web page
        driver.get("https://www.nashtechglobal.com");

        // Add your monkey testing code here according to your requirement

        // Close the browser
        driver.quit();
    }
}

Make sure to replace “Path_to_chromedriver_here” with the actual path to the chromedriver executable on your system.

Step 3: Perform Monkey Testing

Now that we have launched the web browser and navigated to the target web page, we can perform monkey testing. it involves randomly interacting with different elements on the web page. Let’s explore a few examples:

Example 1: Clicking on Random Elements


import org.openqa.selenium.WebElement;
import java.util.List;
import java.util.Random;

// ...

// Find all clickable elements on your webpage
List<WebElement> clickableElements = driver.findElements(By.xpath("element_xpath_here"));

// Generate a random index within the range of clickable elements
int randomIndex = new Random().nextInt(clickableElements.size());

// Click on the randomly selected element
clickableElements.get(randomIndex).click();

Example 2: Entering Random Text in Text Fields


import org.openqa.selenium.WebElement;
import java.util.List;
import java.util.Random;

// ...

// Find all text fields on your webpage
List<WebElement> textFields = driver.findElements(By.xpath("element_xpath_here"));

// Generate a random index within the range of text fields
int randomIndex = new Random().nextInt(textFields.size());

// Generate random text
String randomText = generateRandomText();

// Enter the random text in the randomly selected text field
textFields.get(randomIndex).sendKeys(randomText);

Step 4: Run and Observe


After adding your desired monkey testing code, save the changes and run the “MonkeyTest” class. Observe the behaviour of the web application as it encounters random inputs. Monkey testing can help uncover unexpected issues, crashes, or unusual behaviour that traditional methods might not discover.

Conclusion:

Monkey testing is a powerful technique for exploring the robustness of web applications. By randomly interacting with elements, we can identify potential vulnerabilities and edge cases that traditional testing may overlook. In this blog post, we demonstrated how to perform it using Java Selenium. Remember to exercise caution and ensure you are testing in a controlled environment to avoid any unintended consequences.

Sujeet Kumar Srivastava

Sujeet Kumar Srivastava

I am a seasoned automation testing professional having sound knowledge of automation testing methodologies and tools. I have good understanding in designing and implementing test frameworks, creating test plans, and executing automated tests across multiple platforms and devices. I am always charged up for picking up & learning new things. On a personal front, I am fitness enthusiast and loves to play volleyball.

Leave a Comment

Your email address will not be published. Required fields are marked *

Suggested Article

%d bloggers like this: