QA Automation Labs

Cypress BDD: Use of Data Table, Background in Cypress — Cucumber

image-2-1024x431

Cypress BDD: Use of Data Table, Background in Cypress — Cucumber

Pre-Condition:

For Cucumber step up please go through this blog

https://qaautomationlabs.com/how-to-grow-cucumber-in-cypress-in-just-10-steps/embed/#?secret=poKmv7s7vh#?secret=tFTQ2D0vaQ

What is Data Table in Cucumber?

Data tables are used when we need to test numerous input parameters of a web application.

What is Background in Cucumber?

Background in Cucumber is used to define a step or series of steps that are common to all the tests in the feature file.

Scenario Covered

Web -Site http://automationpractice.com/ used for covering scenario

Scenario 1: Login as a new sign up user with valid data

Scenario 2: Login as a new sign up user with invalid data

Scenario 3: Search T-shirts from the site

Feature file looks like below

Steps definition looks like below

// Scenario 1

Given(“I navigate to the Website”, () => {

cy.visit(“http://automationpractice.com/”);

});

When(“I entered valid crediential”, (datatable) => {

datatable.hashes().forEach((element) => {

cy.contains(“Sign in”).click();

cy.get(“#email”).clear();

cy.get(“#email”).type(element.email);

cy.get(“#passwd”).clear();

cy.get(“#passwd”).type(element.validpassword);

});

});

When(“User click on sign in button”, () => {

cy.get(“#SubmitLogin”).click();

});

Then(“Validate the title after login”, () => {

cy.title().should(“eq”, “My account — My Store”);

});

// Scenario 2

When(“I entered invalid crediential”, (datatable) => {

datatable.hashes().forEach((element) => {

cy.contains(“Sign in”).click();

cy.get(“#email”).clear();

cy.get(“#email”).type(element.email);

cy.get(“#passwd”).clear();

cy.get(“#passwd”).type(element.invalidpassword);

});

});

When(“User click on sign in button”, () => {

cy.get(“#SubmitLogin”).click();

});

Then(“Error message should display”, (datatable) => {

datatable.hashes().forEach((element) => {

cy.contains(element.errormessage);

});

});

// Scenario 3

When(“I entered the search criteria”, (datatable) => {

datatable.hashes().forEach((element) => {

cy.get(“#searchbox”).type(element.serachtext);

});

});

And(“Click on serach button”, () => {

cy.get(‘[name=”submit_search”]’).click();

});

Then(“Validate the T-shirt name”, (datatable) => {

datatable.hashes().forEach((element) => {

cy.contains(element.tshirtName);

});

});

Video of all steps is attached below

Result

Leave a Comment

Your email address will not be published. Required fields are marked *

Recent Posts

image-629

Mocking API Response In Cypress

What is Mocking ? Mocking, in a broader software development and testing context, is a technique used to simulate the behavior of certain components o
Read More

Cypress 13 Integration With BDD/Cucumber & POM

Problem Statement After Cypress version 10, there are some changes needed to integrate Cucumber/BDD with Cypress effectively. In this blog post, we wi
Read More
image-20-768x394

Running End-to-End Cypress Test cases in a Google Cloud Pipeline

Cypress is an end-to-end testing framework that is used to test web applications. It is an open-source JavaScript-based framework that enables de
Read More