Protractor tool use for automation tool for angular JS. Cucumber is good framework for Agile methodology
Node should be installed in your machine
Open CMD at root folder where you will add all your code mentioned below in step 4,5
1.... npm install -g protractor
npm install -g cucumber
2.If you are in proxy run below command
Node should be installed in your machine
Open CMD at root folder where you will add all your code mentioned below in step 4,5
1.... npm install -g protractor
npm install -g cucumber
2.If you are in proxy run below command
node ./node_modules/protractor/bin/webdriver-manager --
proxy url update
--versions.standalone "version"--versions.chrome
"version"--ignore_ssl
Otherwise use below command
webdriver- manager update
3.Now start webdriver server,
if you are not in proxy use below command,
webdriver- manager start
4. use below conf.js
var chai = require("chai");
var chaiAsPromised = require("chai-as-promised");
exports.config = {
// The address of a running selenium server.
seleniumAddress: 'http://localhost:4444/wd/hub',
//directConnect: true,
frameworkPath: require.resolve
('protractor-cucumber-framework'),
framework: 'custom',
// setting time outs
getPageTimeOut : 200000,
allScriptsTimeout : 500000,
setDefaultTimeout: (60 * 1000),
// Capabilities to be passed to the
webdriver instance.
capabilities: {
browserName: 'chrome',
//args : '--disable-extensions',
resultJsonOutputFile: 'report.json',
},
specs: [
'Feautures/app.feature'
],
cucumberOpts: {
require: 'Feautures/Step_Definition
/my_step_definitions.js',
//format: ['json:reports/results.json', 'pretty'],
tags: false,
//format: ["node_modules/cucumber-pretty"],
profile: false,
'no-source': true,
strict: true,
'no-colors': true,
},
};
5. use below app.feature (path mentioned in step 5 code)
@regression Feature: first test cases Scenario: Home Screen validation Given As I launch room77 app Then I should see logo Then I should see button
6. use below step definition (path mentioned in step 5 code)
//features/step_definitions/my_step_definitions.js //var {defineSupportCode} = require('cucumber'); var chai = require('chai'); var expect = chai.expect; var chaiAsPromised = require('chai-as-promised'); var {setDefaultTimeout} = require('cucumber'); chai.use(chaiAsPromised); var expect = chai.expect; module.exports = function() { this.Given(/^I go to "([^"]*)"$/, function(site, callback) { // browser.ignoreSynchronization = true; console.log("text is1ww :") browser.get(site); callback(); }); this.When(/^I click$/, function() { browser.ignoreSynchronization = true; console.log("text is1 :") element(by.xpath('//input[@class="gNO89b"]')).click(); }); this.Then(/^I should see button$/, function( callback) { browser.sleep(10000); browser.ignoreSynchronization = true; var el = element(by.xpath('//div/p/input[@class="btn"]')); browser.manage().timeouts().implicitlyWait(2000); el.isPresent().then(function (result) { console.log("Button Exist:" + result); }); callback(); }); this.Given(/^As I launch room77 app$/, function (callback) { browser.get("https://www.room77.com"); // return browser.waitForAngular(); browser.ignoreSynchronization = true; callback(); }); this.Then(/^I should see logo$/, function (callback) { browser.sleep(10000); browser.ignoreSynchronization = true; var el = element(by.xpath('//img[@class="logo"]')); browser.manage().timeouts().implicitlyWait(2000); el.isPresent().then(function (result) { console.log("Logo Exist:" + result); }); callback(); }); };
7. Now run protractor with below command,
protractor conf.js
You will get below result,
Remember to run step 7,
you need to run step 2 and 3 always...
Happy learning :)