אוטומציה

    מדריך לבניית תשתית אוטומציה ב-Python

    כל מה שצריך לדעת על בניית תשתית אוטומציה יעילה ומקצועית

    8 ינואר 2025
    12 דקות קריאה

    Python הפך לשפה המובילה לאוטומציה של בדיקות תוכנה. במאמר זה נלמד כיצד לבנות תשתית אוטומציה מקצועית ויעילה.

    למה Python לאוטומציה?

    Python מציע יתרונות רבים:

    • תחביר פשוט וברור
    • ספריות עשירות
    • קהילה גדולה ותומכת
    • אינטגרציה קלה עם כלים שונים

    בחירת הפריימוורק הנכון

    Pytest - הבחירה המומלצת

    Pytest הוא הפריימוורק המוביל לבדיקות ב-Python:

    import pytest

    def test_login_success(): user = authenticate("user@example.com", "password123") assert user.is_authenticated == True def test_login_invalid_credentials(): with pytest.raises(AuthenticationError): authenticate("user@example.com", "wrong_password")

    Unittest - לפרויקטים מסורתיים

    Unittest מגיע built-in עם Python ומתאים לצוותים שרגילים ל-JUnit:

    import unittest

    class TestLogin(unittest.TestCase): def test_successful_login(self): result = login("user", "pass") self.assertTrue(result.success)

    ארכיטקטורת Page Object Model

    POM הוא דפוס עיצוב קריטי לאוטומציה maintainable:

    class LoginPage:
        def __init__(self, driver):
            self.driver = driver
            self.username_input = "//input[@id='username']"
            self.password_input = "//input[@id='password']"
            self.login_button = "//button[@type='submit']"
        
        def login(self, username, password):
            self.driver.find_element("xpath", self.username_input).send_keys(username)
            self.driver.find_element("xpath", self.password_input).send_keys(password)
            self.driver.find_element("xpath", self.login_button).click()
    

    ניהול Configuration

    השתמשו ב-config files לניהול הגדרות:

    # config.py
    import os
    from dotenv import load_dotenv

    load_dotenv()

    class Config: BASE_URL = os.getenv('BASE_URL', 'https://example.com') BROWSER = os.getenv('BROWSER', 'chrome') TIMEOUT = int(os.getenv('TIMEOUT', '10'))

    Data-Driven Testing

    ביצוע בדיקות עם נתונים משתנים:

    import pytest

    @pytest.mark.parametrize("username,password,expected", [ ("valid_user", "valid_pass", True), ("invalid_user", "valid_pass", False), ("valid_user", "invalid_pass", False), ]) def test_login_scenarios(username, password, expected): result = login(username, password) assert result == expected

    Fixtures ו-Setup/Teardown

    ניהול נכון של משאבים:

    @pytest.fixture(scope="function")
    def driver():
        driver = webdriver.Chrome()
        driver.maximize_window()
        yield driver
        driver.quit()

    def test_search(driver): driver.get("https://example.com") # test logic here

    Reporting ו-Logging

    תיעוד והדוחות הם קריטיים:

    import logging

    logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', handlers=[ logging.FileHandler('test.log'), logging.StreamHandler() ] )

    logger = logging.getLogger(__name__)

    def test_with_logging(): logger.info("Starting test execution") # test code logger.info("Test completed successfully")

    אינטגרציה עם CI/CD

    דוגמה ל-GitHub Actions:

    name: Automated Tests

    on: [push, pull_request]

    jobs: test: runs-on: ubuntu-latest steps:

    • uses: actions/checkout@v2
    • name: Set up Python
    • uses: actions/setup-python@v2 with: python-version: '3.9'
    • name: Install dependencies
    • run: pip install -r requirements.txt
    • name: Run tests
    • run: pytest tests/ --html=report.html

    Best Practices

    1. שמירה על DRY - אל תחזור על קוד
    2. נקיון קוד - עקבו אחר PEP 8
    3. טיפול בשגיאות - השתמשו ב-try/except נכון
    4. ממתינים אינטליגנטים - השתמשו ב-Explicit Waits
    5. ריבוד נכון - הפרידו בין שכבות (UI, Business Logic, Data)

    סיכום

    תשתית אוטומציה טובה היא השקעה ארוכת טווח. השקיעו זמן בתכנון ובארכיטקטורה נכונה מההתחלה.

    רוצים לדעת אם תהליך הבדיקות שלכם מכסה גם אבטחה?

    אבחון ראשוני של 20 דקות, בחינם. בלי התחייבות, בלי קוד ספגטי, רק תמונת מצב ברורה.

    צור קשר

    אורן כהן

    אורן כהן, פרילנסר בכיר עם 19 שנות ניסיון בהייטק. מתמחה בבדיקות תוכנה ידניות ואוטומטיות, הקמת תשתיות QA מאפס, פיתוח פריימוורקים לאוטומציה, וייעוץ Jira והטמעת תהליכי עבודה לצוותי פיתוח ומוצר. מלווה חברות וסטארטאפים בדרך לאיכות, מהירות ויציבות.

    © 2026 אורן כהן. כל הזכויות שמורות.