Behat sauce

  • 2,358 views
Uploaded on

 

More in: Lifestyle , Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,358
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
33
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Automated WebAcceptance Testing with Behat Shashikant Jagtap Twitter : @Shashikant86
  • 2. 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
  • 3. 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)
  • 4. 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/
  • 5. Basic Browser InteractionsSource: http://mink.behat.org/
  • 6. 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;
  • 7. Start Your ProjectNavigate to the project root directory and initialize Behat by running these commands:
  • 8. FeatureContext.php
  • 9. Bootstrap.php Create features->bootstrap->bootstrap.php and include mink and all other third party libraries in it. Include bootstrap.php into FeatureContext.php.
  • 10. 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.
  • 11. wikiSearch.feature Now, write sample feature file. This feature file good example of data-driven tests.
  • 12. Get code for Step Definitions Now, you are ready to run behat command again. This will give you example code for undefined steps
  • 13. Implement Step definitions Now, copy example code and paste it in FeatureContext.php Use Mink APIs to implement steps like this
  • 14. Start your engine Download Selenium from http://seleniumhq.org/download/ Run Selenium server using command $java -jar selenium-server-standalone-2.15.0.jar
  • 15. Watch your Test running Now run behat again and watch your test running in browser.
  • 16. Watch Your Test Passed
  • 17. 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.
  • 18. 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.
  • 19. 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
  • 20. 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
  • 21. Relish You can find our feature on Relish here https://www.relishapp.com/sjagtap/acne/docs/wikisearch
  • 22. 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.
  • 23. Directory Structure Once you cloned project, You will have following files in the project, directory structure looks like this
  • 24. 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)
  • 25. Jenkins Configuration
  • 26. Jenkins Configuration Contd..
  • 27. Jenkins Project
  • 28. Jenkins Test Report
  • 29. 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
  • 30. Questions
  • 31. Thank You