Setting Up a Testing Venture in Protractor with Cucumber and Web page Object Mannequin – Grape Up
For a few years, when it got here to automating net UI testing, Selenium was the king. And it’s secure to say it nonetheless is! As a extensively recognized and confirmed automation testing device, it’s typically a default alternative for a lot of software program tasks. However does it imply one shouldn’t discover different applied sciences and frameworks? After all not! On this article, I’ll talk about the details behind using Protractor and clarify find out how to set it up for seamless use with Cucumber and Web page Object Mannequin.
To start organising the mission, first, you’ll want to put in node.js. After putting in it in your machine, you’ll be able to confirm that the set up was profitable by typing in ‘node -v’ within the terminal. Whilst you’re at it, in the identical place you can even confirm the Node Packages Supervisor, typing in ‘npm – v’. Then, kind in ‘npm set up -g protractor’ and confirm its profitable set up with ‘protractor –model’. Simply in case, you’ll be able to replace the motive force sometimes through the use of the “net driver-manager replace” command.
Our subsequent step will probably be organising the IDE for snug work. First, in Visible Studio Code set up the “Cucumber (Gherkin) full help” extension. As soon as that’s finished, we’ve got to care for our dependencies. In our mission’s package deal.json file we’ll want to incorporate chai and chai-as-promised for assertions, cucumber, and protractor – all within the dependencies part. In devDependencies, we’ll want protractor-cucumber-framework to attain the objective we’re striving for.
To have consolation and readability inside the growth course of, one of many options that present it’s the skill to shortly search for what code is executed behind every gherkin step. To realize that in a Protractor mission, we’ll have to specify Cucumber choices within the conf.js file. What is critical is the trail to the steps folder.
Then, within the settings.json file, we’ll have to specify the paths to folders containing step definitions and strategies which can be executed behind them. We are able to do that within the following method:
Once we do that, we are able to simply navigate via the mission by clicking the step/definition/methodology/component specified within the code with a CTRL or CMD button pressed. It’s a easy factor, however it could actually dramatically increase productiveness and reduce the time spent on growing or debugging assessments!
Our subsequent premise that we have to deal with is operating the assessments by tags. Whereas including a tag to a function file is fairly simple, the half the place these are run requires offering a path to Cucumber Characteristic information within the conf.js file.
As you’ll be able to observe within the above piece of code, the cucumberOpts part within the conf.js file requires a variable named ‘tags’ as an empty checklist.
Whereas we’re at it, it is very important level out that the conf.js file must have a bit the place we specify the Cucumber as our testing framework:
The general construction of the automated testing mission created in Web page Object Mannequin is analogous throughout applied sciences. An outline for Protractor may be noticed under:
When you create all the mandatory information and end the configuration, it’s time to write the assessments themselves.
Since we’re working in BDD framework, let’s begin with a easy Characteristic File with a easy situation specializing in verifying a Registration type (with a tag for operating it later)
As soon as that’s finished, we are able to specify what occurs in every step in /steps/registration.js:
In that file, we first specify the trail to the file containing strategies which can be going to be known as in every of the step definitions. Then we’re calling assertion libraries and organising timeouts.
Step definition implementation is fairly simple; the Cucumber key phrase precedes a regex and a parameter; the physique of a step calls a way from /pages/registration.js file. Normally, one step calls for only one methodology however check steps might be extra intricate if want be. Discover that if a way returns a Boolean worth, we’re invoking assertion on the degree of a step definition (line 23).
Within the/pages/registration.js file, we have to specify a locator dictionary for components that we’re going to work together with. You are able to do this within the following method:
Please be aware the selectors used for finding the weather; you need to use numerous out-of-the-box strategies for finding components in Protractor, which have been extensively described within the official Protractor Information (hyperlink)
The identical goes for strategies used to work together with components:
(PS. Don’t retailer your login credentials within the check automation code… The above is only for demonstration functions)
What occurs above is that we’re implementing strategies that we’ve known as in /steps/registration.js file, utilizing the weather we’ve put within the locator dictionary (highlighted in gentle blue) and interacting with them utilizing Protractor strategies (highlighted in purple).
Then it’s time to run the assessments. In VS Code, open a brand new terminal window and hit the “net driver-manager begin” command. Webdriver needs to be up and operating now.
To run the check you’ve written and tagged accordingly, all you’ll want to do now’s it’s important to open one other new terminal window in VS Code and enter the command:
protractor protractor.conf.js –cucumberOpts.tags=’@smoke1′ – tagging the specified function accordingly.
And there you might have it! Now you might have a prepared, arrange Protractor testing framework built-in with Cucumber, Web page Object Mannequin which you’ll run with the assistance of tags. If you wish to discover out extra about Protractor, I encourage you to go to the Protractor web site, which incorporates complete documentation with code examples right here.