Dilpreet Johal

Sign in


I am sure most of you guys have already heard about Cypress as it’s becoming one of the most popular E2E testing tools in the industry and more and more companies are using Cypress to do their end-to-end testing with it.

Now, if you are not familiar with how Cypress works and how to write tests in Cypress, then make sure to check out this Cypress Testing Tutorial Series for Beginners as it will cover everything you need to get started with Cypress.io.

What is Cypress?

Cypress is a JavaScript All-in-one end-to-end testing framework. So what does that mean? Unlike many other frameworks…

Page Object Model in Cypress

In this tutorial, we will cover how to set up a Page Object Model in Cypress. We will also cover why the Cypress team suggests not to use Page Object Model.

What is Page Object Model (POM)

POM is a popular design pattern that helps in reducing code duplication and improves test maintenance. You do that by storing page-related elements in a separate file which gets called by your tests.

Why NOT to use POM as per Cypress?

In an article published by the Cypress team back in 2019, they pointed out that instead of using POM you should rather use App Actions.

What are App Actions?
Instead of interacting through the UI, App Actions…


In this tutorial, we will learn how to work with different types of form input fields in Cypress such as Text Inputs, Dropdown menu, Checkboxes, Date Picker, and Text Area.

Text Input


In this tutorial, we will cover how to set up Selenium Grid with Docker Compose. We will talk about why we need Docker Compose and look into how to implement a Docker Compose file. We will also cover how to set up parallel execution with Docker Compose and Selenium Grid.

Why use Docker Compose?

  • No need to remember Docker commands: With Docker compose, you don’t need to remember all different types of docker commands which we covered in our previous post
  • Run multiple containers together: Docker compose allow you to run multiple containers together as a service instead of spinning up each one-by-one
  • Spin…


In this tutorial, we will cover how to set up Selenium Grid with Docker and also go over why we should use Selenium Grid. We will also increase max instances and max sessions for the Selenium Grid in Docker to run tests in parallel.

Why do we need Selenium Grid?

So before we set up Selenium Grid with Docker, let’s first understand why we even need Selenium Grid in the first place?

  • Multiple browsers/devices: Grid makes it much easier for us to run tests on multiple browsers/devices
  • Test execution time: You can reduce overall test execution time by running tests in parallel in Grid
  • Infrastructure: Setting…


In the previous post, we learned how to integrate Selenium tests with Docker. In this tutorial, we will take a look at how to integrate VNC Viewer with Docker and debug Selenium tests in Docker using VNC Viewer. We will also learn why it’s important to run tests through VNC Viewer as well.

Why run Selenium tests in Docker using VNC viewer?

Originally, when I was preparing this post, I was going to name the title “View Selenium Tests in Docker using VNC Viewer”. Because I thought the goal is to be able to view the tests running in VNC.

However, the main reason we want to view tests…


In this post, we will cover how to run Selenium tests in Docker and execute them in Chrome and Firefox browsers. We will also understand why we should run Selenium tests in Docker?


There are few prerequisites that you need to be aware of before we get started-

  • Basic familiarity with Docker: you should at least have a high-level understanding of Docker concepts
  • Docker installed: you also should have docker installed in your local machine — https://www.docker.com/products/docker-desktop
  • Basic Selenium script: you will also need a sample script that you can execute to run your tests. You can also use the…


How to do API Automation Testing using Javascript with Supertest & Mocha? In this course, I’ll walk you through step-by-step to get your Javascript API Automation framework ready.

We will be covering the following topics:

  • What technologies we will be using for API testing
  • Installation / Configuration
  • Write API automation tests with Javascript using Mocha, Chai JS, and SuperTest HTTP Library
  • Scale API automation test framework
  • Learn how hooks work and when to use it
  • Write some negative tests to increase our test coverage
  • Generate fake test data to make tests more dynamic
  • Generate HTML reports using Mochawesome reporter
  • Integrate tests with Jenkins
  • and a lot…


In this post, we will go over some of the important updates related to WebdriverIO Sync mode. We will also cover some of the possible changes that will be coming in the WebdriverIO v8. But, before we start talking about WebdriverIO Sync mode, it’s important to understand how the WebdriverIO Async mode works.

WebdriverIO Async mode

By default, WebdriverIO uses async mode to interact with the browser or the mobile device. It runs a set of asynchronous commands which are handled via async/await in JavaScript. However, there are few downsides to using async/await

  • Those unfamiliar with JavaScript or asynchronous programming may find…


In this Cypress tutorial, we will cover how you can work with multiple elements. We will verify the length of the list as well as assert the text of all the list items.

Test Scenario

In this test scenario, we will try to get the length of the menu link items below as well as get the text of each of the list items.

Dilpreet Johal

SDET Architect | YouTuber | Tech Blogger | Love to explore new tools and technologies. Check out my YouTube channel — https://youtube.com/automationbro

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