Getting started with Cucumber for Selenium


In this post we will discuss about getting started with Cucumber


Cucumber is a tool which helps Behavioral Driven Development (BDD).

Cucumber as a tools support different language implementation like Java, JS, PHP, Ruby, C# etc.

We have already discussed about C# based implementation of cucumber in our ExcuteAutomation channel a lot using tool called Specflow

Installation pre-requisite

In this video series, I am going to use IntelliJ IDE running on Windows 10 operating system, but you can use any IDE you like

Along with that we need following JAR files

  • Cucumber-core
  • Cucumber-java
  • Cucumber-java-deps
  • Cucumber-jvm
  • Gherkin
  • Selenium (and its related jars)

Here is the complete videos of above discussion

Video 1

Video 2

Thanks for reading the post and watching the video!!!

Please leave your comments and let me know if there is anything I should update in this post.

Karthik KK

Udemy course of ExecuteAutomation is chosen as BestSelling course


Hi Friends,

I am very happy to announce that our “Automation framework development with Selenium C# (Advanced)” course is chosen as the bestselling course.

The course has served many professionals to get their daily job done, since it has an ready-to-use framework along with many ancillary features (like reporting, test harness etc)

If you are not aware of the course content, here is a sneak peek video of the same

Here are the other courses released by ExecuteAutomation

Thank you once again !

Karthik KK

An Introduction to Cucumber for Java


In this post we are going to discuss about cucumber for Java implementation, well, from this post, we are starting an all new series of Cucumber with Selenium video series as well as posts as a discussion.


BDD – Behavioral Driven Development is based on Test Driven Development (TDD) and it aims to bridge the gap between Business analyst and developers.

BDD not only bridges the gap between business analyst and developers but also between

  • Manual QA with Automation testers (who write BDD)
  • Manual QA with Developers

BDD seems to be like a plan text, but they have their own syntax based on certain tools (which we will discuss next)

BDD Supported tools

There are many tools available to support BDD, some most famous tools are

  • Cucumber
  • Jbehave
  • Nbehave
  • SpecFlow

All the above tools are used in conjunction with many different platforms and languages like JAVA, C#, Ruby, Python, Jruby etc

But all the above tools have one language in common, which is Gherkin


  • Gherkin is the format for Cucumber specification.
  • It is a business readable, Domain specific language which will let anybody to understand the software behavior easily (effortlessly), since they are PLAIN TEXT.
  • Gherkin has some spaces and indentation to define structure.
  • Gherkin has very few syntax which make the parser (the tool which uses Gherkin) to behave based on the structure.
  • The syntax of Gherkin is very simple and are pretty readable as plain text

Gherkin Syntax

Here are few syntax of Gherkin

  1. Feature
  2. Background
  3. Scenario
  4. Given
  5. When
  6. Then
  7. And
  8. But
  9. Scenario outline
  10. Examples
  11. Scenario Templates

It looks something like this

Here is the complete video of the above discussion

Read more

Setting Selenium grid with Docker compose


In our last post on docker compose, we discussed what docker compose is and how to work with docker compose in much greater working detail.

In this post we will go a step further to configure selenium grid with docker compose. We have also discussed about configuring and working with Selenium Grid using Docker in greater detail in our executeautomation, please go ahead and read the article from here

Here is the complete video to configure and work with Docker compose for Selenium grid

Thanks for reading the post and watching the video!!!

Please leave your comments and let me know if there is anything I should update in this post.

Karthik KK

Identifying broken links with Selenium C#


In this post we will discuss one of the common question asked by many readers of ExecuteAutomation, which is the topic name.

Its actually fairly very simple though, I just wrote 10 lines of code to achieve it (you might have even better solution than one I have)

So, here is the pseudo code

  1. Navigate to the URL of site you are interested in
  2. Get all the links of page using FindElements(By.Tag(“a”)) method
  3. Iterate through the page URLs and get the attributes href using GetAttribute(“href”) method
  4. Use Simple WebRequest and HttpWebResponse class to get the page response and status code.

So, here is the output

Here is the source code

Thanks for reading the post and watching the video!!!

Please leave your comments and let me know if there is anything I should update in this post.

Karthik KK

ExecuteAutomation Reporting System (EARS) Outsourced

If you have already read earlier articles in ExecuteAutomation, we has taken effort to outsource as much source code as possible on GitHub

Today, ExecuteAutomation is happy to outsource on of the most exciting yet most requested tool developed for automation community which is

  • ExecuteAutomation Reporting System (EARS) along with
  • ExecuteAutomation Web Service System

You can clone the complete source code of ExecuteAutomation Reporting System source from here.

Quick Introduction on ExecuteAutomation Reporting System (EARS)

If you don’t know what ExecuteAutomation Reporting system or EARS is all about, it’s an tool developed using

EARS stores automation reports for every test execution done on the framework which consumes it and display it with as much information as possible


Here are some of the key features of EARS compares to other common reports like Extent Report or ReportNG (which is not even in development)


EARS shows report for every test sessions and stores them historically in MS SQL server database as shown below

Figure 1: ExecuteAutomation Reporting System Home Page


EARS has powerful search capabilities like search by

  • Test case ID
  • Name (who executed it)
  • Date search

Supported automation tools

Supports automation testing tools like

  • Selenium
  • Coded UI Testing
  • Robotium

Stores Screenshot and detailed report

EARS also stores screenshot of failed test cases (coming soon)

Figure 2: Detailed Report

Stores pickles report

EARS also stores the most famous living documentation Pickles report

Where can I learn building this tool from ground up?

You can learn building ExecuteAutomation Reporting System and ExecuteAutomation TestHarness System from udemy course below

Here is the complete video of the above discussion

Thanks for reading the post and watching the video!!!

Please leave your comments and let me know if there is anything I should update in this post.

Karthik KK

Understanding and working with Docker compose


So far in ExecuteAutomation, we discussed about Docker a lot ranging from

In this post we will understand and work with Docker compose.

What is Docker Compose?

  • Compose is a tool for defining and running multi-container Docker applications.
  • With Compose, you use a Compose file to configure your application’s services. Then, using a single command, you create and start all the services from your configuration
  • Compose is great for development, testing, and staging environments, as well as CI workflows

Docker compose manages Services

Docker compose commands helps to

  • Start, stop and rebuild services
  • View the status, logs of running services

Docker as CI?

  • An important part of any Continuous Deployment or Continuous Integration process is the automated test suite. Automated end-to-end testing requires an environment in which to run tests.
  • Compose provides a convenient way to create and destroy isolated testing environments for your test suite using compose file

What is Compose files?

Docker compose file is like a configuration file, where you define all the different stuffs we perform on command line (via powershell) into an file. But you can do more than what you do in command line as well

The file is basically an Yaml file (.yml)

Here are the complete videos of the above discussion

An Introduction to Docker Compose 

Working with multiple containers using Docker compose

Thanks for reading the post and watching the video!!!

Please leave your comments and let me know if there is anything I should update in this post.

Karthik KK