Introduction
Robust test automation scripts gracefully handle unexpected errors. This module shows how to handle exceptions, raise custom errors, and debug scripts effectively using Python.
Lesson 1: Understanding Errors and Exceptions
Concept:
Errors occur when something goes wrong in your script—either due to syntax, logic, or runtime issues.
Key Topics:
- Syntax Errors vs Runtime Errors: Compile-time vs execution failures.
-
Common Exceptions:
NameError,TypeError,ValueError, etc. - Why Exceptions Matter: Preventing crashes and improving clarity.
Example:
try:
result = 10 / 0
except ZeroDivisionError:
print("Can't divide by zero!")Pro Tip: Always review tracebacks—they point directly to the issue.
Lesson 2: Implementing try-except Blocks
Concept:
Python’s try-except block allows you to catch and respond to errors without halting your test.
Key Topics:
- try: Block of code to attempt.
- except: Handle a specific exception.
- finally: Code that runs regardless of outcome.
- else: Run if no exception occurs.
Example:
try:
with open("test_data.txt") as file:
content = file.read()
except FileNotFoundError:
print("Test data file is missing.")
finally:
print("Execution completed.")Pro Tip: Use finally to close resources or perform cleanup.
Lesson 3: Raising Custom Exceptions
Concept:
Define your own errors to signal specific conditions in your test scripts.
Key Topics:
-
Using
raiseKeyword: Triggering errors manually. -
Creating Custom Exception Classes: Subclassing
Exception. - Where to Use: Invalid inputs, failed validations, etc.
Example:
class TestFailure(Exception):
pass
def validate(test_result):
if test_result != "Passed":
raise TestFailure("Test did not pass")
validate("Failed")Pro Tip: Prefix custom exceptions with Test or QA for easy identification.
Lesson 4: Logging and Debugging Python Scripts
Concept:
Logging provides a record of execution flow, and debugging tools help locate and fix errors efficiently.
Key Topics:
-
Using
loggingModule: Write logs to console or file. -
Logging Levels:
DEBUG,INFO,WARNING,ERROR,CRITICAL -
Using Python Debugger: Insert
breakpointswithpdb.
Example:
import logging
logging.basicConfig(level=logging.INFO)
logging.info("Starting test suite...")Pro Tip: Use logging.exception() inside except blocks to log stack traces.
Conclusion
Exception handling ensures test scripts don’t crash unexpectedly and provides better control over failures.
Key Takeaways:
- Use try-except to gracefully manage errors.
- Define custom exceptions for specific test conditions.
- Log important actions and exceptions to simplify debugging.
- Use debugging tools to pinpoint issues quickly.
What’s Next?
In the next module, you’ll learn about File I/O and Data Persistence in Python for QA Automation, including reading logs, writing reports, and managing test data.
Visit us at Testamplify | X | Instagram | LinkedIn
