כל הפוסטים

מדריך | בדיקת אפליקציות באמצעות Appium

מה זה Appium Appium היא תשתית לבדיקות אוטומציה לאפליקציות עבור מכשירי mobile המריצים את מערכות ההפעלה הנפוצות ביותר כיום - Android ו- iOS. המאמר של היום יעסוק בשימוש ב Appium על אפ

מדריך | בדיקת אפליקציות באמצעות Appium

מה זה Appium

Appium היא תשתית לבדיקות אוטומציה לאפליקציות עבור מכשירי mobile המריצים את מערכות ההפעלה הנפוצות ביותר כיום - Android ו- iOS. המאמר של היום יעסוק בשימוש ב Appium על אפליקציות אנדרואיד אך ה interface זהה גם ל iOS, כלומר, ניתן לכתוב תרחיש אחד שיוכל לרוץ על שניהם - אם כי ה setup שונה.

השימוש בAppium נעשה באמצעות פרוטוקול WebDriver בדומה לתשתית האוטומציה Selenium, ולכן החפיפה בין התשתיות גדולה.

מה ניתן לבדוק באמצעות Appium

  1. Native Apps - אפליקציות שנכתבו במיוחד עבור מערכת ההפעלה הספציפית. לדוגמה - אפליקציות Android ב Java.
  2. Hybrid Apps - אפליקציות שנראות רגילות לחלוטין אך מאוכלסות בתוך אפליקציית Native בתצורת WebView.
  3. Mobile Web Apps - אפליקציות Web שהותאמו למכשירים סלולריים.

איך Appium עובד?

רגע לפני שנרים את ה Setup הנדרש לשימוש ב Appium אני רוצה לדבר במשפט על הארכיטקטורה הפשוטה של השימוש בתשתית.

בצורה המופשטת ביותר -

אנחנו כותבים קוד (סקריפט הרצה) בשפת התכנות שבחרנו (C# לצורך הדוגמה),

כאשר נריץ את הקוד תבוצע פניה לשרת Appium שכתובתו תוגדר בסקריפט ההרצה,

השרת יעבד את המידע שהתקבל וישלח פיקודים אל המכשיר בהתאם.

פשוט נכון? טוב, מאחורי הקלעים זה לא כל כך פשוט. באחד הפוסטים הקרובים אדבר על איך הדברים עובדים מתחת לפני השטח.

הקמת Setup לעבודה עם Appium

לפני שנוכל לכתוב קוד שירוץ ויבצע את הפעולות שאנחנו רוצים, עלינו לבצע מספר פעולות.

  1. הורד את שרת Appium

  2. הורד את Java SDK (שים לב שאתה מוריד את הגרסה המאוחרת ביותר)

  3. הורד את Android SDK

  4. הורד את NodeJS

  5. הגדר משתני סביבה: JAVA_HOME - מצביע ל Java SDK folder > bin ANDROID_HOME - מצביע ל Android SDK folder ב - path, הגדר את הנתיבים הבאים

    %ANDROID_HOME%, %JAVA_HOME%, %ANDROID_HOME%\tools, %ANDROID_HOME%\platform/tools\

  6. חבר מכשיר פיזי עם USB Debugging פתוח או לחלופין התקן מכונה וירטואלית של Android

כעת, לאחר שהקמנו את סביבת העבודה שלנו כל מה שנשאר לעשות זה להריץ את שרת Appium ואת המכונה שעליה נריץ את הבדיקות ולהתחיל לכתוב את התרחיש.

כתיבת תרחיש בדיקה באמצעות Appium

תנאי קדם:

מאוד מומלץ לעבור על הנושאים הבאים בבלוג לפני שניגשים לכתיבת התרחיש - אוטומציה באמצעות NUnit, מבוא לSelenium.

ועוד דבר קטן לפני שנתחיל

על מנת לבצע בדיקות אוטומטיות לאפליקציה שלנו, אנחנו צריכים לזהות קודם את שם החבילה שלה (package name) ואת שם הפעילות שלה (activity name).

זאת נעשה באמצעות פקודת adb:

נכנס ל-CMD ונכתוב את הפקודה הבאה -

adb shell dumpsys window windows | grep -E ‘mCurrentFocus|mFocusedApp’

פלט הפקודה יחזיר לנו את ה-package וה activity מופרדים באמצעות ‘/’.

אז נתחיל..

ראשית נפתח את Visual Studio ונפתח פרוייקט מסוג Class Library שממנו נריץ את NUnit.

לאחר מכן נתקין את חבילות הNuget הבאות: Appium.WebDriver, NUnit, NUnit3TestAdapter.

כעת ניתן לכתוב את תרחיש הבדיקה

using NUnit.Framework;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Android;
using OpenQA.Selenium.Appium.Enums;
using OpenQA.Selenium.Remote;
using System;

namespace Appium
{
    [TestFixture]
    public class AppiumTest
    {
        AppiumDriver<AndroidElement> driver; //הגדרת הדרייבר ברמת המחלקה - כך גם אם יהיה יותר מתרחיש באחד נתייחס לאותו הדרייבר

        [Test]
        public void Test()
        {

            DesiredCapabilities capabilities = new DesiredCapabilities(); //הגדרת מאפיני המוצר הנבדק

            capabilities.SetCapability(MobileCapabilityType.PlatformVersion, "7.0"); //גרסת התוכנה
            capabilities.SetCapability(MobileCapabilityType.DeviceName, "520060fesd4cfbdg7"); //הגדרת שם המכשיר - ניתן למצוא באמצעות הפקודה adb device בשורת הפקודה
            capabilities.SetCapability(MobileCapabilityType.App, "com.sec.android.app.popupcalculator"); //שם החבילה של האפליקציה הנבדקת
            capabilities.SetCapability("appActivity", ".Calculator"); //המסך אותו אנחנו רוצים לפתוח בעת עליית האפליקציה


            driver = new AndroidDriver<AndroidElement>(new Uri("http://localhost:4723/wd/hub"), capabilities); // הגדרת הדרייבר, עם הכתובת לשרת והמאפיינים שלו


            driver.FindElementById("bt_02").Click(); //לחיצה על המקש 2
            driver.FindElementById("bt_add").Click(); //לחיצה על מקש החיבור
            driver.FindElementById("bt_02").Click(); //לחיצה על המקש 2
            driver.FindElementById("bt_equal").Click(); //לחיצה על מקש ההשוואה

            string expectedResult = "4"; //הגדרת התוצאה הרצויה
            string actualResult = driver.FindElementById("txtCalc").Text; //משיכת התוצאה האמיתית מהאפליקציה

            Assert.AreEqual(expected: expectedResult, actual: actualResult); //השוואה בין התוצאה הרצויה לתוצאה האמיתית
        }

    }
}

והרי לנו תרחיש אוטומציה שפותח את אפליקציית המחשבון במכשיר שהוגדר, מבצע את הפעולה 2+2 ומשווה בין התוצאה הרצויה לתוצאה בפועל.

סיכום

היום למדנו מה היא תשתית האוטומציה Appium, איך היא עובדת, איך מתקינים אותה על מחשבינו, ובנוסף כתבנו תרחיש בדיקה ראשון באמצעותה.

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

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

נתראה בפוסט הבא :)