Automated Software Testing with Python

Learn about automated software testing with Python, BDD, Selenium WebDriver, and Postman, focusing on web applications

  • Jose Salvatierra
  • 4.53
  • (4212 reviews)
  • 13.5 hrs
  • 143 lectures
  • Udemy
Automated Software Testing with Python

What you will learn?

  • Everything you need to know about automated software testing with Python (and how to enjoy testing, too!)
  • Avoid common pitfalls and implement best practices when writing automated tests
  • 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

Your trainer

Jose Salvatierra

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.

143 lessons

Easy to follow lectures and videos covering subject details.

13.5 hours

This course includes hours of video material. Watch on-demand, anytime, anywhere.

Certificate of Completion

You will earn a Certificate of Completion at the end of this course.

Course curriculum

  • How to take this course00:45
  • A self-assessment00:14
  • Installing Python and PyCharm on Windows00:24
  • Installing Python and PyCharm on OS X00:20
  • Introduction to this section01:01
  • Access the code for this section here00:24
  • Variables in Python08:26
  • Variables1 question
  • Solution to coding exercise: Variables02:00
  • String formatting in Python06:26
  • Getting user input05:16
  • Writing our first Python app03:19
  • Lists, tuples, and sets06:31
  • Advanced set operations04:39
  • Lists, tuples, and sets1 question
  • Solution to coding exercise: lists, tuples, sets04:40
  • Booleans in Python04:59
  • If statements08:17
  • The 'in' keyword in Python02:02
  • If statements with the 'in' keyword08:18
  • Loops in Python11:07
  • Flow control—loops and ifs1 question
  • Solution to coding exercise: flow control03:08
  • List comprehensions in Python07:24
  • Dictionaries08:31
  • Destructuring variables08:28
  • Functions in Python10:41
  • Function arguments and parameters07:40
  • Default parameter values03:54
  • Functions returning values07:19
  • Functions1 question
  • Solution to coding exercise: Functions02:30
  • Lambda functions in Python07:52
  • Dictionary comprehensions04:01
  • Dictionaries and students1 question
  • Solution to coding exercise: dictionaries06:16
  • Unpacking arguments10:24
  • Unpacking keyword arguments08:44
  • Object-Oriented Programming in Python15:52
  • Magic methods: __str__ and __repr__06:25
  • Classes and objects1 question
  • Solution to coding exercise: classes and objects05:04
  • @classmethod and @staticmethod14:03
  • @classmethod and @staticmethod1 question
  • Solution to coding exercise: @classmethod and @staticmethod05:54
  • Class inheritance08:32
  • Class composition06:08
  • Type hinting in Python 3.5+05:08
  • Imports in Python09:33
  • Relative imports in Python08:52
  • Errors in Python12:47
  • Custom error classes05:04
  • First-class functions07:52
  • Simple decorators in Python07:12
  • The 'at' syntax for decorators03:33
  • Decorating functions with parameters02:24
  • Decorators with parameters04:50
  • Mutability in Python06:03
  • Mutable default parameters (and why they're a bad idea)04:27
  • Conclusion of this section00:37
  • Introduction to this section00:24
  • Access the code for this section here00:25
  • Setting up our project06:42
  • Important: the naming of test files00:29
  • Writing our first test11:09
  • Testing dictionary equivalence05:25
  • Writing blog tests and PyCharm run configurations06:43
  • The __repr__ method, and intro to TDD08:48
  • Integration tests and finishing the blog11:57
  • Mocking, patching, and system tests16:37
  • Patching the input method and returning values07:29
  • Taking our patching further16:03
  • The last few patches!07:07
  • The TestCase setUp method04:36
  • Conclusion of this section00:27
  • Introduction to this section00:26
  • Access the code for this section here00:25
  • Setting our project up04:38
  • Creating our Flask app06:50
  • Our first System test09:56
  • Refactoring our System Tests06:32
  • Conclusion of this section00:33
  • Introduction to this section00:35
  • Access the code for this section here00:30
  • A look at a REST API with Flask18:18
  • Unit testing a REST API08:15
  • Setting up our generic BaseTest09:36
  • Integration testing a REST API06:47
  • Conclusion of this section00:25
  • Introduction to this section00:20
  • Access the code for this section here00:30
  • Setting up our project08:45
  • Testing foreign key constraints with Python05:25
  • Unit testing models and SQLAlchemy mappers11:03
  • Finishing our Store tests11:38
  • Conclusion of this section00:24
  • Introduction to this section00:28
  • Access the code for this section here00:26
  • Setting project up and creating User model03:58
  • Change to the next lecture's code00:26
  • Allowing users to log in04:10
  • Writing our User tests04:14
  • The setUpClass method in the BaseTest04:59
  • Testing user registration06:41
  • Finalising user System tests07:31
  • Writing Store System tests13:35
  • Writing our Item System tests and testing authentication22:35
  • Conclusion of this section00:26
  • Introduction to this section00:40
  • Access the code and Postman files here00:22
  • Introduction to Postman09:01
  • Our first Posman tests05:50
  • Setting and clearing environment variables in Postman07:04
  • Running a test folder in Postman07:53
  • Advanced PyCharm run configurations06:08
  • Installing Node and Newman04:43
  • Multirun in PyCharm—Running app and tests together03:01
  • Conclusion of this section00:36
  • Introduction to this section00:38
  • The code for this section00:13
  • Installing Git04:12
  • What is a Git repository?05:27
  • A local Git workflow04:31
  • GitHub and remote repositories05:17
  • Adding our project to GitHub04:51
  • What is Travis CI?02:29
  • Adding our repository to Travis01:38
  • The Travis config file and running tests10:33
  • Adding our test badge to the Readme02:47
  • Conclusion of this section00:38
  • Introduction to this section00:40
  • What is acceptance testing?05:08
  • Introduction to our project03:10
  • Our first acceptance test step10:46
  • Getting the Chrome webdriver03:38
  • Verifying everything works05:44
  • Finishing our first test14:51
  • Re-using steps with the regular expression matcher04:00
  • Our first content test09:18
  • Page locators and models18:36
  • The blog page07:30
  • Using pages in navigation06:45
  • Don't over-generalise tests!02:25
  • Waits and timeouts with Selenium07:33
  • Debugging acceptance tests in PyCharm03:32
  • Our final complex scenario02:46
  • Filling in forms with Selenium13:01
  • Access the final code of this section here00:07
  • Conclusion of this section00:41
  • Bonus lecture: other courses and next steps00:47
Online Courses

Learning Python doesn't have to be hard. Here is our curated list of recommended online courses that will guide you step-by-step in the learning process.

Learn more
Books

Are you an avid book reader? Do you prefer paperback, or maybe Kindle version? Take a look at our curated list of Python related books and take yourskills to the next level.

Learn more
YouTube videos

The number of high-quality and free Python video tutorials is growing fast. Check this curated list of recommended videos - there is no excuse to stop learning.

Learn more