BDD with Python (Cucumber/Gherkin for Python)
4.1 (64 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
876 students enrolled
Wishlisted Wishlist

Please confirm that you want to add BDD with Python (Cucumber/Gherkin for Python) to your Wishlist.

Add to Wishlist

BDD with Python (Cucumber/Gherkin for Python)

Learn to write BDD style test automation with Python and Behave!!
4.1 (64 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
876 students enrolled
Created by Admas Kinfu
Last updated 8/2017
Curiosity Sale
Current price: $10 Original price: $35 Discount: 71% off
30-Day Money-Back Guarantee
  • 4 hours on-demand video
  • 8 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Understand what BDD style testing is
  • Be able to write automated BDD tests using Python
  • Set up BDD testing framework
View Curriculum
  • Understand basic Python
  • Understand what Automated testing is

Course Description

Learn how BDD (Behavioral Driven Development/Test Driven Development) testing frameworks work. Learn how the pieces fall together and how frameworks are put together, as well as best practices of BDD. We will use the most popular and actively maintained framework for Python BDD called 'Behave'. We will use PowerPoint presentation to convey the concepts on each topic and then write example code testing real scenarios.

Critical addition to your resume

If you are getting into the QA world or you are looking to advance your career, having BDD testing skill will accelerate your success. Python is one of the most popular languages to use in software testing, and knowing how to use it with BDD style testing will expand your pool of possibilities.

In addition to using Python for BDD testing you will also get tips and guidance on best practices.

After completion of this course you will be able to go through interview as if you have BDD testing experience. You will also have a ready to go framework that you can continue to add test cases for practice and for your portfolio.

Content and Overview

In this course we will be using PowerPoint presentation to explain the concepts and then go to code in an IDE for each topic. Some topics we will go directly to code and start writing and executing.

We will install necessary packages for our framework. We will discuss the directory structure needed for our design, and then we will write and run test cases.

We will run how the BDD tests are written, how the work together and how to understand and control the output.

We will create a efficiently structured test framework and learn how to use Pythons logging module to produce readable reports.

What am I going to get from this course?

  • 35 + lectures (continuously adding more examples)
  • Plenty of test cases to use in your portfolio and to build bigger test suits on top of
  • Enough material and examples to be able to create a project and maintain a GitHub repo
  • Specific features of the most popular BDD framework for Python called Behave

Who is the target audience?
  • Anyone looking to learn automation testing and has a bit of background in Python
  • Anyone that already know basic automated testing and want to know how to apply BDD
  • Student with no exposure to Python should not take this course
Students Who Viewed This Course Also Viewed
Curriculum For This Course
34 Lectures
3 Lectures 15:08
Introduction of the course. I will talk about what this course is about, whom it is for and what you expect to get out of it.
Preview 03:34

In this video I will go over the sections of the course and give a quick overview of each.

Content List - Description of sections/lectures of the course

Sections introduce what BDD style is, what the Gherkin scripting language is and what ‘Behave’ framework is.

Introduction to BDD, Gherkin and Behave
4 Lectures 20:34

This section I will demo on how to install Python on your system. If you already have Python installed on your system you can skip this section.

Installing Python

This section I will demo on how to install PyCharm. Which is an IDE for Python. You are free to use any IDE or text editor you prefer. If you already have an editor you like to use, then you can skip this section. Some options other than PyCharm are Notepad++ and Sublime.

Installing Pycharm / IDE

In this lecture I will demo how to install PIP. PIP is tool for Python that enables us install packages very easily. Check if you have pip already installed on your system by typing ‘pip’ in the command line.  If you get some options listed then you have pip. You can skip this section if you already have PIP installed.

Installing PIP

In this lecture I will demo installing Behave and Selenium. We will use ‘pip’ which we have installed in previous lecture. Behave is the BDD framework we will use in this course and Selenium WebDriver is the front-end test automation tool we will use in this course. If you do not have both of these packages installed view this lecture or just install them.

Preview 04:22
BDD Components and Basic Examples
10 Lectures 01:00:00

We will look at a basic directory structure. How to set up our files so that behave will be able to find the test sand run them. We will use PowerPoint slides and discuss the concept.

Folder structure or layout (Discussion)

We will look at creating the structure of our test framework. We will create folders that we will be using for the rest of the course. We will add more folders as needed throughout the course but here we will start with the bare minimum.

Folder structure or layout (Demo/Example)

In this lecture we will get introduced to Feature files. Feature files are one of the major components of BDD style. We will discuss what Feature files look like, what they contain and what they are used for.

Preview 06:04

In this lecture we will get introduced to Steps directory and step definitions. Step directory and step definition files are the second critical components of BDD style. We will discuss what the steps directory is, why we need it, and how it is related to Feature files

Step definition File

This section discusses how to run a single feature file. A feature file tests one feature of an application. There may be multiple feature files in a directory. Behave have option of running all or just one file.

Running 1 file (discussion)

This section demo running of single feature time at a time. We will use the command line tool and run feature files.

Running 1 file (demo)

This section discusses on how to run all feature files in a directory or sub-directory. We have seen how we can run a single feature file and now we see how to run all feature files.

Running all files (discussion)

This section demos running of all feature files in a directory and subcategories. We will use the command line tool to demo.

Running all files (demo)

Discussion and demo off outputting information from the test to stdout. Behave offers few options on how the output should be displayed and we will explore on how to do so in this section.

Displaying Output

Section to discuss and demo the main keywords we have seen already and additional key works that are “But” and 'And'. 

‘Given’, ‘Then’, ‘When’, ‘And’, ‘But’
Passing Parameters to Steps
2 Lectures 19:43

This section is discussion of how to pass values from the steps to the step definitions. The feature file will have hard coded values which then the value will be used in the Python logic. Example, quantity, name of web element, url, ….

Passing Parameters to Steps (discussion)

This section demos passing values from the feature file to the Python logic.

Preview 11:38
Sharing Data Between Steps
2 Lectures 13:19

This section is a discussion of how data can be shared between steps. It is important that data generated in one step should be available in the next step. Example, if user is created in first step then the login step should have access to the user information.

Sharing Data Between Steps (discussion)

In this section I will demo sharing of data between steps using running examples.

Sharing Data Between Steps (demo)
Time for Practical Examples
6 Lectures 01:00:53

This lecture introduces our section of practical examples. Practical examples are when we write real tests that are run against real websites .

Practical Examples Discussion

In this lecture we will see how our project is set up. What our directory structure looks like and what are the bare minimum directories we need for the project

Project Setup Overview

In this lecture we will write and run a test case using BDD for the site.

Test Cases Group 1 Part 1 (

In this lecture we continue to write and run a test case using BDD for the site.

Test Case Group 1 Part 2 (

This lecture covers on how to create our custom config file and why. Config file is used to make maintenance of code a lot easier. Information used in several places can be stored as a config and modifying information will be done only at one location.

Preview 10:52

In this lecture we continue to write another test case for, but this time we will use config file to get a better understanding of why using config files is very efficient.

Test Case Group 3 (more config examples)
Setup and Teardown
2 Lectures 09:50

We will discuss how to do setup and teardown of our environment using behave. Setup and teardown run before and after each feature, scenario, step or more to prepare information for the test and then to destroy or reset information after the test.

Setup and Teardown (discussion)

Scenario Outlines
2 Lectures 15:29
Scenario Outline (discussion)

Scenario Outline (demo)
Using Tags
2 Lectures 17:56
Using Tags (discussion)

Using Tags (demo)
1 Lecture 06:39
About the Instructor
Admas Kinfu
4.2 Average rating
444 Reviews
7,807 Students
4 Courses
QA Automation Engineer

With 9+ years of overall engineering experience I have found my passion in software testing automation and Python has become my favorite tool to work with. I graduated with a MS degree in Mechanical Engineering from San Jose State University, and got into the IT field of software testing automation after graduation. I as much passion for teaching as I do for learning. I hope to help students grow fast and advance in the field of software testing and automation.