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.