Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ Microsoft AZ-900
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Personal Development Mindfulness Personal Transformation Meditation Life Purpose Coaching Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Retargeting
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Analysis Data Modeling Data Science
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Freelancing Blogging Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ Unreal Engine Blueprints 2D Game Development Blender
30-Day Money-Back Guarantee

This course includes:

  • 13.5 hours on-demand video
  • 14 articles
  • 5 downloadable resources
  • 7 coding exercises
  • Full lifetime access
  • Access on mobile and TV
Development Software Testing Python

Automated Software Testing with Python

Learn about automated software testing with Python, BDD, Selenium WebDriver, and Postman, focusing on web applications
Rating: 4.5 out of 54.5 (3,019 ratings)
20,364 students
Created by Jose Salvatierra, Teclado by Jose Salvatierra
Last updated 11/2019
English
English [Auto], French [Auto], 
30-Day Money-Back Guarantee

What you'll learn

  • Everything you need to know about automated software testing with Python (and how to enjoy testing, too!)
  • Common pitfalls and best practices when writing automated tests
  • How to write complete system tests using Python and tools like Postman
  • Automate your application testing by setting up a continuous integration pipeline using Travis CI
  • Browser-based acceptance testing using Behave and Selenium WebDriver
Curated for the Udemy for Business collection

Course content

11 sections • 141 lectures • 13h 30m total length

  • How to take this course
    00:45
  • A self-assessment
    00:14
  • Installing Python and PyCharm on Windows
    00:24
  • Installing Python and PyCharm on OS X
    00:20

  • Preview01:01
  • Access the code for this section here
    00:24
  • Preview08:26
  • Variables
    1 question
  • Solution to coding exercise: Variables
    02:00
  • String formatting in Python
    06:26
  • Getting user input
    05:16
  • Writing our first Python app
    03:19
  • Lists, tuples, and sets
    Preview06:31
  • Advanced set operations
    04:39
  • Lists, tuples, and sets
    1 question
  • Solution to coding exercise: lists, tuples, sets
    04:40
  • Booleans in Python
    04:59
  • If statements
    08:17
  • The 'in' keyword in Python
    02:02
  • If statements with the 'in' keyword
    08:18
  • Loops in Python
    11:07
  • Flow control—loops and ifs
    1 question
  • Solution to coding exercise: flow control
    03:08
  • List comprehensions in Python
    07:24
  • Dictionaries
    08:31
  • Destructuring variables
    08:28
  • Functions in Python
    10:41
  • Function arguments and parameters
    07:40
  • Default parameter values
    03:54
  • Functions returning values
    07:19
  • Functions
    1 question
  • Solution to coding exercise: Functions
    02:30
  • Lambda functions in Python
    07:52
  • Dictionary comprehensions
    04:01
  • Dictionaries and students
    1 question
  • Solution to coding exercise: dictionaries
    06:16
  • Unpacking arguments
    10:24
  • Unpacking keyword arguments
    08:44
  • Object-Oriented Programming in Python
    15:52
  • Magic methods: __str__ and __repr__
    06:25
  • Classes and objects
    1 question
  • Solution to coding exercise: classes and objects
    05:04
  • @classmethod and @staticmethod
    14:03
  • @classmethod and @staticmethod
    1 question
  • Solution to coding exercise: @classmethod and @staticmethod
    05:54
  • Class inheritance
    08:32
  • Class composition
    06:08
  • Type hinting in Python 3.5+
    05:08
  • Imports in Python
    09:33
  • Relative imports in Python
    08:52
  • Errors in Python
    12:47
  • Custom error classes
    05:04
  • First-class functions
    07:52
  • Simple decorators in Python
    07:12
  • The 'at' syntax for decorators
    03:33
  • Decorating functions with parameters
    02:24
  • Decorators with parameters
    04:50
  • Mutability in Python
    06:03
  • Mutable default parameters (and why they're a bad idea)
    04:27
  • Conclusion of this section
    00:37

  • Introduction to this section
    00:24
  • Access the code for this section here
    00:25
  • Setting up our project
    06:42
  • Writing our first test
    Preview11:09
  • Testing dictionary equivalence
    05:25
  • Writing blog tests and PyCharm run configurations
    06:43
  • The __repr__ method, and intro to TDD
    08:48
  • Integration tests and finishing the blog
    11:57
  • Mocking, patching, and system tests
    16:37
  • Patching the input method and returning values
    07:29
  • Taking our patching further
    16:03
  • The last few patches!
    07:07
  • The TestCase setUp method
    04:36
  • Conclusion of this section
    00:27

  • Introduction to this section
    00:26
  • Access the code for this section here
    00:25
  • Setting our project up
    04:38
  • Creating our Flask app
    06:50
  • Our first System test
    09:56
  • Refactoring our System Tests
    06:32
  • Conclusion of this section
    00:33

  • Introduction to this section
    00:35
  • Access the code for this section here
    00:30
  • A look at a REST API with Flask
    18:18
  • Unit testing a REST API
    Preview08:15
  • Setting up our generic BaseTest
    09:36
  • Integration testing a REST API
    06:47
  • Conclusion of this section
    00:25

  • Introduction to this section
    00:20
  • Access the code for this section here
    00:30
  • Setting up our project
    08:45
  • Testing foreign key constraints with Python
    05:25
  • Unit testing models and SQLAlchemy mappers
    11:03
  • Finishing our Store tests
    11:38
  • Conclusion of this section
    00:24

  • Introduction to this section
    00:28
  • Access the code for this section here
    00:26
  • Setting project up and creating User model
    03:58
  • Allowing users to log in
    04:10
  • Writing our User tests
    04:14
  • The setUpClass method in the BaseTest
    04:59
  • Testing user registration
    06:41
  • Finalising user System tests
    07:31
  • Writing Store System tests
    13:35
  • Writing our Item System tests and testing authentication
    22:35
  • Conclusion of this section
    00:26

  • Introduction to this section
    00:40
  • Access the code and Postman files here
    00:22
  • Introduction to Postman
    09:01
  • Our first Posman tests
    05:50
  • Setting and clearing environment variables in Postman
    07:04
  • Running a test folder in Postman
    07:53
  • Advanced PyCharm run configurations
    06:08
  • Installing Node and Newman
    04:43
  • Multirun in PyCharm—Running app and tests together
    03:01
  • Conclusion of this section
    00:36

  • Introduction to this section
    00:38
  • The code for this section
    00:13
  • Installing Git
    04:12
  • What is a Git repository?
    05:27
  • A local Git workflow
    04:31
  • GitHub and remote repositories
    05:17
  • Adding our project to GitHub
    04:51
  • What is Travis CI?
    02:29
  • Adding our repository to Travis
    01:38
  • The Travis config file and running tests
    10:33
  • Adding our test badge to the Readme
    02:47
  • Conclusion of this section
    00:38

  • Introduction to this section
    00:40
  • What is acceptance testing?
    05:08
  • Introduction to our project
    03:10
  • Our first acceptance test step
    10:46
  • Getting the Chrome webdriver
    03:38
  • Verifying everything works
    05:44
  • Finishing our first test
    14:51
  • Re-using steps with the regular expression matcher
    04:00
  • Our first content test
    09:18
  • Page locators and models
    18:36
  • The blog page
    07:30
  • Using pages in navigation
    06:45
  • Don't over-generalise tests!
    02:25
  • Waits and timeouts with Selenium
    07:33
  • Debugging acceptance tests in PyCharm
    03:32
  • Our final complex scenario
    02:46
  • Filling in forms with Selenium
    13:01
  • Access the final code of this section here
    00:07
  • Conclusion of this section
    00:41

Requirements

  • We'll give you a complete Python refresher, but some previous knowledge of programming will be helpful
  • Some knowledge of how web applications work
  • Understanding of REST APIs will be helpful, but not required

Description

Welcome to the most comprehensive course on Automated Software Testing with Python on Udemy.

Testing automation doesn't have to be painful. Software testing is an essential skill for any developer, and I'm here to help you truly understand all types of test automation with Python.

I'm Jose, a software engineer and founder of Teclado. The focus of this course is on testing for the web—we'll be working with REST APIs and web applications, and technologies such as unittest, Postman, and Selenium WebDriver.

Fear not though, after going through this course, you'll be able to take your new testing knowledge and apply it to any project, even non-web projects!

What will you work with?

This course is jam-packed with all the latest technologies for you to use professionally and in personal projects:

  • The unittest library, Python's standard automated software testing library;

  • Mocking and patching, two essential tools to reduce dependencies when testing;

  • unit, integration, system, and acceptance testing—all types of testing to have you fully covered;

  • Postman for easy collaboration and testing while developing;

  • Selenium WebDriver for automated browser tests;

  • Git and Travis for continuous integration of your project.

Fundamental Software Testing Skills

We will cover every fundamental software testing skill that you need to know in order to get a job testing or to apply these skills in your existing projects.

From things like mocking and patching using the unittest library, which reduce dependencies and turn complex tests to simple ones; to looking at all types of testing: simple unit tests to large system tests and even customer acceptance tests.

The Testing Pyramid

The Testing Pyramid says you should have a lot of unit tests, slightly fewer integration tests, even fewer system tests, and as few acceptance tests as possible.

Throughout the course we work on this concept, making sure that we have full coverage of every component of our system with unit tests. Then we test the dependencies using integration tests. Finally, we cover the entire system and its assumptions using system tests. Of course, we'll also look at what acceptance testing is, how we come up with acceptance tests, and some of the best ways to write acceptance tests for a web application using Behavior-Driven Development and Selenium WebDriver.

Automated Browser Testing with Selenium WebDriver

Selenium WebDriver is extremely powerful, particularly when coupled with the efficient and tried-and-tested approach recommended in this course. We'll design our acceptance tests professionally—just the way you'd do at a software testing job. We'll use page models, locators, and step definitions to structure the automated tests in a reusable way. The customers will be able to come up with acceptance tests that you can easily translate to code.

We'll also learn about implicit and explicit waits with Selenium WebDriver and Python, a key concept to speed up the runtime of your acceptance tests.

Continuous Integration

We also cover how you can take automated testing much further in your projects.

By implementing a Continuous Integration pipeline that runs your tests whenever you make any changes, you'll have much higher quality in your projects and not let any pesky bugs pass you by. We'll look at putting our projects in GitHub and liking the CI pipeline with them.

I'm really excited to guide you through this course!

Join me in this automated testing journey. I'll see you on the inside!

Who this course is for:

  • Advanced students who want to learn about testing their Python applications to build more complete solutions
  • Professionals wanting to learn more about automated software testing in their workplace
  • Automated software testers and software developers

Featured review

Regina Gurung
Regina Gurung
84 courses
19 reviews
Rating: 4.5 out of 5a year ago
Although my newman part didn't work from PyCharm, I learnt a lot from this course. I did have to fix some of the Selenium bit as well but this was because I was using a different version of chromedriver and Python3.7. Good course and I would recommend it.

Instructors

Jose Salvatierra
Founder of Teclado and Software Engineer
Jose Salvatierra
  • 4.6 Instructor Rating
  • 39,673 Reviews
  • 176,545 Students
  • 9 Courses

Hi, I'm Jose! I love helping students learn to code and master software development. I've been teaching online for over 7 years, and I founded Teclado to bring software development to everyone—my objective is for you to truly understand everything that goes on behind the scenes.

Coding is extremely rewarding. As you learn, things start to click and make sense. You can join the dots of all the things that weren't quite clear before. I'm here to make that journey quick and painless!

I can help you with Python and JavaScript issues, particularly in web and backend development. I'm experienced with programming libraries and frameworks like Flask, React, React Native, and AngularJS. I've worked extensively with UNIX systems, MongoDB, PostgreSQL, and advanced system architecture design.

Teclado by Jose Salvatierra
Software Development For Everyone
Teclado by Jose Salvatierra
  • 4.6 Instructor Rating
  • 39,673 Reviews
  • 173,850 Students
  • 9 Courses

Teclado was founded by best-selling instructor Jose Salvatierra to bring software development to everyone. We create and develop great, informative, and fun courses for you to advance your career and acquire new skills.

Excellent quality, superb student support, and on-demand topics mark our courses. We hope to see you on the inside!

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.