אנו מפתחים בדיקות E2E לאפליקציות מובייל עם Maestro
אנו בוחרים ב-Maestro כי הוא מהיר פי 3 להגדרה מאשר Appium (ללא שרת, ללא סוכן). במהלך 5 השנים האחרונות אוטומטנו יותר מ-50 פרויקטים ניידים — מאפליקציות בנקאיות ועד מרקטפלייסים. לאחרונה, עבור סטארטאפ פינטק עם 30 מסכים, כתבנו 15 תסריטי YAML ב-4 ימים. זמן הרגרסיה ירד מיומיים לארבע שעות, ירידה של 75%, מה שהוריד משמעותית את עלויות תחזוקת הבדיקות. Maestro הוא כלי "קופסה שחורה" — הוא מתקשר עם המכשיר דרך AccessibilityService ואינו דורש שינויי קוד. הוא אידיאלי לרגרסיה של נתיבי משתמש מרכזיים: רישום, קטלוג, תשלום. בממוצע, פרויקט מפחית את זמן הרגרסיה ב-70% ואת עלויות תחזוקת הבדיקות ב-40% בהשוואה ל-Appium. זה מתורגם לחיסכון חודשי ממוצע של $2,000 עבור צוות אפליקציה בגודל בינוני. שירות בדיקות ה-E2E הנייד שלנו משתמש ב-Maestro Cloud ובתסריטי YAML הן לאוטומציה של iOS (אינטגרציית XCUITest) והן לאוטומציה של Android (תאימות Espresso), המשולבים עם צינורות CI/CD. אנו מבטיחים: כל בדיקה עוברת ביקורת ורצה על מכשירים אמיתיים.
כיצד Maestro מפשט את החיים למפתח מובייל
הדבר העיקרי: אפס הגדרות. התקנה דרך curl, כתיבת YAML, הרצה עם maestro test. אין צורך להגדיר שרת Appium (WebDriverAgent), להטמיע סוכן, או להתעסק עם XCUITest ישירות. Maestro מוצא אלמנטים לפי טקסט, accessibilityLabel, או id. עבור אפליקציות טיפוסיות זה מכסה 80–90% מהתרחישים.
כיצד לכתוב בדיקת Maestro: שלב אחר שלב
- צור קובץ YAML בתיקיית
flows/. - ציין את
appIdשל האפליקציה שלך (bundle ID עבור iOS, package name עבור Android). - כתוב רצף של פעולות:
launchApp,tapOn,inputText,assertVisible. - השתמש במשתנים וב-
runFlowלשימוש חוזר (ראה דוגמה למטה). - הרץ את הבדיקה עם
maestro test flows/.
תסריטי YAML: פשוטים, אבל עם ניואנסים
תסריט התחברות מינימלי:
---
appId: com.example.myapp
---
- launchApp:
clearState: true
- tapOn: "Email"
- inputText: "[email protected]"
- tapOn: "Пароль"
- inputText: "password123"
- tapOn: "Войти"
- assertVisible: "Главная"appId: com.example.myapp --- - launchApp: clearState: true - tapOn: "Email" - inputText: "[email protected]" - tapOn: "Пароль" - inputText: "password123" - tapOn: "Войти" - assertVisible: "Главная" מחפש לפי טקסט, tapOn, accessibilityLabel, או testID. אם לשני אלמנטים יש אותו טקסט, Maestro מקיש על הראשון. במקרים כאלה אנו משתמשים ב-id עם מפרט: tapOn או index.
- tapOn: text: "Добавить" index: 1 - tapOn: id: "add_to_cart_button" id ב-Android הוא - tapOn: text: "Добавить" index: 1 - tapOn: id: "add_to_cart_button" , ב-iOS זה id. Maestro מזהה את הפלטפורמה אוטומטית.
משתנים ותתי-זרימות
ללא משתנים ו-resource-id, ערכות בדיקה גדולות הופכות להעתק-הדבק. אנו יוצרים בלוקים לשימוש חוזר:
---
# flows/login.yaml
appId: com.example.myapp
---
- tapOn: "Email"
- inputText: ${EMAIL}
- tapOn: "Пароль"
- inputText: ${PASSWORD}
- tapOn: "Войти"
# flows/checkout_test.yaml
appId: com.example.myapp
env:
EMAIL: [email protected]
PASSWORD: password123
---
- runFlow: flows/login.yaml
- tapOn: "Каталог"
- tapOn: "Купить"
- assertVisible: "Оформление заказа"
ניתן לשנות משתנים בעת ההרצה: accessibilityIdentifier.
ביצוע: מקומי וב-CI
ביצוע מקומי הוא יתרון מרכזי של Maestro. התקנה והרצה:
curl -Ls "https://get.maestro.mobile.dev" | bash maestro test flows/ maestro studio runFlow הוא ממשק דפדפן לבחירת אלמנטים אינטראקטיבית.
Maestro Cloud
עבור CI ללא מכשירים משלנו אנו משתמשים ב-Maestro Cloud. ב-GitHub Actions:
---
- name: Run Maestro tests on Maestro Cloud
uses: mobile-dev-inc/action-maestro-cloud@v1
with:
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
app-file: app/build/outputs/apk/debug/app-debug.apk
flows-file: flows/עבור CI משלך — אמולטור מקומי + # flows/login.yaml appId: com.example.myapp --- - tapOn: "Email" - inputText: ${EMAIL} - tapOn: "Пароль" - inputText: ${PASSWORD} - tapOn: "Войти" # flows/checkout_test.yaml appId: com.example.myapp env: EMAIL: [email protected] PASSWORD: password123 --- - runFlow: flows/login.yaml - tapOn: "Каталог" - tapOn: "Купить" - assertVisible: "Оформление заказа" .
למה Maestro במקום Appium או Detox?
אנו שומעים את השאלה הזו לעתים קרובות. השוואה בטבלאות:
| קריטריון | Maestro | Appium | Detox |
|---|---|---|---|
| הגדרה | אין | נדרש שרת (WebDriverAgent) | נדרשת הטמעת סוכן |
| שפת בדיקה | YAML | Java/Python/JS | JS |
| מכשירי ענן | Maestro Cloud | AWS Device Farm | Firebase Test Lab |
| מחוות מותאמות אישית | לא (צביטה/סיבוב לא נתמכים) | כן | כן |
| גישה ל-JS | לא | לא | כן (הקשר JS) |
עבור אפליקציות CRUD סטנדרטיות, Maestro מנצח במהירות הכתיבה והתחזוקה. Maestro פרודוקטיבי פי 2 מ-Appium עבור זרימות טיפוסיות, כפי שמראים הפרויקטים שלנו. Maestro גם מהיר פי 3 בפיתוח בדיקות בהשוואה ל-Appium. כדי למזער חוסר יציבות בבדיקות, Maestro מציע לוגיקת ניסיון חוזר מובנית ותומך בביצוע מקבילי של בדיקות על Maestro Cloud, מה שמבטיח תוצאות אמינות ועקביות.
| תרחיש | זמן (ימים) | מורכבות |
|---|---|---|
| 5–7 זרימות (רישום, קטלוג, הזמנה) | 3 | נמוכה |
| תרחישים מורכבים עם מסכים מרובים (למשל, תשלום עם משתנים) | 5 | בינונית |
| רגרסיה מלאה (20+ זרימות) | 10 | גבוהה |
מגבלות שחשוב להכיר
Maestro אינו תומך במחוות מותאמות אישית: maestro test --env [email protected], curl -Ls "https://get.maestro.mobile.dev" | bash maestro test flows/ maestro studio , maestro studio. עבור אפליקציות עם מפות או גלריות שצריכות זום — Appium או Detox. אין גישה ישירה להקשר JavaScript (בניגוד ל-Detox). ההצהרות מוגבלות לנראות (- name: Run Maestro tests on Maestro Cloud uses: mobile-dev-inc/action-maestro-cloud@v1 with: api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }} app-file: app/build/outputs/apk/debug/app-debug.apk flows-file: flows/ , maestro test). לא ניתן לבדוק ערך מדויק של תכונה או קואורדינטת אלמנט.
למרות זאת, עבור אפליקציות CRUD סטנדרטיות, מרקטפלייסים, אפליקציות שירות, Maestro מכסה 80–90% מהתרחישים הנדרשים ל-E2E עם עלויות תחזוקה מינימליות.
טעויות נפוצות של מתחילים
- שימוש בטקסט שמשתנה (תאריך, שעה). עדיף להשתמש ב-testID.
- שכחת ניקוי מצב בין בדיקות — השתמש ב-
pinch. - appId שגוי — בדוק את ה-bundle ID או את ה-package name.
- תלות בסדר המסכים — השתמש ב-
rotateעם התחברות.
תוצרים
- תסריטי YAML לכל תרחישי המשתמש המרכזיים (עד 20 זרימות)
- תתי-זרימות לשימוש חוזר עם משתנים, תיעוד לכל זרימה
- אינטגרציית CI/CD — GitHub Actions או GitLab CI עם Maestro Cloud או אמולטור מקומי
- גישה לדוחות בדיקות — דוחות HTML/JSON עם צילומי מסך, וגישה למאגר האוטומציה וללוח הבקרה של Maestro Cloud
- מפגש הדרכה — סדנה של שעתיים לצוות ה-QA שלך
- תמיכה — שבועיים של תמיכה חינם לאחר המסירה
מדדי חברה וניסיון
מדדי חברה: 5+ שנים בשוק, 50+ פרויקטים שהושלמו, 70% הפחתה ממוצעת בזמן רגרסיה. לצוות שלנו יש מומחיות עמוקה בבדיקות E2E ניידות עם Maestro, לאחר שסיפקנו אוטומציה חזקה לתעשיות מגוונות כולל פינטק, מסחר אלקטרוני ובריאות.
ציר זמן ועלות
3–5 ימים תלוי במספר התרחישים. 5–7 זרימות לאפליקציית CRUD טיפוסית — 3 ימים ב-$1,500. תרחישים מורכבים עם מסכים מרובים, משתנים וזרימות מקוננות — 5 ימים ב-$2,500. אנו מעריכים את הפרויקט שלך ביום אחד. איכות מובטחת: כל בדיקה עוברת ביקורת ורצה על מכשירים אמיתיים. חיסכון של $24,000 בשנה על ידי הפחתת זמן הרגרסיה ב-70%.
הזמן פיתוח בדיקות E2E — כתוב לנו, נגיב תוך שעתיים. קבל ייעוץ בנושא אוטומציית רגרסיה לפרויקט שלך. לפי התיעוד הרשמי של Maestro, הכלי מותאם למהירות ואמינות.







