Wednesday 12 February 2020

Protractor Cucumber setup

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 ./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 :)


git commands

Pull data- git stash, git pull

created branch in Git-https://github.build.ge.com/OperationalExcellence/OEAutomation/tree/RegressionFixes-OWWAdvisor

folder local- C:\Users\ylondhe\Documents\Dunnes\OEAutomationGit

1.create branch, move to main branch, pull from it, move to new branch, add change and then commit

git clone url- "getting code from branch, url from UI"
git checkout -b branchname        -"new subbranch in branch"
git checkout branch name -"change branch"
git status -"check changes"
git add file name- "add file from local"
git commit -m "message" -"comiting code with message"
git push -"code push to branch"


steps to resolve the merge issue:
                                                1. git checkout branchaName
                                                2. git pull

                                                3. git checkout <ur branch name>
                                                4. git merge origin/branchname
                                                there will be merge issue
                                                which u need to resolve in local
                                                5. git add
                                                6. git commit
                                                commit once all files are done
                                                7. git commit
                                                8. git push


Git creating SSH key


  1. Open Git Bash.
  2. Paste the text below, substituting in your GitHub email address.
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
This creates a new ssh key, using the provided email as a label.
> Generating public/private rsa key pair.
  1. When you're prompted to "Enter a file in which to save the key," press Enter. This accepts the default file location.
> Enter a file in which to save the key (/c/Users/you/.ssh/id_rsa):[Press enter]
  1. At the prompt, type a secure passphrase. For more information, see "Working with SSH key passphrases".
5.  > Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

Before adding a new SSH key to the ssh-agent to manage your keys, you should have checked for existing SSH keys and generated a new SSH key.
If you have GitHub Desktop installed, you can use it to clone repositories and not deal with SSH keys. It also comes with the Git Bash tool, which is the preferred way of running git commands on Windows.
  1. Ensure the ssh-agent is running:
    • If you are using the Git Shell that's installed with GitHub Desktop, the ssh-agent should be running.
    • If you are using another terminal prompt, such as Git for Windows, you can use the "Auto-launching the ssh-agent" instructions in "Working with SSH key passphrases", or start it manually:
o   # start the ssh-agent in the background
o   $ eval $(ssh-agent -s)
> Agent pid 59566
  1. Add your SSH private key to the ssh-agent. If you created your key with a different name, or if you are adding an existing key that has a different name, replace id_rsa in the command with the name of your private key file.
$ ssh-add ~/.ssh/id_rsa

After this just add'
clip < ~/.ssh/id_rsa.pub

n then automatic copy created in windows and just use paste in setting screen
Adding a new SSH key to your GitHub account


Copy the SSH key to your clipboard.
If your SSH key file has a different name than the example code, modify the filename to match your current setup. When copying your key, don't add any newlines or whitespace.
$ clip < ~/.ssh/id_rsa.pub
# Copies the contents of the id_rsa.pub file to your clipboard

Add this in settings of Git from UI.