דלג לתוכן
חזור

פתרון בעיית התאימות של JDK 17 עם Appium: מדריך צעד אחר צעד

פורסם:

מבוא

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

הבעיה

אחד האתגרים הנפוצים בשימוש ב-Appium הוא הקושי לשדרג לגרסה העדכנית ביותר של ערכת הפיתוח של Java (JDK), ובעיקר ל-JDK 17, בשל באג ב-cglib. cglib היא ספריית Java היוצרת פרוקסי דינמיים. Appium משתמשת בה ליצירת אובייקטי עמוד, שהם מחלקות המייצגות את המסכים והאלמנטים השונים של אפליקציית המובייל.

הבאג הזה מופיע בעת שימוש ב-Page Factory לאתחול אובייקט עמוד דרך הDecorator של Appium.

PageFactory.initElements(new AppiumFieldDecorator(driver), this);

הבעיה דווחה בפרוייקט ה-GitHub של Appium ויכולה להוות מכשול גדול עבור אלה שרוצים לנצל את התכונות והשיפורים האחרונים שמציע JDK 17.

הפתרון

למרבה המזל, יש פתרון לבעיה זו. על ידי הוספת ארגומנט ה-JVM הבא

--add-opens java.base/java.lang=ALL-UNNAMED

לארגומנטי שורת הפקודה של Surefire שלך:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>3.0.0-M7</version>
    <configuration>
        <suiteXmlFiles>
            <suiteXmlFile>testng.xml</suiteXmlFile>
        </suiteXmlFiles>
        <argLine>
            --add-opens java.base/java.lang=ALL-UNNAMED
        </argLine>
    </configuration>
</plugin>

פתרון זה מאפשר להשתמש ב-Appium עם JDK 17. ארגומנט JVM זה מורה לזמן הריצה של Java לאפשר גישה רפלקטיבית לחבילות שאינן מיוצאות, דרישה הכרחית כדי ש-cglib יעבוד עם JDK 17.

כדי להוסיף את ארגומנט ה-JVM ב-IntelliJ, יש לעבור לתצורת ההרצה ולהוסיף אותו תחת שדה אפשרויות ה-VM:

JVM argument in IntelliJ

או שתוכל להתקין את התוסף JVM Arguments Setter. תוסף זה יוסיף אוטומטית את ארגומנטי ה-JVM הדרושים לפרויקט שלך, ויחסוך לך את הטרחה של הוספתם ידנית בכל פעם.

JVM Arguments Setter plugin

בדיקות מהנות!


הציעו שינויים

מוכנים לבנות את מפת הדרכים שלכם? נתחיל כאן


הפוסט הקודם
אוטומציה של בדיקות - כיצד להרחיב את פונקציונליות סלניום באמצעות שיטות הרחבה של לומבוק
הפוסט הבא
אוטומציית בדיקות - כיצד להוסיף נתוני בקרת גרסאות Git לדוח Allure בפייתון