מבוא
בעולם אוטומציית הבדיקות, גמישות היא המפתח. הרצת בדיקות או חבילות בדיקה ספציפיות לפי דרישה יכולה לשפר משמעותית את זרימת העבודה של הבדיקות שלך. מאמר זה בוחן כיצד למנף את GitHub Actions כדי ליצור צינור בדיקות גמיש עבור בדיקות Playwright Python, המאפשר גם הרצות מתוזמנות וגם ביצוע לפי דרישה עם פקודות pytest מותאמות אישית.
הפתרון המוצג במאמר זה מודגם בפרויקט הדוגמה שלי Playwright Python example project, שפותח בשיתוף עם אליאס שורוש.
מימוש הפתרון
קוד הפתרון נמצא כאן. הנה החלק המרכזי של זרימת העבודה:
name: Nightly regression tests
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
inputs:
pytest_command:
description: "Custom pytest command"
required: true
default: '-m "not devRun"'
jobs:
nightly:
runs-on: ubuntu-latest
steps:
# ... (setup steps omitted)
- name: Run custom pytest command
if: github.event_name == 'workflow_dispatch'
run: |
source .venv/bin/activate
xvfb-run pytest ${{ github.event.inputs.pytest_command }} --base-url ${{ vars.BASE_URL }}
- name: Run default pytest command
if: github.event_name != 'workflow_dispatch'
run: |
source .venv/bin/activate
xvfb-run pytest -m "not devRun" --base-url ${{ vars.BASE_URL }}
בואו נפרק את החלקים המרכזיים:
- תצורת טריגר: זרימת העבודה מוגדרת לרוץ בלוח זמנים לילי באמצעות ביטוי cron. היא תומכת גם בהפעלה ידנית באמצעות
workflow_dispatch
, המאפשרת ביצוע לפי דרישה. - פרמטרי קלט: כאשר מופעלת ידנית, משתמשים יכולים לספק פקודת pytest מותאמת אישית באמצעות הקלט. פקודת ברירת מחדל מסופקת להרצת בדיקות שאינן מסומנות כ-”devRun”.
- ביצוע מותנה: זרימת העבודה משתמשת בצעדים מותנים כדי לקבוע אם להריץ את הפקודה המותאמת אישית או את פקודת ברירת המחדל. עבור הפעלות ידניות, היא משתמשת בפקודה המותאמת אישית שסופקה. עבור הרצות מתוזמנות, היא משתמשת בפקודת ברירת המחדל.
יתרונות גישה זו:
- גמישות: הגדרה זו מאפשרת גם הרצות ליליות אוטומטיות וגם בדיקות לפי דרישה עם פרמטרים מותאמים אישית.
- קלות שימוש: חברי צוות יכולים להפעיל בקלות הרצות בדיקה ספציפיות מבלי לשנות את קובץ זרימת העבודה.
- עקביות: פקודת ברירת המחדל מבטיחה שהרצות מתוזמנות רגילות תמיד יבצעו קבוצה מוגדרת מראש של בדיקות.
דוגמת שימוש
כדי להפעיל ידנית את זרימת העבודה עם פקודת pytest מותאמת אישית:
- נווט ללשונית “Actions” בפרוייקט GitHub שלך.
- בחר את זרימת העבודה “Nightly regression tests”.
- לחץ על “Run workflow”.
- הזן את פקודת pytest המותאמת אישית שלך, למשל,
-k "login and not logout"
. - לחץ על “Run workflow” כדי להתחיל את הביצוע.
זה יריץ רק את הבדיקות התואמות לביטוי שסופק, ויעניק לך שליטה מדויקת על אילו בדיקות מבוצעות.
לסיכום
על ידי מינוף GitHub Actions עם פקודות pytest הניתנות להתאמה אישית, יצרנו צינור בדיקות גמיש ורב עוצמה עבור בדיקות Playwright Python. גישה זו מאפשרת לצוותים לשמור על איזון בין הרצות רגרסיה ליליות עקביות לבין היכולת לבצע בדיקות ספציפיות לפי דרישה. היא משפרת את זרימת העבודה של הבדיקות, ומאפשרת איטרציות מהירות יותר ובדיקות ממוקדות יותר בעת הצורך.
זכור להתאים את זרימת העבודה למבנה ולדרישות הפרויקט הספציפיים שלך.
בדיקות מהנות!