Giter VIP home page Giter VIP logo

vardot / varbase-behat Goto Github PK

View Code? Open in Web Editor NEW
3.0 5.0 0.0 77.87 MB

Varbase Behat is a standalone testing framework, with a set of Gherkin Features and custom Varbase Context with custom step definitions, and assets, which help with the automatic testing for Varbase websites

Home Page: https://www.vardot.com

PHP 43.95% Gherkin 56.05%
varbase vardot behat behat3 gherkin functional-testing automated

varbase-behat's Introduction

Varbase Behat

Varbase Behat is a standalone testing framework, with a set of Gherkin Features and custom Varbase Context with custom step definitions, and assets, which help with the automatic testing for Varbase websites https://www.vardot.com

This page can help you to have all steps, which you need to run the Behat Gherkin Features to test a varbase website in your localhost machine.

Predefined request, you will need to have a running Varbase website:

After that you can go through the following steps.


  1. If you have a Varbase testing site at this location
/var/www/html/testing/docroot

  1. Download the latest Behat package from https://github.com/Vardot/varbase-behat repository, and place it in the folder as below.
/var/www/html/testing/behat

  1. Change the base url value in behat.varbase.yml file, to the domain or the local virtual domain.
  base_url:  'http://localhost/testing/docroot'

  1. Go to ../behat/ Then run the following commands to install all required packages, Libraries from vendors.
$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar install

  1. Open a new terminal window then start selenium2 at the port 4445. You can change the worker selenium robot server and the port number by changing the parameter.
    "wd_host: 127.0.0.1:4445/wd/hub"

in the behat.varbase.yml file. or you can get the selenium stand alone server from http://www.seleniumhq.org/download/ then you could run this command in the same location in the terminal

$ java -jar selenium-*.jar -port 4445

You can Install and configure selenium server to run on the selenium worker server by using our command.

$ sh ./tools/install-selenium-server/install-selenium-server-2.53.1.sh

  1. Run the behat command at ../behat/
$ bin/behat features/varbase/step2-apply-tests/01-website-base-requirements_user-registration_only-admins-login_v4-0.feature

================================================================================

Feature: Website Base Requirements - User Registration - Only admins login
As an anonymous user
I will not be able to register as a user in the website
So that I will need a site admin or super admin to add me to the website

  Background: 
    Given I am an anonymous user
  
  @local @development @staging @production 
  Scenario: Check that create new account options does not appear for anonymous users.
     When I go to "/user"
      And I wait
     Then I should not see "Create new account"
  
  @local @development @staging @production
  Scenario: Check that only admin can create an account.
     When I go to "/user/register"
      And I wait
     Then I should see "Access denied"
  
  @local @development @staging @production
  Scenario: Verify that anonymous users cannot access admin pages.
     When I go to "/admin"
      And I wait
     Then I should see "Access denied"

3 scenarios (3 passed)
9 steps (9 passed)
0m2.21s (59.89Mb)

================================================================================


  1. Run this command with the .feature file to run the Gherkin Script in it to the installed site.
$ bin/behat features/varbase/your-gherkin-feature.feature
$ bin/behat features/project-name/your-gherkin-feature.feature

  1. Run this command to print all available step definitions
$ bin/behat -di
- use -dl to just list definition expressions.
- use -di to show definitions with extended info.
- use -d 'needle' to find specific definitions.

All Varbase custom step definitions are tagged with #varbase tag.

Example : after a run for bin/behat -di command.

  default | Then /^I should see image with the "([^"]*)" title text$/
          | #varbase : To Find an image with the title text attribute.
          | Example 1: Then I should see image with the "Flag Earth" title text
          | at `VarbaseContext::iShouldSeeImageWithTheTitleText()`

  default | Then /^I should see image with the "([^"]*)" alt text$/
          | #varbase : To Find an image with the alt text attribute.
          | Example 1: Then I should see image with the "Flag Earth" alt text
          | at `VarbaseContext::iShouldSeeImageWithTheAltText()`

================================================================================

Scenarios are tagged with the Behat tags of:

  • @local = Local

  • @development = Development server.

  • @staging = Staging and testing server.

  • @production = Production live server.

    So that we only run bin/behat --tags with the right tag for the environment.

    Example: ================================================================================

    $ bin/behat --tags '@development' features/varbase/
Which it will run Scenarios which has got the @development tag.

================================================================================

    $ bin/behat --tags '@staging' features/varbase/
Which it will run Scenarios which has got the @staging tag.

================================================================================

    $ bin/behat --tags '@production' features/varbase/
Which it will run Scenarios which has got the @production tag.

================================================================================

  1. To see the report in HTML. Go and open this file in a browser. ../behat/reports/index.html You will see the latest report for latest run.

    if you want to custom a report you can add --format pretty --out std --format html --out reports/report-$( date '+%Y-%m-%d_%H-%M-%S' )

    to format and select your output.

    Example:

    $ bin/behat features/example.feature --format pretty --out std --format html --out reports/report-$( date '+%Y-%m-%d_%H-%M-%S' )
  1. If you want to run all Gherkin Features over a new Varbase site. You will need to create the list of Testing users, and Add French, and Arabic languages to the site.


    You can run the following command:

    $ bin/behat features/varbase/ --format pretty --out std  --format html  --out reports/report-$( date '+%Y-%m-%d_%H-%M-%S' )
After that you can see the report in the ../behat/reports folder.

If you want to run the test in steps, if you are not interested in the
initialization and cleaning up after the test.
    $ bin/behat features/varbase/step1-init-tests
    $ bin/behat features/varbase/step2-apply-tests
    $ bin/behat features/varbase/step3-cleanup-tests
  1. If you want to test the installation process feature, you will need to use the varbase Install config file, as you can see in the following command.
   $ bin/behat --config=behat.varbase-install.yml tools/install-varbase/default-installation.feature

varbase-behat's People

Contributors

moerazem avatar natshah avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.