Skip to content

Axis Bank Automation Testing Interview Questions & Answers

Curated interview practice questions with answers. These are practice scenarios, not a verified list of past interview questions.

About Axis Bank hiring for Automation Testing roles

Axis Bank is one of India's large private sector banks, offering retail banking, corporate banking, credit cards, loans and digital payment services. It acquired Citibank's India consumer business in 2023. It hires for branch banking, relationship management, operations, risk, analytics and technology roles, and also runs young professional and campus programmes.

For Automation Testing roles, this Axis Bank practice set focuses most on Cucumber and BDD (7), Selenium WebDriver (6), Core Java for Testers (6), REST Assured (6). It has 6 easy, 32 medium, 2 hard questions, so you can start easy and work up to the harder ones.

Company type
Banking & finance
Headquarters
Mumbai, India
Main India offices
Mumbai, Bengaluru

Axis Bank Automation Testing interview process

  1. Online assessment (aptitude + banking awareness)
  2. Functional or technical interview
  3. Managerial round
  4. HR round

Typical pattern based on public candidate experiences. Rounds vary by role, team and year.

Solved for Axis BankStart practicing
3 QUESTIONS FREESign up to unlock the full question bank and track your progress.Unlock every question and answer, then continue practising company-wise and package-wise.
3 questions free Unlock the rest in seconds
01

What are the Actions class use cases?

Save to ▾
Show answer
Mouse and keyboard actions such as hover, drag and drop, double click, right click and key combinations, built with moveToElement(...).perform().
02

What is method overriding and where is it useful in frameworks?

Save to ▾
Show answer
A subclass redefines a parent method. Frameworks use it to customise base behaviour, such as overriding a wait or click method in a base page class.
03

Write a docker-compose.yml that runs a Selenium hub with Chrome and Firefox nodes.

Save to ▾
Show answer
services: selenium-hub: image: selenium/hub:4.25.0 ports: - "4442:4442" - "4443:4443" - "4444:4444" chrome: image: selenium/node-chrome:4.25.0 shm_size: 2gb depends_on: - selenium-hub environment: - SE_EVENT_BUS_HOST=selenium-hub - SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 firefox: image: selenium/node-firefox:4.25.0 shm_size: 2gb depends_on: - selenium-hub environment: - SE_EVENT_BUS_HOST=selenium-hub - SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
04

How do you run JavaScript in Selenium?

Save to ▾
Show answer
Cast the driver to JavascriptExecutor and use executeScript, for example to scroll into view or click hidden elements.
05

Your helper catches Exception and prints the stack trace, and tests pass even when steps fail. What is the issue?

Save to ▾
Show answer
Swallowing exceptions hides failures, so TestNG never sees an error and marks the test passed. Catch only specific exceptions you can handle, add context and rethrow, or let them propagate. If you need logging, log and then throw. Code reviews should flag empty catch blocks and broad catch (Exception e) in test code.
06

How would you test an API with rate limiting?

Save to ▾
Show answer
Read the documented limit, then send requests quickly until you exceed it and assert a 429 Too Many Requests response with headers like Retry-After or remaining quota. Wait for the window to reset and confirm requests succeed again. Also check limits are per user or key as designed. Run these tests in isolation so they do not throttle the rest of the suite.
07

A test configuration value has to be the same for the whole run and accessed from many classes. How do you implement it?

Save to ▾
Show answer
Create a ConfigReader that loads properties once, using a singleton or a static holder initialised lazily in a thread-safe way, and exposes typed getters like getInt("timeout"). Let system properties and environment variables override file values so CI can change them. Keep it read-only after loading so parallel threads cannot change settings mid-run.
08

How do you validate an XML response in REST Assured?

Save to ▾
Show answer
// REST Assured uses GPath for XML as well as JSON given() .accept(ContentType.XML) .when() .get("/orders/42") .then() .statusCode(200) .contentType(ContentType.XML) .body("order.@id", equalTo("42")) .body("order.items.item.size()", equalTo(3)) .body("order.status", equalTo("SHIPPED"));
09

How do you read data from Excel or properties files in Java?

Save to ▾
Show answer
Use Apache POI for Excel and the Properties class for config files, loaded in a utility class so tests read data instead of hard-coding it.
10

Write a Scenario Outline for login with three data sets.

Save to ▾
Show answer
Scenario Outline: Login with different users Given the user is on the login page When the user logs in with "<username>" and "<password>" Then the message "<message>" is shown Examples: | username | password | message | | asha | Valid@1 | Welcome Asha | | asha | wrong | Invalid password | | locked1 | Valid@1 | Account is locked |
11

How do you attach a screenshot to the Cucumber report when a scenario fails?

Save to ▾
Show answer
@After public void afterScenario(Scenario scenario) { if (scenario.isFailed()) { byte[] shot = ((TakesScreenshot) driver) .getScreenshotAs(OutputType.BYTES); scenario.attach(shot, "image/png", scenario.getName()); } driver.quit(); }
12

How do you handle a web table in Selenium?

Save to ▾
Show answer
Locate rows and columns with XPath such as //table//tr and //td, loop through them to read or click cells, or build the XPath dynamically from the row text.
13

What is the difference between git reset --soft, --mixed and --hard?

Save to ▾
Show answer
All three move the current branch to another commit, but treat your changes differently. Soft keeps the changes staged, which is useful to squash recent commits. Mixed, the default, keeps the changes in the working folder but unstages them. Hard throws away staged and working changes completely, so use it carefully. Never reset commits that are already pushed to a shared branch; use git revert there instead.
14

How do you measure and assert API response time in REST Assured?

Save to ▾
Show answer
Use then().time(lessThan(2000L)) for a quick check or response.getTimeIn(TimeUnit.MILLISECONDS) to log the value. This measures client-side time, including network, so set generous thresholds and treat it as a smoke signal, not a performance test. For real load and latency percentiles, use tools such as JMeter, Gatling or k6.
15

What is REST Assured?

Save to ▾
Show answer
A Java library that makes API tests readable using given-when-then, with easy request building, response validation and JSON path support.
16

How do you rerun only failed Cucumber scenarios?

Save to ▾
Show answer
Add the rerun plugin, for example rerun:target/failed.txt, to the main runner. It writes the location of each failed scenario. Create a second runner whose features point to @target/failed.txt and run it after the main run in Maven or Jenkins. Use reruns to separate real failures from flaky ones, but track flaky scenarios and fix them instead of hiding them.
17

Write Appium code to scroll to an element by its text using UiScrollable on Android.

Save to ▾
Show answer
// Scrolls the first scrollable container until the text is visible String selector = "new UiScrollable(new UiSelector().scrollable(true))" + ".scrollIntoView(new UiSelector().text(\"Order History\"))"; WebElement item = driver.findElement(AppiumBy.androidUIAutomator(selector)); item.click();
18

What is the use of Maven in automation projects?

Save to ▾
Show answer
It manages dependencies through pom.xml, builds the project, runs tests with Surefire and standardises structure across teams.
19

After aborted Jenkins builds, Grid slots stay busy and new tests wait. How do you handle it?

Save to ▾
Show answer
When a build is killed, driver.quit() never runs, so sessions stay open until the node notices. Set a sensible session timeout on nodes, such as SE_NODE_SESSION_TIMEOUT of 300 seconds, so idle sessions are cleaned up. Always call quit in an @AfterMethod with alwaysRun or a finally block. In CI, bring the Compose Grid up per build and tear it down in a post always step, so each build gets a fresh Grid.
20

How do you handle a dropdown that is not a <select> tag?

Save to ▾
Show answer
Click to open the dropdown, then locate the option by its text, e.g. //li[text()='India'], and click it. Add an explicit wait for the animation.
21

How do you validate a JSON response in REST Assured?

Save to ▾
Show answer
Use then().statusCode(200).body("data.id", equalTo(5)), or extract() the response and assert fields with JsonPath.
22

How do you calculate automation ROI?

Save to ▾
Show answer
Compare effort saved by running automated tests repeatedly against the cost of building and maintaining scripts, counting execution time, defects found earlier and release speed.
23

How do you pass parameters from testng.xml?

Save to ▾
Show answer
Define parameter name and value in the XML and read them with @Parameters in the test or configuration method.
24

Write Selenium code to verify that all links on a page are not broken.

Save to ▾
Show answer
List<WebElement> links = driver.findElements(By.tagName("a")); for (WebElement link : links) { String url = link.getAttribute("href"); if (url == null || !url.startsWith("http")) continue; HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection(); con.setRequestMethod("HEAD"); int code = con.getResponseCode(); if (code >= 400) System.out.println("Broken: " + url + " " + code); }
25

Tell me about a time a BDD conversation clarified a requirement before development started.

Save to ▾
Show answer
Situation: a story said users get a refund if an order is cancelled early. Task: write scenarios with the product owner and developer. Action: while writing examples I asked what early meant and whether shipped orders counted. The three of us found the story had no time limit and no rule for partial shipments, and we wrote four concrete scenarios. Result: the rules were fixed before coding, avoiding a rework that had happened in a previous sprint.
26

How do you verify that the correct page has loaded in POM?

Save to ▾
Show answer
Give each page an isAt() or waitUntilLoaded() method that waits for a unique element, page title or URL fragment. Call it in the constructor or right after navigation. If it fails, throw a clear error such as "Expected Cart page but URL was /login". This catches navigation problems at the right point instead of failing later with a confusing locator error.
27

How do you generate reports from Cucumber?

Save to ▾
Show answer
Configure plugins such as pretty for console, html:target/cucumber.html for a built-in report and json:target/cucumber.json for tools. The JSON feeds maven-cucumber-reporting or the Jenkins Cucumber Reports plugin. For richer dashboards, add the Allure or Extent Cucumber adapter. Attach screenshots and logs in hooks so failures can be analysed from the report alone.
28

Common HTTP status codes?

Save to ▾
Show answer
200 OK, 201 Created, 204 No Content, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 500 Internal Server Error.
29

How do you validate a response against a JSON schema in REST Assured?

Save to ▾
Show answer
Add the json-schema-validator dependency, place the schema file in src/test/resources, and assert with then().body(matchesJsonSchemaInClasspath("user-schema.json")). Schema validation checks field types, required fields and structure, so it catches contract changes that value checks might miss. It complements, not replaces, assertions on business values like status or totals.
30

What is a quality gate in a CI/CD pipeline?

Save to ▾
Show answer
A quality gate is a rule a build must pass before moving forward, such as all smoke tests passing, code coverage above a threshold, no critical static analysis issues, or no new high-severity vulnerabilities. If the gate fails, the pipeline stops and the change is not deployed. Gates make quality an automatic decision instead of a manual check.
31

Tell me about a time you had to explain a technical test failure to a non-technical manager.

Save to ▾
Show answer
Situation: a release was blocked by failing tests and the manager wanted to know if it was safe to ship. Task: explain the risk without jargon. Action: I separated the failures into one real bug, where customers could be charged twice, and three environment issues. I showed the bug with a short screen recording. Result: the manager delayed the release by one day, the bug was fixed and the environment issues were assigned to DevOps.
32

What is a DataTable in Cucumber and how do you use it?

Save to ▾
Show answer
A DataTable passes a table written under a step into the step definition. You can read it as List<String>, List<Map<String,String>>, Map<String,String> or convert rows into objects with a @DataTableType method. For example a step that creates several users can take a table of name, role and email. Unlike Scenario Outline, a DataTable feeds data into one step and the scenario runs once.
33

Tests pass on QA but fail in the staging pipeline. How do you investigate?

Save to ▾
Show answer
Compare what differs: configuration URLs, test data, feature flags, user permissions, network or proxy, browser versions and timing due to slower servers. Check logs and screenshots from staging and rerun one failing test with verbose logging. Often the issue is missing data or a flag. Fix by making environment settings explicit and creating required data in test setup.
34

How do you assert on an array in a JSON response using Hamcrest?

Save to ▾
Show answer
Use collection matchers inside body(). For example body("data.id", hasItems(1, 2)), body("data", hasSize(6)), body("data.email", everyItem(containsString("@"))) and body("data.find { it.id == 3 }.name", equalTo("Neha")). These check the whole collection in one line. For complex rules, extract a List with jsonPath().getList() and assert with Java or AssertJ.
35

Write a Dockerfile that runs a Maven and TestNG test suite.

Save to ▾
Show answer
FROM maven:3.9-eclipse-temurin-21 WORKDIR /app # cache dependencies first for faster rebuilds COPY pom.xml . RUN mvn -q dependency:go-offline COPY src ./src COPY testng.xml . ENV GRID_URL=http://selenium-hub:4444 CMD ["sh", "-c", "mvn test -Dgrid.url=$GRID_URL -Dsurefire.suiteXmlFiles=testng.xml"]
36

Write a step definition that reads a DataTable as a list of maps.

Save to ▾
Show answer
// Given the following users exist @Given("the following users exist") public void usersExist(DataTable table) { List<Map<String, String>> rows = table.asMaps(); for (Map<String, String> row : rows) { userApi.create(row.get("name"), row.get("role")); } }
37

What is the difference between driver.close() and driver.quit()?

Save to ▾
Show answer
close() closes the current window; quit() closes all windows and ends the driver session.
38

Write Appium Java code to perform a vertical swipe using W3C Actions.

Save to ▾
Show answer
// Swipe up from 80% to 20% of the screen height Dimension size = driver.manage().window().getSize(); int x = size.width / 2; int startY = (int) (size.height * 0.8); int endY = (int) (size.height * 0.2); PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger"); Sequence swipe = new Sequence(finger, 1); swipe.addAction(finger.createPointerMove(Duration.ZERO, PointerInput.Origin.viewport(), x, startY)); swipe.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg())); swipe.addAction(finger.createPointerMove(Duration.ofMillis(600), PointerInput.Origin.viewport(), x, endY)); swipe.addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg())); driver.perform(List.of(swipe));
39

How do you mock an external API in automation tests?

Save to ▾
Show answer
Use a tool such as WireMock or MockServer to run a stub server that returns predefined responses for given requests. Point the application or tests to the stub with configuration. This lets you test error codes, timeouts and edge cases that are hard to trigger on the real service, and keeps tests stable when the third party is down. Still keep a few tests against the real integration.
40

A teammate compares two strings with == and the test sometimes passes and sometimes fails. Explain.

Save to ▾
Show answer
== compares object references, not content. String literals are interned, so two literals with the same text may share a reference and == returns true, but strings read from the UI or built at runtime are new objects, so == returns false even with the same text. Use equals() or equalsIgnoreCase() for content, and Objects.equals() to be null-safe.

Tips to crack the Axis Bank Automation Testing interview

  • Prepare banking awareness topics such as repo rate, CASA, NPAs, KYC and digital payment systems like UPI.
  • For analytics and technology roles, revise SQL, Excel and data visualisation, and be ready with project examples.
  • Practise clear communication and customer-handling answers, since many bank roles involve direct interaction with customers.
  • Keep a one-minute story ready for every project on your CV: problem, your part, tools, result.
  • Practise the hard questions on this page aloud; Axis Bank interviewers usually ask follow-ups on your first answer.

Frequently asked questions

How many rounds are there in the Axis Bank Automation Testing interview?

Candidates usually go through 4 stages: Online assessment (aptitude + banking awareness); Functional or technical interview; Managerial round; HR round. The exact rounds change with the role, team, location and your experience, so confirm the process with the recruiter.

Which topics should I prepare for the Axis Bank Automation Testing interview?

This practice set leans on Cucumber and BDD (7), Selenium WebDriver (6), Core Java for Testers (6), REST Assured (6). Revise those first, then practise explaining one or two of your own projects end to end, because most Axis Bank interviewers ask you to walk through real work.

Are these the exact questions asked at Axis Bank?

No. These are curated practice questions that match the skills and difficulty usually tested in banking & finance interviews like Axis Bank's. They are not a leaked or verified list of past questions.

Where does Axis Bank hire Automation Testing professionals in India?

Axis Bank has large teams in Mumbai, Bengaluru. Openings and locations change often, so check the Axis Bank careers page and filter by city and experience.

Automation Testing questions for similar companies