Booking options
£89.99
£89.99
On-Demand course
12 hours 55 minutes
All levels
Learn about automated software testing with Python, BDD, Selenium WebDriver, and Postman, focusing on web applications
Welcome to the most comprehensive course on automated software testing with Python. Software testing is an essential skill for any developer, and this course will help you truly understand all types of test automation with Python. 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-ranging from operations such as mocking and patching using the unit test library (to reduce dependencies and turn complex tests into simple ones) to looking at all types of testing: simple unit tests to large system tests and even customer acceptance tests. Throughout the course we work on the Testing Pyramid concept, making sure that we have full coverage of every system component with unit tests. Then we test dependencies using integration tests. Finally, we cover the entire system using system tests. Of course, we 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. We also learn about implicit and explicit waits with Selenium WebDriver and Python, a key concept used to speed up the runtime of your acceptance tests. By implementing a Continuous Integration pipeline that runs your tests whenever you make any changes, you'll have much higher project quality so that you don't miss any annoying bugs. We'll look at putting our projects into GitHub and linking with them. All the codes and supporting files for this course are available at: https://github.com/PacktPublishing/Automated-Software-Testing-with-Python
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
Write complete system tests using Python and tools such as Postman
Automate your application testing by setting up a Continuous Integration pipeline using Travis CI
Browser-based acceptance testing using Behave and Selenium WebDriver
This course is designed for students who want to test their Python applications in order to build more complete solutions, professionals keen to learn more about automated software testing in their workplace, automated software testers, and software developers
A complete course packed with step-by-step instructions, working examples, and helpful advice
Learn automated software testing with Python * Learn to write complete system tests using Python and tools such as Postman
https://github.com/packtpublishing/automated-software-testing-with-python
Jose, a passionate educator in the realm of coding and software development, has dedicated over 7 years to teaching online. He founded Teclado with a vision to democratize software development education, striving to ensure comprehensive understanding for his students. His approach makes learning coding a clear, rewarding journey, connecting the dots that once seemed obscure. Specializing in Python and JavaScript, Jose excels in web and backend development. He's proficient in various libraries and frameworks, including Flask, React, React Native, and AngularJS. His expertise extends to working with UNIX systems, MongoDB, PostgreSQL, and crafting advanced system architectures. Jose's commitment is to make the learning process both efficient and enjoyable, guiding students to mastery in software development.
1. Welcome
This section welcomes the course
1. Welcome to the course Welcome: Welcome to the course |
2. A Full Python Refresher
This section is about Python Refresher and includes lectures on Variables in Python, Methods, List, tuple and sets.
1. Variables in Python A Full Python Refresher: Variables in Python |
2. String formatting in Python A Full Python Refresher: String formatting in Python |
3. Getting user input A Full Python Refresher: Getting user input |
4. Writing our first Python app A Full Python Refresher: Writing our first Python app |
5. Lists, tuples, and sets A Full Python Refresher: Lists, tuples, and sets |
6. Advanced set operations A Full Python Refresher: Advanced set operations |
7. Booleans in Python A Full Python Refresher: Booleans in Python |
8. If statements A Full Python Refresher: If statements |
9. The 'in' keyword in Python A Full Python Refresher: The 'in' keyword in Python |
10. If statements with the 'in' keyword A Full Python Refresher: If statements with the 'in' keyword |
11. Loops in Python A Full Python Refresher: Loops in Python |
12. List comprehensions in Python A Full Python Refresher: List comprehensions in Python |
13. Dictionaries A Full Python Refresher: Dictionaries |
14. Destructuring variables A Full Python Refresher: Destructuring variables |
15. Functions in Python A Full Python Refresher: Functions in Python |
16. Function arguments and parameters A Full Python Refresher: Function arguments and parameters |
17. Default parameter values A Full Python Refresher: Default parameter values |
18. Functions returning values A Full Python Refresher: Functions returning values |
19. Lambda functions in Python A Full Python Refresher: Lambda functions in Python |
20. Dictionary comprehensions A Full Python Refresher: Dictionary comprehensions |
21. Unpacking arguments A Full Python Refresher: Unpacking arguments |
22. Unpacking keyword arguments A Full Python Refresher: Unpacking keyword arguments |
23. Object-Oriented Programming in Python A Full Python Refresher: Object-Oriented Programming in Python |
24. Magic methods: __str__ and __repr__ A Full Python Refresher: Magic methods: __str__ and __repr__ |
25. @classmethod and @staticmethod A Full Python Refresher: @classmethod and @staticmethod |
26. Class inheritance A Full Python Refresher: Class inheritance |
27. Class composition A Full Python Refresher: Class composition |
28. Type hinting in Python 3.5+ A Full Python Refresher: Type hinting in Python 3.5+ |
29. Imports in Python A Full Python Refresher: Imports in Python |
30. Relative imports in Python A Full Python Refresher: Relative imports in Python |
31. Errors in Python A Full Python Refresher: Errors in Python |
32. Custom error classes A Full Python Refresher: Custom error classes |
33. First-class functions A Full Python Refresher: First-class functions |
34. Simple decorators in Python A Full Python Refresher: Simple decorators in Python |
35. The 'at' syntax for decorators A Full Python Refresher: The 'at' syntax for decorators |
36. Decorating functions with parameters A Full Python Refresher: Decorating functions with parameters |
37. Decorators with parameters A Full Python Refresher: Decorators with parameters |
38. Mutability in Python A Full Python Refresher: Mutability in Python |
39. Mutable default parameters (and why they're a bad idea) A Full Python Refresher: Mutable default parameters (and why they're a bad idea) |
3. Your first automated software test
In this section, you will do your first automated software test. This shows Setting up project, writing first test, testing dictionary equivalence and lot more.
1. Introduction to this section Your first automated software test: Introduction to this section |
2. Setting up our project Your first automated software test: Setting up our project |
3. Writing our first test Your first automated software test: Writing our first test |
4. Testing dictionary equivalence Your first automated software test: Testing dictionary equivalence |
5. Writing blog tests and PyCharm run configurations Your first automated software test: Writing blog tests and PyCharm run configurations |
6. The __repr__ method, and intro to TDD Your first automated software test: The __repr__ method, and intro to TDD |
7. Integration tests and finishing the blog Your first automated software test: Integration tests and finishing the blog |
8. Mocking, patching, and system tests Your first automated software test: Mocking, patching, and system tests |
9. Patching the input method and returning values Your first automated software test: Patching the input method and returning values |
10. Taking our patching further Your first automated software test: Taking our patching further |
11. The last few patches! Your first automated software test: The last few patches! |
12. The TestCase setUp method Your first automated software test: The TestCase setUp method |
13. Conclusion of this section Your first automated software test: Conclusion of this section |
4. Testing a Flask Endpoint
This section is about testing a Flask Endpoint and includes lectures on Setting up project, creating our flask app, refactoring the system tests and so on.
1. Introduction to this section Testing a Flask Endpoint: Introduction to this section |
2. Setting our project up Testing a Flask Endpoint: Setting our project up |
3. Creating our Flask app Testing a Flask Endpoint: Creating our Flask app |
4. Our first System test Testing a Flask Endpoint: Our first System test |
5. Refactoring our System Tests Testing a Flask Endpoint: Refactoring our System Tests |
6. Conclusion of this section Testing a Flask Endpoint: Conclusion of this section |
5. REST API Testing, Part I
This section includes REST API Testing.
1. Introduction to this section REST API Testing, Part I: Introduction to this section |
2. A look at a REST API with Flask REST API Testing, Part I: A look at a REST API with Flask |
3. Unit testing a REST API REST API Testing, Part I: Unit testing a REST API |
4. Setting up our generic BaseTest REST API Testing, Part I: Setting up our generic BaseTest |
5. Integration testing a REST API REST API Testing, Part I: Integration testing a REST API |
6. Conclusion of this section REST API Testing, Part I: Conclusion of this section |
6. REST API Testing, Part II
This section is about REST API Testing
1. Introduction to this section REST API Testing, Part II: Introduction to this section |
2. Setting up our project REST API Testing, Part II: Setting up our project |
3. Testing foreign key constraints with Python REST API Testing, Part II: Testing foreign key constraints with Python |
4. Unit testing models and SQLAlchemy mappers REST API Testing, Part II: Unit testing models and SQLAlchemy mappers |
5. Finishing our Store tests REST API Testing, Part II: Finishing our Store tests |
6. Conclusion of this section REST API Testing, Part II: Conclusion of this section |
7. System testing a REST API
This section is about System testing a REST API
1. Introduction to this section System testing a REST API: Introduction to this section |
2. Setting project up and creating User model System testing a REST API: Setting project up and creating User model |
3. Allowing users to log in System testing a REST API: Allowing users to log in |
4. Writing our User tests System testing a REST API: Writing our User tests |
5. The setUpClass method in the BaseTest System testing a REST API: The setUpClass method in the BaseTest |
6. Testing user registration System testing a REST API: Testing user registration |
7. Finalising user System tests System testing a REST API: Finalising user System tests |
8. Writing Store System tests System testing a REST API: Writing Store System tests |
9. Writing our Item System tests and testing authentication System testing a REST API: Writing our Item System tests and testing authentication |
10. Conclusion of this section System testing a REST API: Conclusion of this section |
8. System testing with Postman and Newman
This section involves System testing with Postman and Newman.
1. Introduction to this section System testing with Postman and Newman: Introduction to this section |
2. Introduction to Postman System testing with Postman and Newman: Introduction to Postman |
3. Our first Posman tests System testing with Postman and Newman: Our first Posman tests |
4. Setting and clearing environment variables in Postman System testing with Postman and Newman: Setting and clearing environment variables in Postman |
5. Running a test folder in Postman System testing with Postman and Newman: Running a test folder in Postman |
6. Advanced PyCharm run configurations System testing with Postman and Newman: Advanced PyCharm run configurations |
7. Installing Node and Newman System testing with Postman and Newman: Installing Node and Newman |
8. Multirun in PyCharm-Running app and tests together System testing with Postman and Newman: Multirun in PyCharm-Running app and tests together |
9. Conclusion of this section System testing with Postman and Newman: Conclusion of this section |
9. Continuous Integration with Travis CI
This section is about Continuous Integration with Travis CI
1. Introduction to this section Continuous Integration with Travis CI: Introduction to this section |
2. Installing Git Continuous Integration with Travis CI: Installing Git |
3. What is a Git repository? Continuous Integration with Travis CI: What is a Git repository? |
4. A local Git workflow Continuous Integration with Travis CI: A local Git workflow |
5. GitHub and remote repositories Continuous Integration with Travis CI: GitHub and remote repositories |
6. Adding our project to GitHub Continuous Integration with Travis CI: Adding our project to GitHub |
7. What is Travis CI? Continuous Integration with Travis CI: What is Travis CI? |
8. Adding our repository to Travis Continuous Integration with Travis CI: Adding our repository to Travis |
9. The Travis config file and running tests Continuous Integration with Travis CI: The Travis config file and running tests |
10. Adding our test badge to the Readme Continuous Integration with Travis CI: Adding our test badge to the Readme |
11. Conclusion of this section Continuous Integration with Travis CI: Conclusion of this section |
10. Acceptance testing and browser automation with Selenium
This section is about Acceptance testing and browser automation with Selenium in detail.
1. Introduction to this section Acceptance testing and browser automation with Selenium: Introduction to this section |
2. What is acceptance testing? Acceptance testing and browser automation with Selenium: What is acceptance testing? |
3. Introduction to our project Acceptance testing and browser automation with Selenium: Introduction to our project |
4. Our first acceptance test step Acceptance testing and browser automation with Selenium: Our first acceptance test step |
5. Getting the Chrome webdriver Acceptance testing and browser automation with Selenium: Getting the Chrome webdriver |
6. Verifying everything works Acceptance testing and browser automation with Selenium: Verifying everything works |
7. Finishing our first test Acceptance testing and browser automation with Selenium: Finishing our first test |
8. Re-using steps with the regular expression matcher Acceptance testing and browser automation with Selenium: Re-using steps with the regular expression matcher |
9. Our first content test Acceptance testing and browser automation with Selenium: Our first content test |
10. Page locators and models Acceptance testing and browser automation with Selenium: Page locators and models |
11. The blog page Acceptance testing and browser automation with Selenium: The blog page |
12. Using pages in navigation Acceptance testing and browser automation with Selenium: Using pages in navigation |
13. Don't over-generalise tests! Acceptance testing and browser automation with Selenium: Don't over-generalise tests! |
14. Waits and timeouts with Selenium Acceptance testing and browser automation with Selenium: Waits and timeouts with Selenium |
15. Debugging acceptance tests in PyCharm Acceptance testing and browser automation with Selenium: Debugging acceptance tests in PyCharm |
16. Our final complex scenario Acceptance testing and browser automation with Selenium: Our final complex scenario |
17. Filling in forms with Selenium Acceptance testing and browser automation with Selenium: Filling in forms with Selenium |
18. Conclusion of this section Acceptance testing and browser automation with Selenium: Conclusion of this section |