.. _id.appendix.more_info:
More Information about Behave
==============================================================================
Tutorials
------------------------------------------------------------------------------
For new users, that want to read, understand and explore the concepts in Gherkin
and `behave`_ (after reading the behave documentation):
* "`Behave by Example `_"
(on `github `_)
The following small tutorials provide an introduction how you use `behave`_
in a specific testing domain:
* Phillip Johnson, `Getting Started with Behavior Testing in Python with Behave`_, 2015-10-15.
* Nicole Harris, `Beginning BDD with Django`_ (part 1 and 2), 2015-03-16.
* TestingBot, `Bdd with Python, Behave and WebDriver`_
* Wayne Witzel III, `Using Behave with Pyramid`_, 2014-01-10.
.. _`Getting Started with Behavior Testing in Python with Behave`: https://semaphoreci.com/community/tutorials/getting-started-with-behavior-testing-in-python-with-behave
.. _`Beginning BDD with Django`: https://whoisnicoleharris.com/2015/03/16/bdd-part-one.html
.. _`Bdd with Python, Behave and WebDriver`: https://testingbot.com/support/getting-started/behave.html
.. _`Using Behave with Pyramid`: https://active6.blogspot.com/2014/01/using-behave-with-pyramid.html
.. warning::
A word of caution if you are new to **"behaviour-driven development" (BDD)**.
In general, you want to avoid "user interface" (UI) details in your
scenarios, because they describe **how something is implemented**
(in this case the UI itself), like:
* ``press this button``
* then ``enter this text into the text field``
* ...
In **BDD** (or testing in general), you should describe **what should be done**
(meaning the intention). This will make your scenarios much more robust
and stable because you can change the underlying implementation of:
* the "system under test" (SUT) or
* the test automation layer, that interacts with the SUT.
without changing the scenarios.
Books
------------------------------------------------------------------------------
`Behave`_ is covered in the following books:
..
[TDD-Python] Harry Percival,
`Test-Driven Web Development with Python`_, O'Reilly, June 2014,
`Appendix E: BDD `_
(covers behave)
.. _`Test-Driven Web Development with Python`: http://chimera.labs.oreilly.com/books/1234000000754
Presentation Videos
------------------------------------------------------------------------------
* Benno Rice: `Making Your Application Behave`_ (30min),
2012-08-12, PyCon Australia.
* Selenium: `First behave python tutorial with selenium`_ (8min), 2015-01-28,
http://www.seleniumframework.com/python-basic/first-behave-gherkin/
* Jessica Ingrasselino: `Automation with Python and Behave`_ (67min), 2015-12-16
* `Selenium Python Webdriver Tutorial - Behave (BDD)`_ (14min), 2016-01-21
* `Front-end integration testing with splinter`_ (30min), 2017-08-05
.. hidden:
PREPARED:
---------------------
.. ifconfig:: not supports_video
* Benno Rice: `Making Your Application Behave`_ (30min),
PyCon Australia, 2012-08-12
* Selenium: `First behave python tutorial with selenium`_ (8min), 2015-01-28,
http://www.seleniumframework.com/python-basic/first-behave-gherkin/
* Jessica Ingrasselino: `Automation with Python and Behave`_ (67min), 2015-12-16
* `Selenium Python Webdriver Tutorial - Behave (BDD)`_ (14min), 2016-01-21
* `Front-end integration testing with splinter`_ (30min), 2017-08-05
.. hint::
Manually install `sphinxcontrib-youtube`_
(from "youtube" subdirectory in sphinx-extensions bundle)
to have embedded videos on this page (when this page is build).
.. ifconfig:: supports_video
Benno Rice: `Making Your Application Behave`_
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:Conference: PyCon Australia
:Date: 2012-08-12
:Duration: 30min
.. youtube:: u8BOKuNkmhg
:width: 600
:height: 400
Selenium: `First behave python tutorial with selenium`_
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:Date: 2015-01-28
:Duration: 8min
.. youtube:: D24_QrGUCFk
:width: 600
:height: 400
RELATED: http://www.seleniumframework.com/python-basic/what-is-python/
Jessica Ingrasselino: `Automation with Python and Behave`_
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:Date: 2015-12-16
:Duration: 67min
.. youtube:: e78c7h6DRDQ
:width: 600
:height: 400
`Selenium Python Webdriver Tutorial - Behave (BDD)`_
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:Date: 2016-01-21
:Duration: 14min
.. youtube:: mextSo0UExc
:width: 600
:height: 400
Nick Coghlan: `Front-end integration testing with splinter`_
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:Date: 2017-08-05
:Duration: 30min
.. youtube:: HY0_RtTUfUg
:width: 600
:height: 400
.. _`Making Your Application Behave`: https://www.youtube.com/watch?v=u8BOKuNkmhg
.. _`First behave python tutorial with selenium`: https://www.youtube.com/watch?v=D24_QrGUCFk
.. _`Automation with Python and Behave`: https://www.youtube.com/watch?v=e78c7h6DRDQ
.. _`Selenium Python Webdriver Tutorial - Behave (BDD)`: https://www.youtube.com/watch?v=mextSo0UExc
.. _`Front-end integration testing with splinter`: https://pyvideo.org/pycon-au-2017/front-end-integration-testing-with-splinter.html
.. _sphinxcontrib-youtube: https://bitbucket.org/birkenfeld/sphinx-contrib
Tool-oriented Tutorials
------------------------------------------------------------------------------
JetBrains PyCharm:
* Blog: `In-Depth Screencast on Testing`_ (2016-04-11; video offset=2:10min)
* Docs: `BDD Testing Framework Support in PyCharm 2016.1
`_
.. _`Getting Started with PyCharm`: https://www.youtube.com/playlist?list=PLQ176FUIyIUZ1mwB-uImQE-gmkwzjNLjP
.. _`PyCharm In-Depth: Testing`: https://youtu.be/nmBbR97Vsv8?list=PLQ176FUIyIUZ1mwB-uImQE-gmkwzjNLjP
.. _`In-Depth Screencast on Testing`: https://blog.jetbrains.com/pycharm/2016/04/in-depth-screencast-on-testing/
Find more Information
------------------------------------------------------------------------------
.. seealso::
* google:`python-behave examples `_
* google:`python-behave tutorials `_
* google:`python-behave videos `_
.. _Behave: https://github.com/behave/behave
.. _behave: https://github.com/behave/behave
.. _Selenium: http://docs.seleniumhq.org/
.. _behave4cmd: https://github.com/behave/behave4cmd
.. _behave-django: https://github.com/behave/behave-django