top of page

Welcome
to NumpyNinja Blogs

NumpyNinja: Blogs. Demystifying Tech,

One Blog at a Time.
Millions of views. 

Basics of Java for Automation testing

Jul 7
4 min read

Automation testing is not about becoming a full-time Java developer. It is about learning the right Java concepts that help you write clean, reusable, and maintainable test scripts. Whether you are using Selenium, Rest Assured, TestNG, or Cucumber, the same Java fundamentals appear repeatedly.


Let us explore the Java concepts every automation tester should understand.


1. Variables and Data Types –


This is the foundation of every script. Every automation script starts by storing information. That information could be a username, password, URL, expected result, or API response.


Variables are simply containers that hold data.

For example:

String username = "Admin";

int age = 25;

boolean isDisplayed = true;


Java provides different data types depending on the kind of value you want to store.


int – Whole numbers

double – Decimal numbers

char – Single character

boolean – True or False

String – Text


In automation, you will constantly store input values, expected outputs, element names, and API responses using variables.


2. Operators – Making Decisions with Data


Operators allow Java to perform calculations and comparisons.

You will mostly use comparison operators during validations.


if(actualTitle.equals(expectedTitle))


Common operators include:


Arithmetic (+, -, *, /)

Comparison (==, !=, >, <)

Logical (&&, ||, !)


For example, you may verify whether the response status code is 200 or whether a button is visible before clicking it.


3. Control Statements –


This teaches your script to think. Automation scripts often need to make decisions.

Suppose a popup appears only sometimes.


if(driver.findElement(...).isDisplayed())

{

// Close popup

}


Loops help repeat actions.


for(int i=0;i<5;i++)


Automation uses loops to:


Read multiple rows from Excel

Execute tests repeatedly

Process API data

Handle multiple web elements

Without control statements, every script would follow only one fixed path.


4. Methods –

Methods we write once and reuse everywhere.

Imagine typing the login steps in 50 different test cases, which is unnecessary.

Instead, create one reusable method.


login(username,password);


Whenever login is needed, simply call the method.


Methods make frameworks:


Cleaner

Easier to maintain

Less repetitive

More professional


5. Classes and Objects –

Java is an Object-Oriented Programming (OOP) language. The classes and objects are heart of automation.

A class acts like a blueprint and an object is the actual implementation of that blueprint.


Example:

WebDriver driver = new ChromeDriver();

Here,

WebDriver is the reference

ChromeDriver creates the object

Every page in a Selenium framework is usually represented by a separate class.


6. OOP Principles –

Automation frameworks heavily depend on OOP concepts (We will learn OOPs concept with Real Automation examples in my next blog) .


Encapsulation

It keeps data secure by controlling access through methods.

It is useful when creating Page Objects.


Inheritance

It Allows one class to inherit another.

Instead of writing browser setup repeatedly, every test class can inherit it.

Public class LoginTest extends BaseTest


Polymorphism

It means one method can behave differently depending on the object.

Selenium itself uses this concept extensively.


Abstraction

It hides implementation details.


Automation testers only call methods like:

clickLoginButton();

without worrying how the click is actually performed.


7. Strings –

This is the most frequently used Java class

Almost everything in automation involves text.


Examples:

Usernames

URLs

Messages

API responses

Error messages


You will often use methods like:

equals()

contains()

substring()

split()

replace()

trim()


String handling is one of the most frequently used skills in Selenium and API testing.


8. Arrays and Collections – Managing Multiple Data


Suppose you are testing 100 usernames.


Instead of creating 100 variables, use collections.


Example:


ArrayList<String> users = new ArrayList<>();


Popular collections include:


Array

ArrayList

HashMap

Set

List


Collections are essential for:


Data-driven testing

Reading Excel data

Parsing JSON

Handling multiple web elements


9. Exception Handling –

It helps to preventing script failures.


Automation scripts do not always run perfectly.


Sometimes:


Element not found

Network failure

Invalid response

File missing


Instead of crashing,


Java handles errors gracefully.

for example

try

{

// Automation code

}

catch(Exception e)

{

// Handle exception

}


Good exception handling creates reliable automation frameworks.


10. File Handling – Reading External Test Data


Automation frameworks rarely keep test data inside the code.


Instead, they read from:


Excel

CSV

Properties

JSON

Text files


For example,


Instead of writing:

username="Admin"

inside the script, the framework reads it from an external file.

This makes tests flexible and easier to maintain.

11. Packages and Access Modifiers – Organizing Your Project


As projects grow, code organization becomes important.


Packages separate:


Pages

Utilities

Test Cases

Step Definitions


Access modifiers control visibility.


public

private

protected

default


A well-organized project is much easier for teams to understand.


12. Constructors – Preparing Objects


Constructors execute automatically when an object is created.


Example:


LoginPage page = new LoginPage(driver);


The constructor initializes:


WebDriver

Web Elements

Page Objects


You will see constructors in almost every Page Object Model framework.


13. Static Keyword –

It means shared resources. Some methods do not require objects.


Example:

Math.max()

Similarly,

Automation frameworks often create utility methods as static.


Screenshot.capture();


Static methods improve code reuse.


14. Wrapper Classes –

It is used for converting data.

Sometimes automation receives data as text.


Example:

"200"

But Java needs an integer.

Wrapper classes solve this.


Integer.parseInt("200")


Common wrappers include:

Integer

Double

Boolean

Character


It is very useful in API automation.


15. Multithreading – Faster Test Execution

Imagine running 500 test cases one by one, it would take hours.

Multithreading allows several tests to execute simultaneously.


Frameworks like TestNG use this capability for parallel execution.


Benefits include:

Faster execution

Better resource utilization

Reduced testing time


Although you do not need deep expertise, understanding the basics helps when working with large automation suites.

 
 

+1 (302) 200-8320

NumPy_Ninja_Logo (1).png

Numpy Ninja Inc. 8 The Grn Ste A Dover, DE 19901

© Copyright 2025 by Numpy Ninja Inc.

  • Twitter
  • LinkedIn
bottom of page