Modular Driven Framework

In most of the web application we have few set of actions which are always executed in the series of actions. Rather than writing those actions again and again in our test, we can club those actions in to a method and then calling that method in our test script. Modularity avoids duplicacy of code. In future if there is any change in the series of action, all you have to do is to make changes in your main modular method script. No test case will be impacted with the change.

How to do it..

Look for repeated functionality in your application for example the ‘login’ functionality. We can simple wrap this functionality in a method and we can give it a sensible name.

1) Create a ‘New Package‘ file and name it as ‘appModule’, by right click on the Project and select New > Package. We will be creating different packages for Page Objects, Utilities, Test Data, Test Cases and Modular actions. It is always recommended to use this structure, as it is easy to understand, easy to use and easy to maintain.

2) Create ‘New Class‘ and name it as SignIn_Action by right click on package ‘appModule‘ and select New > Class. It will add new class ‘SignIn_Action’ under package ‘appModule’.

3) Now create a Public Static Void Method and name it as Execute  and club the following steps in to it:

  •  Click on the My Account link.
  • Enter Username
  • Enter Password
  • Click on the Submit button

This method will not have any Argument (driver) and Return value as it is a void method.

Note: Please visit First Test CasePage Object Model first, in case you are finding it hard to understand the above used SignIn_Action class.

4) Create a New Class and name it as Module_TC by right click on the ‘automationFramework‘ Package and select New > Class. We will be creating all our test cases under this package.

Now convert your old POM_TC in to the new Module based test case.

You will notice that your call to SignIn_Action will automatically execute all the steps mentioned under it.

Your Project explorer window will look like this now.

MOD-1

 

navigate-left-icon

navigate-right-icon