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

AI-Driven Testing with Applitools Autonomous

The demand for high quality software in the fast paced tech environment has never been greater. Since companies spend more on QA to make sure their pr
Read More

Visual Regression Testing Using Playwright

“Have you ever thought, ‘Why wasn’t that noticed?’ or ‘Is the bug so obvious that it should have been caught right away?
Read More

Cypress vs Selenium: Choosing the Best Tool for Your Automation Needs

Choosing the right testing tool for your project can be a challenging task. Two of the most widely used options are Cypress and Selenium, and understa
Read More