Sign in

Tech Enthusiast | Test Automation Consultant | Nature Lover | Hiker | Writer | Grower
  • REST — Representational State Transfer
  • API — Application Programming Interfaces
  • HTTP Methods — HTTP defined request methods to perform a desired action
  • HTTP Header — carries meta data about the HTTP Body
  • HTTP Body — carries the actual message
  • Idempotent — No change is expected/will happen in the server side when invoked even multiple times
  • HTTP Request — composed of status line, request header and request body. In simple terms, the client is asking a service to perform a task
  • HTTP Response — composed of status line, response header and response body. …

I will be discussing about what is authentication, why we need authentication in APIs, what are the different authentication mechanism and the misconception of authentication vs authorization.

This is the second article in the series and if you didn’t checkout the first feel free to have a look.

What is authentication?

In simple terms, authentication is used to identify the entity trying to access the resource. It could be a human or a machine. An ideal example from our day to day life is the finger prints you leave to open up doors in your office, Or the RFIDs tapped at each door…

Do your logs provide sufficient information for you to make great decisions? Do you add add log lines manually for every action you perform?

This might come handy for your selenium framework to provide you with more information.

WebDriver listeners, yes they are like CCTVs 😂 but little better, they capture only what they were asked.

Photo by Rich Smith on Unsplash

Let’s check the implementation.

There is a class in selenium as “EventFiringWebDriver”, you need to create an object of EventFiringWebDriver.

Tip — If you have an existing implementation that returns a Webdriver, you can fix it easily returning EventFiringWebDriver instead of WebDriver.

Check the…

I am planning to discuss the technical implementation and the usage of the webdrivermanager in this article.

I have written an Intro article on webdrivermanager, including the current status of the project. Highly recommended to read it before this.

First let’s take a look at how to use this in our project.

You can initialize the webdriver using three different ways provided by the webdrivermanager.

  • Adding WebDriverManager.Xdriver().setup(); where you want to initialize the webdriver where X will be different browsers. If you are supporting different browsers, you need to setup a driver for each browser as below.

Web driver manager will take care of managing all your drivers. Interesting! isn’t it? Alright let’s dig deep with a cup of coffee.

web driver manager

Look at your automation test suite. Deep at the bottom, it is filled with various driver initialization methods. More browsers you support, more methods you implement at the base of your automation suite to power different browsers.

System.setProperty("", "/path/to/chromedriver");
System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");
System.setProperty("webdriver.edge.driver", "/path/to/msedgedriver.exe");
System.setProperty("webdriver.opera.driver", "/path/to/operadriver");
System.setProperty("phantomjs.binary.path", "/path/to/phantomjs");

Not only that, you need to attach the respective driver binary file somewhere accessible by the code.

And the list keeps growing with your client requirement.

How easy will it be if it can be taken care by someone else?

Here is your rescuer…

As the name suggests, smallest units of the software are tested and is acting as the safety net for any code level change.

Mostly done by developers and ideally use tools to automate.

Photo by Arnold Francisca on Unsplash

According to the test pyramid, unit tests should occupy largely outnumber compared to any other test type. Hence this is the baseline of testing done on a product and is very powerful. Unit Testing will help to detect issues very early stages of the SDLC.

In our inventory control example,


Customer Management


  • Create customers
  • Edit existing customers
  • Delete existing customers
  • Search existing customers

Let’s take…

Everything is constantly evolving and technology world is at it’s top. Hence no doubt about the role of a quality assurance engineer. The best way to grasp this is by looking at few job descriptions advertised by different companies around the world.

Photo by Belinda Fewings on Unsplash

Web has been serving us for bit over three decades and it has evolved in many different ways. So far we have had 3 generations of web as Web 1.0, Web 2.0 and Web 3.0. Let’s have a look on what we had in each generations and technologies powered the web in each generation and the future.

Web 1.0

This is the consumer content generation of the web where few people used to generate content and most of the people were consumers. Personal web pages were common and they served static content. …

This is for you !!!

You are not the only one, there is plenty that have gone, going and will be going though that hassle. Welcome to the club 🍺 !!!

Planning is the key and below are few points that will come handy. Truth is there is no easy way.

Do ✔

Plan to execute your test bed in parallel — this will definitely make your life far difficult yet in the longer run this would come handy. A test bed that will take 4–5 hrs of sequential run will definitely cut down some time for you.

Rely on a user…

Sajitha Pathirana

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store