Skip to main content
CourseFlix

Automated Software Testing with Python

13h 26m 55s
English
Paid

Unlock the potential of automated software testing! Dive into a comprehensive journey with me, Jose, a seasoned software engineer and founder of Teclado. This course is tailored to help developers master test automation with Python, focusing especially on web testing—featuring REST APIs and web applications with tools like unittest, Postman, and Selenium WebDriver.

Worried about web-exclusive knowledge? Fear not! The skills you acquire here are versatile and applicable to any project, web-based or otherwise.

Technologies You'll Master

This course is rich with cutting-edge technologies designed for both professional and personal use:

  • The unittest library, Python's essential tool for automated testing.

  • Mocking and patching techniques to efficiently minimize dependencies.

  • Comprehensive coverage of unit, integration, system, and acceptance testing.

  • Utilize Postman for seamless project collaboration and testing.

  • Selenium WebDriver to conduct automated browser tests.

  • Implement Git and Travis for robust continuous integration.

Essential Software Testing Skills

Gain every foundational testing skill necessary to excel in testing jobs or enhance your current projects.

Learn to simplify complex tests with mocking and patching via the unittest library, and become adept in the full spectrum of testing from unit to customer acceptance tests.

The Testing Pyramid Explained

The Testing Pyramid emphasizes a balanced approach: many unit tests, fewer integration tests, even fewer system tests, and minimal acceptance tests.

In this course, you’ll ensure full coverage with unit tests, validate dependencies with integration tests, and check system-wide assumptions with system tests. You will also explore the creation and implementation of acceptance tests for web applications utilizing Behavior-Driven Development and Selenium WebDriver.

Mastering Automated Browser Testing with Selenium WebDriver

Leverage the full potential of Selenium WebDriver, coupled with proven professional techniques taught in this course. Design acceptance tests using page models, locators, and step definitions for reusable test structures. Translate customer requirements into executable tests swiftly.

Also, comprehend implicit and explicit waits with Selenium WebDriver and Python to optimize your testing speed.

Implementing Continuous Integration

Advance your testing capabilities with robust continuous integration methodologies.

Configure a Continuous Integration pipeline that automatically runs tests upon modifications to ensure exceptional project quality, helping you catch defects early. Learn to host your projects on GitHub and integrate them seamlessly with your CI pipeline.

About the Author: Udemy

Udemy thumbnail

Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.

Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.

Watch Online 127 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 127 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Introduction to this section
All Course Lessons (127)
#Lesson TitleDurationAccess
1
Introduction to this section Demo
01:02
2
Variables in Python
08:27
3
Solution to coding exercise: Variables
02:01
4
String formatting in Python
06:27
5
Getting user input
05:17
6
Writing our first Python app
03:20
7
Lists, tuples, and sets
06:32
8
Advanced set operations
04:40
9
Solution to coding exercise: lists, tuples, sets
04:41
10
Booleans in Python
05:01
11
If statements
08:18
12
The 'in' keyword in Python
02:03
13
If statements with the 'in' keyword
08:19
14
Loops in Python
11:08
15
Solution to coding exercise: flow control
03:09
16
List comprehensions in Python
07:25
17
Dictionaries
08:32
18
Destructuring variables
08:29
19
Functions in Python
10:42
20
Function arguments and parameters
07:41
21
Default parameter values
03:55
22
Functions returning values
07:20
23
Solution to coding exercise: Functions
02:31
24
Lambda functions in Python
07:53
25
Dictionary comprehensions
04:02
26
Solution to coding exercise: dictionaries
06:17
27
Unpacking arguments
10:25
28
Unpacking keyword arguments
08:45
29
Object-Oriented Programming in Python
15:53
30
Magic methods: __str__ and __repr__
06:26
31
Solution to coding exercise: classes and objects
05:05
32
@classmethod and @staticmethod
14:04
33
Solution to coding exercise: @classmethod and @staticmethod
05:55
34
Class inheritance
08:33
35
Class composition
06:09
36
Type hinting in Python 3.5+
05:09
37
Imports in Python
09:34
38
Relative imports in Python
08:54
39
Errors in Python
12:48
40
Custom error classes
05:05
41
First-class functions
07:53
42
Simple decorators in Python
07:13
43
The 'at' syntax for decorators
03:34
44
Decorating functions with parameters
02:25
45
Decorators with parameters
04:51
46
Mutability in Python
06:04
47
Mutable default parameters (and why they're a bad idea)
04:28
48
Conclusion of this section
00:38
49
Introduction to this section
00:25
50
Setting up our project
06:43
51
Writing our first test
11:11
52
Testing dictionary equivalence
05:26
53
Writing blog tests and PyCharm run configurations
06:44
54
The __repr__ method, and intro to TDD
08:50
55
Integration tests and finishing the blog
11:58
56
Mocking, patching, and system tests
16:38
57
Patching the input method and returning values
07:30
58
Taking our patching further
16:04
59
The last few patches!
07:08
60
The TestCase setUp method
04:37
61
Conclusion of this section
00:28
62
Introduction to this section
00:27
63
Setting our project up
04:39
64
Creating our Flask app
06:51
65
Our first System test
09:57
66
Refactoring our System Tests
06:33
67
Conclusion of this section
00:34
68
Introduction to this section
00:36
69
A look at a REST API with Flask
18:19
70
Unit testing a REST API
08:16
71
Setting up our generic BaseTest
09:37
72
Integration testing a REST API
06:48
73
Conclusion of this section
00:26
74
Introduction to this section
00:21
75
Setting up our project
08:46
76
Testing foreign key constraints with Python
05:26
77
Unit testing models and SQLAlchemy mappers
11:04
78
Finishing our Store tests
11:39
79
Conclusion of this section
00:25
80
Introduction to this section
00:29
81
Setting project up and creating User model
03:59
82
Allowing users to log in
04:11
83
Writing our User tests
04:15
84
The setUpClass method in the BaseTest
05:00
85
Testing user registration
06:42
86
Finalising user System tests
07:32
87
Writing Store System tests
13:36
88
Writing our Item System tests and testing authentication
22:36
89
Conclusion of this section
00:27
90
Introduction to this section
00:41
91
Introduction to Postman
09:02
92
Our first Posman tests
05:51
93
Setting and clearing environment variables in Postman
07:05
94
Running a test folder in Postman
07:54
95
Advanced PyCharm run configurations
06:09
96
Installing Node and Newman
04:44
97
Multirun in PyCharm—Running app and tests together
03:02
98
Conclusion of this section
00:37
99
Introduction to this section
00:39
100
Installing Git
04:13
101
What is a Git repository?
05:28
102
A local Git workflow
04:32
103
GitHub and remote repositories
05:18
104
Adding our project to GitHub
04:52
105
What is Travis CI?
02:30
106
Adding our repository to Travis
01:39
107
The Travis config file and running tests
10:34
108
Adding our test badge to the Readme
02:48
109
Conclusion of this section
00:39
110
Introduction to this section
00:41
111
What is acceptance testing?
05:09
112
Introduction to our project
03:11
113
Our first acceptance test step
10:47
114
Getting the Chrome webdriver
03:39
115
Verifying everything works
05:45
116
Finishing our first test
14:52
117
Re-using steps with the regular expression matcher
04:01
118
Our first content test
09:19
119
Page locators and models
18:37
120
The blog page
07:31
121
Using pages in navigation
06:46
122
Don't over-generalise tests!
02:26
123
Waits and timeouts with Selenium
07:34
124
Debugging acceptance tests in PyCharm
03:33
125
Our final complex scenario
02:47
126
Filling in forms with Selenium
13:02
127
Conclusion of this section
00:42
Unlock unlimited learning

Get instant access to all 126 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Course content

127 lessons · 13h 26m 55s
Show all 127 lessons
  1. 1 Introduction to this section 01:02
  2. 2 Variables in Python 08:27
  3. 3 Solution to coding exercise: Variables 02:01
  4. 4 String formatting in Python 06:27
  5. 5 Getting user input 05:17
  6. 6 Writing our first Python app 03:20
  7. 7 Lists, tuples, and sets 06:32
  8. 8 Advanced set operations 04:40
  9. 9 Solution to coding exercise: lists, tuples, sets 04:41
  10. 10 Booleans in Python 05:01
  11. 11 If statements 08:18
  12. 12 The 'in' keyword in Python 02:03
  13. 13 If statements with the 'in' keyword 08:19
  14. 14 Loops in Python 11:08
  15. 15 Solution to coding exercise: flow control 03:09
  16. 16 List comprehensions in Python 07:25
  17. 17 Dictionaries 08:32
  18. 18 Destructuring variables 08:29
  19. 19 Functions in Python 10:42
  20. 20 Function arguments and parameters 07:41
  21. 21 Default parameter values 03:55
  22. 22 Functions returning values 07:20
  23. 23 Solution to coding exercise: Functions 02:31
  24. 24 Lambda functions in Python 07:53
  25. 25 Dictionary comprehensions 04:02
  26. 26 Solution to coding exercise: dictionaries 06:17
  27. 27 Unpacking arguments 10:25
  28. 28 Unpacking keyword arguments 08:45
  29. 29 Object-Oriented Programming in Python 15:53
  30. 30 Magic methods: __str__ and __repr__ 06:26
  31. 31 Solution to coding exercise: classes and objects 05:05
  32. 32 @classmethod and @staticmethod 14:04
  33. 33 Solution to coding exercise: @classmethod and @staticmethod 05:55
  34. 34 Class inheritance 08:33
  35. 35 Class composition 06:09
  36. 36 Type hinting in Python 3.5+ 05:09
  37. 37 Imports in Python 09:34
  38. 38 Relative imports in Python 08:54
  39. 39 Errors in Python 12:48
  40. 40 Custom error classes 05:05
  41. 41 First-class functions 07:53
  42. 42 Simple decorators in Python 07:13
  43. 43 The 'at' syntax for decorators 03:34
  44. 44 Decorating functions with parameters 02:25
  45. 45 Decorators with parameters 04:51
  46. 46 Mutability in Python 06:04
  47. 47 Mutable default parameters (and why they're a bad idea) 04:28
  48. 48 Conclusion of this section 00:38
  49. 49 Introduction to this section 00:25
  50. 50 Setting up our project 06:43
  51. 51 Writing our first test 11:11
  52. 52 Testing dictionary equivalence 05:26
  53. 53 Writing blog tests and PyCharm run configurations 06:44
  54. 54 The __repr__ method, and intro to TDD 08:50
  55. 55 Integration tests and finishing the blog 11:58
  56. 56 Mocking, patching, and system tests 16:38
  57. 57 Patching the input method and returning values 07:30
  58. 58 Taking our patching further 16:04
  59. 59 The last few patches! 07:08
  60. 60 The TestCase setUp method 04:37
  61. 61 Conclusion of this section 00:28
  62. 62 Introduction to this section 00:27
  63. 63 Setting our project up 04:39
  64. 64 Creating our Flask app 06:51
  65. 65 Our first System test 09:57
  66. 66 Refactoring our System Tests 06:33
  67. 67 Conclusion of this section 00:34
  68. 68 Introduction to this section 00:36
  69. 69 A look at a REST API with Flask 18:19
  70. 70 Unit testing a REST API 08:16
  71. 71 Setting up our generic BaseTest 09:37
  72. 72 Integration testing a REST API 06:48
  73. 73 Conclusion of this section 00:26
  74. 74 Introduction to this section 00:21
  75. 75 Setting up our project 08:46
  76. 76 Testing foreign key constraints with Python 05:26
  77. 77 Unit testing models and SQLAlchemy mappers 11:04
  78. 78 Finishing our Store tests 11:39
  79. 79 Conclusion of this section 00:25
  80. 80 Introduction to this section 00:29
  81. 81 Setting project up and creating User model 03:59
  82. 82 Allowing users to log in 04:11
  83. 83 Writing our User tests 04:15
  84. 84 The setUpClass method in the BaseTest 05:00
  85. 85 Testing user registration 06:42
  86. 86 Finalising user System tests 07:32
  87. 87 Writing Store System tests 13:36
  88. 88 Writing our Item System tests and testing authentication 22:36
  89. 89 Conclusion of this section 00:27
  90. 90 Introduction to this section 00:41
  91. 91 Introduction to Postman 09:02
  92. 92 Our first Posman tests 05:51
  93. 93 Setting and clearing environment variables in Postman 07:05
  94. 94 Running a test folder in Postman 07:54
  95. 95 Advanced PyCharm run configurations 06:09
  96. 96 Installing Node and Newman 04:44
  97. 97 Multirun in PyCharm—Running app and tests together 03:02
  98. 98 Conclusion of this section 00:37
  99. 99 Introduction to this section 00:39
  100. 100 Installing Git 04:13
  101. 101 What is a Git repository? 05:28
  102. 102 A local Git workflow 04:32
  103. 103 GitHub and remote repositories 05:18
  104. 104 Adding our project to GitHub 04:52
  105. 105 What is Travis CI? 02:30
  106. 106 Adding our repository to Travis 01:39
  107. 107 The Travis config file and running tests 10:34
  108. 108 Adding our test badge to the Readme 02:48
  109. 109 Conclusion of this section 00:39
  110. 110 Introduction to this section 00:41
  111. 111 What is acceptance testing? 05:09
  112. 112 Introduction to our project 03:11
  113. 113 Our first acceptance test step 10:47
  114. 114 Getting the Chrome webdriver 03:39
  115. 115 Verifying everything works 05:45
  116. 116 Finishing our first test 14:52
  117. 117 Re-using steps with the regular expression matcher 04:01
  118. 118 Our first content test 09:19
  119. 119 Page locators and models 18:37
  120. 120 The blog page 07:31
  121. 121 Using pages in navigation 06:46
  122. 122 Don't over-generalise tests! 02:26
  123. 123 Waits and timeouts with Selenium 07:34
  124. 124 Debugging acceptance tests in PyCharm 03:33
  125. 125 Our final complex scenario 02:47
  126. 126 Filling in forms with Selenium 13:02
  127. 127 Conclusion of this section 00:42

Related courses

  • Python for Data Science thumbnail

    Python for Data Science

    By: LunarTech
    Master the key Python skills for data analysis, visualization, statistical analysis, and machine learning.
    6 hours 21 minutes 57 seconds 5 / 5
  • #100DaysOfCode with Python course thumbnail

    #100DaysOfCode with Python course

    By: Talk Python Training
    #100DaysOfCode in Python is your perfect companion to take the 100 days of code challenge and be successful.
    17 hours 27 minutes 49 seconds
  • HTMX + Flask: Modern Python Web Apps, Hold the JavaScript thumbnail

    HTMX + Flask: Modern Python Web Apps, Hold the JavaScript

    By: Talk Python Training
    HTMX, Flask & Modern Python Web Apps — build dynamic Flask apps with HTMX hypermedia. No JS framework, no build pipeline, full interactivity.
    3 hours 3 minutes 5 seconds

Frequently asked questions

What is Automated Software Testing with Python about?
Unlock the potential of automated software testing! Dive into a comprehensive journey with me, Jose, a seasoned software engineer and founder of Teclado. This course is tailored to help developers master test automation with Python…
Who teaches Automated Software Testing with Python?
Automated Software Testing with Python is taught by Udemy. You can find more courses by this instructor on the corresponding source page.
How long is Automated Software Testing with Python?
Automated Software Testing with Python contains 127 lessons with a total runtime of 13 hours 26 minutes. All lessons are available to watch online at your own pace.
Is Automated Software Testing with Python free to watch?
Automated Software Testing with Python is part of CourseFlix's premium catalog. A CourseFlix subscription unlocks the full video player; the course description, table of contents, and preview information are available to everyone.
Where can I watch Automated Software Testing with Python online?
Automated Software Testing with Python is available to watch online on CourseFlix at https://courseflix.net/course/automated-software-testing-with-python. The page hosts every lesson with the integrated video player; no download is required.