Curriculum: Complete Python SDET Bootcamp
Module 1: The Automation Mindset & Code Foundations
Goal: Master the specific coding skills needed for testing (manipulating data, assertions, file I/O) before touching a browser.
Lesson 1: Environment Setup. Install VS Code, Python, Git. Task: Create a GitHub repo and push a “Hello Automation” script.
Lesson 2: Assertions Logic. Understanding
assert. Task: Write a script that compares two complex dictionaries and throws a custom error if they don’t match.Lesson 3: Data Parsing (JSON). Task: Write a function to ingest a JSON file of user data and filter for users over age 18.
Lesson 4: Data Parsing (CSV/Excel). Task: Build a script using
pandasorcsvlib to read a test-data spreadsheet and convert it to a list of objects.Lesson 5: Introduction to PyTest. Task: Convert previous scripts into your first official PyTest test suite with passing/failing flags.
Lesson 6: PyTest Fixtures. Task: Create a
setupandteardownfixture that creates a temporary file before a test and deletes it after.Lesson 7: Mocking Data. Task: Use
Fakerlibrary to generate 100 lines of fake user data (names, emails, IPs) for stress testing.Lesson 8: Logging Fundamentals. Task: Replace all
print()statements in previous code with a properloggingconfiguration (Info vs. Error).Lesson 9: Error Handling for Flakiness. Task: Write a “retry” decorator that attempts a failing function 3 times before giving up.
Lesson 10: Mini-Project: Data Validator. Task: Build a script that scans a directory of CSV files and validates that no email field is empty.
Module 2: Web UI Automation (Selenium WebDriver)
Goal: Deep dive into the “Classic” standard of web automation.
Lesson 11: Browser Drivers & Navigation. Task: Write a script to open Chrome, navigate to Google, and print the page title.
Lesson 12: Locators Strategy (CSS vs. XPath). Task: Practice locating the same button using ID, Class, CSS Selector, and XPath.
Lesson 13: Interacting with Elements. Task: Automate a login form: Type username/password and click ‘Submit’.
Lesson 14: Synchronization (Waits). Task: Fix a “ElementNotVisible” error by replacing
time.sleep()withWebDriverWaitandExpectedConditions.Lesson 15: Handling Dropdowns & Selects. Task: Write a script to select options from both a standard
<select>tag and a modern<div>based dropdown.Lesson 16: Alerts, Modals, and Popups. Task: Automate clicking a button that triggers a JS Alert, accept it, and read the text inside.
Lesson 17: Frames and IFrames. Task: Switch context to an iframe, enter text, and switch back to the main content.
Lesson 18: Window Handling. Task: Click a link that opens a new tab, switch focus to the new tab, verify URL, and close it.
Lesson 19: Action Chains (Hover/Drag & Drop). Task: Automate a “Drag and Drop” interaction on a Kanban board demo site.
Lesson 20: Project: The E-Commerce Buyer. Task: Script a bot that searches for a specific product, adds it to the cart, and proceeds to checkout.
Module 3: Advanced Framework Architecture
Goal: Stop writing scripts; start building a reusable Framework.
Lesson 21: The Page Object Model (POM) Theory. Task: Refactor the Login script from Lesson 13 into a
LoginPageclass.Lesson 22: Abstracting the Base Page. Task: Create a
BasePageclass containing generic methods (click, type, find) that all pages inherit.Lesson 23: Data-Driven Testing (DDT). Task: Run the Login test 5 times with 5 different credential sets loaded from a JSON file.
Lesson 24: Managing Configuration. Task: Create a
config.inifile to toggle between “Headless” and “UI” mode without changing code.Lesson 25: Reporting (Allure/HTML). Task: Integrate Allure Reports to generate a visual HTML report of your test run.
Lesson 26: Screenshots on Failure. Task: Update the framework to automatically save a screenshot whenever an assertion fails.
Lesson 27: Cross-Browser Testing. Task: Configure the framework to run the same tests on Firefox and Edge using a loop.
Lesson 28: Parallel Execution. Task: Use
pytest-xdistto run 4 tests simultaneously to cut execution time.Lesson 29: Tagging & Grouping. Task: Tag tests as
@smokeor@regressionand execute only the smoke tests via CLI.Lesson 30: Framework Review. Task: Clean up code, add type hinting, and add DocStrings to all methods.
Module 4: Modern Web Automation (Playwright)
Goal: Learn the modern, faster alternative to Selenium.
Lesson 31: Playwright Setup & Codegen. Task: Use Playwright’s “Record” feature to generate a script, then analyze the code.
Lesson 32: Async/Await & Locators. Task: Rewrite the Selenium “Login” test using Playwright’s native auto-waiting locators.
Lesson 33: Tracing & Time Travel. Task: Enable Playwright Tracing to view a step-by-step snapshot replay of a failed test.
Lesson 34: API Interception (Mocking Network). Task: Intercept a network request from the browser and force it to return a 500 Error to test UI error handling.
Lesson 35: Visual Regression Testing. Task: Use Playwright to take a screenshot of a homepage and compare it pixel-by-pixel to a “Golden” baseline.
Lesson 36: Authenticated State Storage. Task: Login once, save the “Storage State” (cookies), and reuse it to bypass login on subsequent tests.
Lesson 37: Multi-Context Tests. Task: Simulate a chat application where Browser A talks to Browser B in the same test file.
Lesson 38: Shadow DOM Handling. Task: Automate an element inside a Shadow DOM (usually difficult in Selenium, easy in Playwright).
Lesson 39: Download & Upload Handling. Task: Test a file upload feature and verify the server response.
Lesson 40: Project: The Fast Checker. Task: Build a Playwright suite that validates all links on a homepage are 200 OK in parallel.
Module 5: API Testing Automation (REST)
Goal: Testing the backend without a UI (Headless & Fast).
Lesson 41: HTTP Basics (GET/POST). Task: Use Postman manually first, then replicate the request using Python
requests.Lesson 42: Validating Status Codes & Headers. Task: Assert that an endpoint returns 200 OK and contains
application/jsonheader.Lesson 43: JSON Schema Validation. Task: Validate that a response strictly adheres to a defined JSON Schema structure.
Lesson 44: Chaining Requests. Task: Extract a User ID from a
create_userresponse and use it in aget_user_detailsrequest.Lesson 45: Auth (Bearer Tokens/OAuth). Task: Automate an API that requires a generated Bearer Token in the header.
Lesson 46: CRUD Operations Suite. Task: Write a test file that Creates, Reads, Updates, and Deletes a resource in one flow.
Lesson 47: Parameterization in API. Task: Test a search endpoint with 10 different query parameters using a loop.
Lesson 48: Mocking APIs. Task: Use
WireMockor a Python mocker to simulate a 3rd party API being down.Lesson 49: GraphQL Basics. Task: Send a POST request with a GraphQL query payload and validate the specific data field.
Lesson 50: Project: Backend Health Check. Task: Build a script that runs every hour to check 5 critical API endpoints and alerts if any fail.
Module 6: Mobile Automation (Appium)
Goal: Automating Android/iOS applications.
Lesson 51: Appium Architecture & Setup. Task: Install Appium Desktop and connect an Android Emulator.
Lesson 52: Appium Inspector. Task: Inspect an APK file to find the ID of the “Login” button.
Lesson 53: First Mobile Script. Task: Write a script to launch the Calculator app and add 2 + 2.
Lesson 54: Touch Actions (Swipe/Scroll). Task: Automate scrolling down a list until a specific text is found.
Lesson 55: Hybrid Apps (Webview). Task: Switch context from Native App to Webview to automate a browser inside the app.
Lesson 56: Handling Permissions. Task: Auto-accept the “Allow Notifications” system popup.
Lesson 57: Device Rotation & Hardware Keys. Task: Rotate screen to landscape and press the physical “Volume Up” button via code.
Lesson 58: Running on Real Devices. Task: Connect a real phone via USB and run the Calculator test on it.
Lesson 59: Mobile Page Object Model. Task: Structure the mobile test using the POM design pattern.
Lesson 60: Cloud Execution. Task: Run a test on a cloud farm (like BrowserStack or SauceLabs) trial account.
Module 7: BDD & Collaboration (Gherkin/Cucumber)
Goal: Writing tests that non-coders (Product Managers) can read.
Lesson 61: Gherkin Syntax. Task: Write a
.featurefile for a Login scenario using Given/When/Then.Lesson 62: Step Definitions. Task: Map the Gherkin steps to Python/Selenium code using
pytest-bddorbehave.Lesson 63: Scenario Outlines. Task: Use an “Examples” table in Gherkin to run the same scenario with different data.
Lesson 64: Background & Hooks. Task: Use
Backgroundto handle prerequisites (like launching the app) before every scenario.Lesson 65: Tags in BDD. Task: Execute only scenarios tagged
@wip(work in progress).Lesson 66: Data Tables. Task: Pass a complex list of data (e.g., a user registration form) from Gherkin to the code.
Lesson 67: Sharing State. Task: Pass variables (like a generated Order ID) between the “When” step and the “Then” step.
Lesson 68: Reporting in BDD. Task: Generate a readable Cucumber report.
Lesson 69: Anti-patterns in BDD. Task: Refactor a bad feature file (imperative style) to a good one (declarative style).
Lesson 70: Project: Living Documentation. Task: Create a full BDD suite for a “Todo List” app.
Module 8: DevOps, CI/CD & Performance
Goal: Running tests automatically in the cloud.
Lesson 71: Git Basics for Teams. Task: Create a Pull Request, resolve a merge conflict, and merge code.
Lesson 72: Jenkins Setup. Task: Install Jenkins (or use GitHub Actions) and create a “Freestyle” job to run your tests.
Lesson 73: Headless Execution in CI. Task: Configure the job to run Chrome in Headless mode (no UI).
Lesson 74: Scheduling & Triggers. Task: Set the test job to run automatically every night at 2 AM.
Lesson 75: GitHub Actions (YAML). Task: Create a
.github/workflows/test.ymlfile to run tests on every Push.Lesson 76: Dockerizing Tests. Task: Create a
Dockerfilethat contains Python, Chrome, and your tests, then run it.Lesson 77: JMeter Basics (Performance). Task: Create a load test hitting an endpoint with 50 users simultaneously.
Lesson 78: Integrating Performance in Code. Task: Use
Locust(Python tool) to write a load test as code.Lesson 79: Security Testing Basics. Task: Run a basic OWASP ZAP scan against a test URL via automation.
Lesson 80: The Pipeline Project. Task: Build a pipeline: Commit Code -> Lint Code -> Run Unit Tests -> Run UI Tests -> Deploy Report.
Module 9: The Master Capstone
Goal: Building an industry-grade framework from scratch.
Lesson 81: Architecture Planning. Task: Draw the diagram for the final framework (Directory structure, Libs, CI flow).
Lesson 82: Base Framework Scaffold. Task: Set up the repo, virtual env, logging, and config loaders.
Lesson 83: Database Integration. Task: Add a module to connect to a SQL DB to verify test data created by the UI.
Lesson 84: API + UI Hybrid Tests. Task: Write a test that creates a user via API (fast), then logs in via UI (visual).
Lesson 85: Utilities Package. Task: Write helper functions for random data generation, file reading, and date manipulation.
Lesson 86: Slack/Teams Notifications. Task: Write a hook that posts a message to a Slack channel if the build fails.
Lesson 87: Refactoring & Cleanup. Task: Apply PEP8 standards and strict type checking to the entire codebase.
Lesson 88: README & Documentation. Task: Write a professional
README.mdinstructing a new developer how to run the tests.Lesson 89: Final Execution & Debugging. Task: Run the full suite (Web, API, Mobile) and fix any flaky tests.
Lesson 90: Portfolio Release. Task: Publish the code to GitHub and write a LinkedIn post showcasing the framework architecture.


