Wednesday, September 30, 2015

Protractor : What is Protractor?

Protractor is an AngularJS end to end (EtoE) testing framework used in automating AngularJS application. It has been introduced from AngularJS 1.2. It is a replacement of EtoE test framework ngScenario.

Features:

  • Protractor is built on top of WebDriverJS, which uses native events and browser-specific drivers to interact with the application.
  • Protractor supports Angular-specific locator strategies. It helps to locate angular specific element.
  • There is no need to add any wait or sleep statement. Protractor can automatically handle page loading time and waits for next steps until the present steps task is finished.
  • Protractor is a Node.js program built on top of WebDriverJS and Selenium Server.
  • It allows running test on remote addressed but need not to have the test file on server.
  • It has its own test runner.
  • It can use Jasmine or Mocha to run test suites.
  • It supports Cucumber test frameworks.
  • Protractor works in conjunction with Selenium to provide an automated test infrastructure that can simulate a user’s interaction with an Angular application running in a browser or mobile device.

In our next post we will show on how we can install protractor and run a protractor test on our machine.

Happy End to End testing with Protractor!!!

Monday, August 31, 2015

Gatling : How to perform a simple load testing using Gatling

Gatling is a load and stress testing tool with high performance based on Scala. In our previous post we have discussed on Gatling and things to know to work with Gatling. In our last post we have shown on how to install and run Gatling and its folder structure. Now we will discuss on how we can conduct a simple load test using Gatling.

We will do load testing on the following test case.

  1. Open the Browser and go to the site : http://www.bing.com/
  2. Enter the text “Gatling” at search text box
  3. Click Search button and Gatling related page with link is displayed
  4. Click on the link text “Gatling - Official Site”.

In Gatling, we call this test cases as scenario that needs to test load and stress. Scenario is the real user activity on the application.

Step 1 : Configure Browser

In order to record our scenario using Gatling, we need to configure our browser proxy settings at first. The following steps will show you how to configure chrome browser for Gatling recording.

  • Open the Chrome Browser.
  • Click on Customize and control Google chrome button located at top right corner. A drop down menu is displayed.

    image

    • Click on Settings option

    image

    • Settings page is displayed.
    • Scroll down to the bottom of the page and click on Show Advanced Settings link to expand the page.

    image

    • Click on Change Proxy Settings…

    image

    • Internet Properties window is displayed and click on Connections tab.
    • Click on LAN Settings button.

    image

      • LAN Settings window is displayed
      • Uncheck “Automatically detect settings”
      • Check the “Use the proxy server for your LAN” options
      • Type address as “localhost” and port as “8080”
      • Click OK button of the LAN Settings window

      image

      • Click OK button of Internet Options window
      • Close the browser window.

    In case of other browsers almost same steps can be followed. For more details you can see one of my post on browser proxy settings.

    Step 2 : Recording the Scenario

    • Go to the bin folder (in my case : C:\gatling-charts-highcharts-bundle-2.1.7\bin) of Gatling bundle.

    • Double click on the “recorder.bat” file.

    image

    • A command prompt window is displayed.

    image

    • Recorder window is displayed.

    image

    • Enter the port number in the local host box ( In my case 8080).
    • Enter Package name as “search”
    • Enter class name as “BingSearch”.
    • Check “Follow Redirects”, “Infer HTML resources”, “Remove Cache Headers” and “Automatic Referrers” options.
    • Select the output files path. In my case (C:\gatling-charts-highcharts-bundle-2.1.7\user-files\simulations). Note that it is good to select simulation folders by default so that user does not need to copy the recorder file at the time of load testing.
    • Keep all the other options same. Don’t change any existing options.
    • Click on Start button.

    image

    • Open Google chrome browser.
    • Go to the URL : http://www.bing.com/
    • Enter the text “Gatling” at search text box
    • Click Search button.

    image

    • Gatling related page with link is displayed
    • Click on the link text “Gatling - Official Site”.

    image

    • Close the browser.
    • Click on “Stop & save” button and Gatling recorder window is closed.

    image

    • Recorder file named “BingSearch.scala” is saved created and saved to “C:\gatling-charts-highcharts-bundle-2.1.7\user-files\simulations\search” directory.

    Note that file name is the class name with extension .scala and it is located at folder named “search” that is same as the package name that we entered at the recorder window. This folder structure should be followed for load testing.

    image

    • If we open the scala file by notepad++ it displays script using Scala programming language. We will discuss more on scala script in our future post.
    • We can configure user through this script. By default it sets load for single user. It has setUp() method to configure user.

    image

    In our future post we will show how we can modify the script to configure different load.

    Step 3 : Executing load testing using Gatling

    • Go to the bin folder (in my case : C:\gatling-charts-highcharts-bundle-2.1.7\bin)
    • Double click on the “gatling.bat” file.

      image

    • A command prompt window is displayed and then load testing instructions are displayed on the command prompt window. In our case, it shows the test name as “BingSearch.scala” at the command prompt. And the command prompt displays the series of instructions.
    • Command prompt window look like the following now.

    image

    • Since there is only one simulation file default simulation id is “bingsearch”. So enter this name and press Enter key.

    image

    • After pressing Enter key from keyboard, this window look like the following. It ask for optional run description.

    image

    • Most of the cases run description will be the objective or title of the test cases. Number of users and nature of load. It is mean that anybody can understand about the goal of the load test to read this description.
    • In my case, “Search a word by Bing. Number of User : 1”. Press Enter key.

    image

    • After pressing Enter key simulation starts.

    image

    • After finishing simulation it displays the result link that generate report in HRML format.

    image

    • Copy the report path and press enter key to close the command prompt window.
    • Go to the result path (In my case : C:\gatling-charts-highcharts-bundle-2.1.7\results\bingsearch-1441322261378) and it shows the sets of html file.

    image

    • Double click index.html file to open the report and it opens the report in chrome browser.

    image

    We will discuss details on report feature in our future post.

    Happy Load testing using Gatling!!!…

    Cypress: How to handle browser-based authentication pop up dialog in Cypress

    Five years ago I have written a blog on how to handle browser-based authentication for selenium webdriver.   Now it is for cypress. Cypress...