Appium ความสามารถที่ต้องการสำหรับ Android โปรแกรมจำลอง [ตัวอย่าง]

บทช่วยสอนนี้จะช่วยให้คุณเข้าใจเครื่องมืออัตโนมัติ APPIUM โดยจะครอบคลุมถึงความสามารถที่ต้องการและการใช้งาน APPIUM กับ Maven

ในบทช่วยสอนนี้ คุณจะได้เรียนรู้-

ความสามารถที่ต้องการคืออะไร

'ความสามารถที่ต้องการ' ช่วยให้เราสามารถปรับเปลี่ยนพฤติกรรมของเซิร์ฟเวอร์ในขณะที่ระบบอัตโนมัติ ใน Appiumเป็นประเภทของแฮชแมปหรือคู่คีย์-ค่า ที่ใช้ในการส่งคำสั่งไปยังเซิร์ฟเวอร์ APPIUM ใน APPIUM คำสั่งไคลเอนต์ทั้งหมดจะทำงานในบริบทของเซสชัน

ตัวอย่างเช่น ไคลเอนต์ส่งคำขอ POST/เซสชันที่ประกอบด้วยวัตถุ JSON ไปยังเซิร์ฟเวอร์ APPIUM

ดังนั้น ในการส่งคำขอที่ต้องการหรือเพื่อรักษาเซสชันที่ต้องการกับเซิร์ฟเวอร์ จึงมีการใช้ชุดคู่คีย์และค่า สิ่งนี้เรียกว่า 'ความสามารถที่ต้องการ'

import io.appium.java_client.AppiumDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
{
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("deviceName","Android Emulator");
        capabilities.setCapability("platformVersion", "4.4");
}

บทบาทสำคัญของความสามารถที่ต้องการ-

  • 'DesiredCapabilities' ช่วยให้ผู้ใช้ควบคุมคำขอเซสชันกับเซิร์ฟเวอร์ ตัวอย่างเช่น หากเราต้องการเซสชัน iOS เราอาจตั้งค่าความสามารถเป็น PlatformName = iOS หรือถ้าเราต้องการ Android session เราอาจตั้งค่า Capability เป็น PlatformName = Android.
  • 'DesiredCapabilities' ใช้เพื่อตั้งค่าอินสแตนซ์ Webdriver เช่น: Firefoxไดร์เวอร์, ChromeDriver, InternetExplorerDriver ฯลฯ
  • DesiredCapability มีประโยชน์มากสำหรับ Selenium กริด เช่น ใช้เพื่อเข้าถึงกรณีทดสอบที่แตกต่างกันบนเบราว์เซอร์ที่แตกต่างกันและระบบปฏิบัติการที่แตกต่างกัน จากกริด DesiredCapability ที่กล่าวถึง ฮับจะชี้ไปที่โหนดที่สอดคล้องกัน ที่นี่ โหนดเหล่านี้จะถูกกำหนดโดยใช้เมธอดคุณสมบัติ 'set' เช่น:
    DesiredCapabilities obj = new DesiredCapabilities(); 
    obj.setBrowserName("firefox"); 
    obj.setVersion("18.0.1"); 
    obj.setPlatform(org.openqa.selenium.Platform.WINDOWS);					
    
  • ความสามารถที่ต้องการคือแพ็คเกจที่กำหนดโดยไลบรารี ก่อนที่จะใช้ 'DesiredCapabilities' ควรนำเข้าจากไลบรารีที่กล่าวถึงด้านล่าง
    Org.openqa.selenium.remote.DesiredCapabilities

APPIUM รองรับทั้ง Android และ iOS จึงมีชุดแยกของ Appium ความสามารถของเซิร์ฟเวอร์

ตารางด้านล่างแสดงบางส่วนที่ใช้กันทั่วไป Android ความสามารถและความคุ้มค่าในการใช้งาน-

ความสามารถในการ Descriptไอออน ค่านิยม/การใช้งาน
แอพแพ็คเกจ ต้องการโทร Java แพ็คเกจใน Android ที่ผู้ใช้ต้องการเรียกใช้ ค่า= com.example.myapp/

Obj.setCapability(“appPackage”, “com.whatsapp”);

กิจกรรมแอป Application Activity ที่ผู้ใช้ต้องการเปิดจากแพ็คเกจ ค่า = MainActivity, .Settings

Obj.setCapability(“appActivity”, “com.whatsapp.Main”);

แอพรอแพ็คเกจ แพ็คเกจที่แอปพลิเคชันต้องรอ ค่า=com.example.android.myapp
แอพรอกิจกรรม ใด Android กิจกรรมที่ผู้ใช้ต้องใช้เวลารอ ค่า= กิจกรรมสแปลช

ความสามารถ setCapability (“appWaitActivity”, “com.example.game.SplashActivity”)

หมายเหตุ– อ้างอิงลิงค์นี้ 'https://appium.io/docs/en/2.0/' เพื่อดูเพิ่มเติม Android ความสามารถในการ

ตารางด้านล่างแสดงความสามารถของ iOS ที่ใช้กันทั่วไปและความคุ้มค่าในการใช้งาน

ความสามารถในการ Descriptไอออน ความคุ้มค่า
หมดเวลาการเปิดตัว เวลาทั้งหมด (เป็นมิลลิวินาที) เพื่อรอเครื่องมือวัด 2000
คุณทำ เพื่อระบุหมายเลขอุปกรณ์เฉพาะสำหรับอุปกรณ์ฟิสิคัลที่เชื่อมต่อ 166สตู4

บันทึก- อ้างอิงลิงค์นี้ 'https://appium.io/docs/en/2.0/guides/caps/' เพื่อดูความสามารถของ iOS เพิ่มเติม

การแยกข้อมูลแพ็คเกจและกิจกรรม

แพ็คเกจเกี่ยวข้องกับไฟล์หรือคลาสที่รวมกลุ่ม มันให้โครงสร้างที่จัดระเบียบสำหรับการเขียนโปรแกรมแบบโมดูลาร์ ใน Javaแพ็คเกจต่างๆ จะถูกเก็บไว้ในไฟล์ Jar เดียว ผู้ใช้สามารถเรียกใช้ไฟล์ jar เพื่อดำเนินการเต็มรูปแบบได้อย่างง่ายดาย แนวคิดที่คล้ายกันนี้เกิดขึ้นในโลกการพัฒนาแอปพลิเคชันมือถือ

In Android ระบบปฏิบัติการ แอปพลิเคชันทั้งหมดติดตั้งในรูปแบบแพ็คเกจ JAVA ดังนั้นในการดึงข้อมูลเส้นทางของแพ็คเกจ Android ใช้คลาส PackageManager

จะดึงข้อมูลแพ็คเกจและกิจกรรมของแอปพลิเคชันที่ติดตั้งก่อนและหลัง มีการติดตั้งใน Android อุปกรณ์

คุณสามารถรับอินสแตนซ์ของคลาส PackageManager ได้โดยการเรียก getPackageManager()

วิธีนี้สามารถเข้าถึงและจัดการแพ็คเกจและการอนุญาตที่เกี่ยวข้องของแอพพลิเคชั่นที่ติดตั้ง

ตัวอย่างเช่น -

PackageManager pManager = getPackageManager();
List<ApplicationInfo> list = pManager.getInstalledApplications(PackageManager.GET_META_DATA)

สรุป

  • ความสามารถที่ต้องการจะทำงานบนคู่คีย์-ค่าเสมอเพื่อส่งคำสั่งไปยัง APPIUM Server
  • ใช้คลาส 'PackageManager' เพื่อดึงข้อมูลแอปพลิเคชันมา Android.