Behat sauce
Upcoming SlideShare
Loading in...5
×
 

Behat sauce

on

  • 2,851 views

 

Statistics

Views

Total Views
2,851
Views on SlideShare
2,629
Embed Views
222

Actions

Likes
2
Downloads
33
Comments
0

3 Embeds 222

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

Accessibility

Categories

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.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
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