• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Behat sauce

Behat sauce






Total Views
Views on SlideShare
Embed Views



3 Embeds 222

http://shashikantjagtap.net 219
http://www.linkedin.com 2
http://paper.li 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    Behat sauce Behat sauce Presentation Transcript

    • Automated WebAcceptance Testing with Behat Shashikant Jagtap Twitter : @Shashikant86
    • Overview Behat : BDD for PHP Mink: Web Acceptance Testing Framework Behat with Sauce Labs for cloud testing Relish for living documentation Building feature with Jenkins Useful Links
    • Behat : BDD for PHP Behat is a BDD framework for PHP applications. http://behat.org/ BDD approach Feature is defined in story format. Domain Specific Language used is Gherkin. Behat is developed by Konstantin Kudryashov (@everzet)
    • Mink Mink is a acceptance test framework for PHP applications http://mink.behat.org/ Mink has different drivers for browser emulation. Bowser emulationcan be headless or with browser controllers.Mink supports both selenium1 driver as well as webdriver. Mink has various APIs that can used to control browser actions.Full list of Mink APIs can found here http://mink.behat.org/api/
    • Basic Browser InteractionsSource: http://mink.behat.org/
    • Installations Behat Installation: Run following commands from your pear channel$ sudo pear channel-discover pear.behat.org$ sudo pear channel-discover pear.symfony.com$ sudo pear install behat/gherkin-beta$ sudo pear install behat/behat-beta Mink Installation$ pear channel-discover pear.symfony.com$ pear channel-discover pear.behat.org$ pear install behat/mink Check Installations$ behat –version Behat version 2.2.0Mink can be used by including following file in PHP classes. require_once mink/autoload.php;
    • Start Your ProjectNavigate to the project root directory and initialize Behat by running these commands:
    • FeatureContext.php
    • Bootstrap.php Create features->bootstrap->bootstrap.php and include mink and all other third party libraries in it. Include bootstrap.php into FeatureContext.php.
    • Behat.yml Create behat.yml. This is configuration file to run features You can specify mink driver, base url and browser of your choice. This file uses selenium driver to run feature.
    • wikiSearch.feature Now, write sample feature file. This feature file good example of data-driven tests.
    • Get code for Step Definitions Now, you are ready to run behat command again. This will give you example code for undefined steps
    • Implement Step definitions Now, copy example code and paste it in FeatureContext.php Use Mink APIs to implement steps like this
    • Start your engine Download Selenium from http://seleniumhq.org/download/ Run Selenium server using command $java -jar selenium-server-standalone-2.15.0.jar
    • Watch your Test running Now run behat again and watch your test running in browser.
    • Watch Your Test Passed
    • Behat with Sauce Labs Sauce Labs is a cloud testing service which allows tests to run in cloud machine with specified browser. http://saucelabs.com/ Behat features can be run on sauce labs by simple configuration We need to create another configuration file to run features on Sauce Labs.
    • Create sauce.yml In order to run feature on Sauce Labs, we need to create sauce.yml as a config file. You need Sauce labs username and API key.
    • Run Feature on Sauce Labs You need to tell behat to pick sauce.yml as config file $behat -c sauce.yml You can watch video this job here: http://snipurl.com/21y5lb6
    • Relish: Living Documentation Relish is cool tool to manage Gherkins feature files online. https://www.relishapp.com/relish/relish/docs Install RelishYou need to have Ruby gems installed on your system. $gem install relish Create Project $relish projects:add projectName# or, if you want a private project: $relish projects:add my-secret-project:private Push your files online $relish push my-best-project moonstar:NewBehat sjagtap$ relish push sjagtap/acne sent: features/wikiSearch.feature
    • Relish You can find our feature on Relish here https://www.relishapp.com/sjagtap/acne/docs/wikisearch
    • Source Code from GitHubGet Sample Source Code available on GitHub https://github.com/Shashi-ibuildings/Behat-SauceClone the repository $ git clone git@github.com:Shashi-ibuildings/Behat-Sauce.git $ cd /path to/Behat-SauceEdit ‘Sauce.yml’ file in order to specify your username and API key. Now, RunANT command to execute feature on sauce Labs $ ant runSauceSee the reports generated in report/report.html file.
    • Directory Structure Once you cloned project, You will have following files in the project, directory structure looks like this
    • Running Features on Jenkins Jenkins is continuous integration server To configure Behat with CI server, we need build.xml file You need to have Jenkins installed on server or localhost- We will Run Jenkins- moonstar:~ sjagtap$ java -jar jenkins-1.war Visit http://localhost:8080/ to see Jenkins Dashboard Create new job called “BehatSauce”. Specify it as Build a free-style software project. Specify Git repository as SCM. Select ‘Invoke Ant’ from ‘Build’ and specify ‘runSauce’ target Specify HTML report path. (You need to have HTML report plugin installed on Jenkins)
    • Jenkins Configuration
    • Jenkins Configuration Contd..
    • Jenkins Project
    • Jenkins Test Report
    • Links Blogpost Adding Sauce To behathttp://saucelabs.com/blog/index.php/2012/01/adding-sauce-to-behat/ Video Demohttp://www.youtube.com/watch?v=Zu9mWuVvsUQ Source Code on GitHub https://github.com/Shashi-ibuildings/Behat-Sauce Relish Documentationhttps://www.relishapp.com/sjagtap/acne My Blogshttp://lestbddphp.wordpress.com/ About Me http://about.me/shashikantjagtap
    • Questions
    • Thank You