สถาปัตยกรรม Appium สำหรับการทดสอบแอปพลิเคชันมือถือ
เผยแพร่แล้ว: 2020-06-26สารบัญ
ภาพรวม Appium
Appium คือเครื่องมือ/กรอบการทดสอบแอปพลิเคชันมือถือฟรีที่ให้การทำงานอัตโนมัติสำหรับแอปพลิเคชันมือถือ iOS และ Android Appium เป็นสถาปัตยกรรมไคลเอนต์ - เซิร์ฟเวอร์ที่ยอมรับรหัสทดสอบที่เขียนใน Java, Python, Ruby, JavaScript เป็นต้น
หัวใจสำคัญของ Appium คือเว็บเซิร์ฟเวอร์ที่เขียนด้วยภาษาการเขียนโปรแกรม Node.js ที่สร้างเซสชัน iOS และ Android โดยใช้โปรโตคอลแบบมีสาย JSON
Appium Server ดำเนินการดังต่อไปนี้
- รับการเชื่อมต่อจากไคลเอนต์ในรูปแบบของวัตถุ JSON ผ่าน HTTP
- เริ่มเซสชันแล้วส่งคืน ID เซสชัน
- ฟังคำสั่งที่ออก
- ดำเนินการคำสั่งเหล่านี้บนอุปกรณ์มือถือ
- ตอบสนองด้วยการตอบสนอง HTTP
แหล่งที่มา
แนวคิดหลักของ Appium
ก่อนดำดิ่งสู่ สถาปัตยกรรม Appium อันดับแรก ให้เราเข้าใจแนวคิดหลักที่เกี่ยวข้องกับ สถาปัตยกรรม Appium
ลูกค้า Appium
ไคลเอ็นต์ Appium เป็นโค้ดสคริปต์อัตโนมัติที่เขียนในภาษาใดๆ ที่คุณคุ้นเคย (เช่น PHP, Java , Phyton เป็นต้น) ไคลเอนต์ Appium เก็บรายละเอียดการกำหนดค่าของอุปกรณ์มือถือและแอปพลิเคชันพร้อมกับตรรกะ/รหัสเพื่อเรียกใช้กรณีทดสอบ
Appium เซิร์ฟเวอร์
เซิร์ฟเวอร์ Appium เป็นเซิร์ฟเวอร์ HTTP ที่เขียนด้วยภาษาการเขียนโปรแกรม Node.js ที่ได้รับการเชื่อมต่อและคำขอคำสั่งจากไคลเอนต์ Appium ในรูปแบบ JSON และดำเนินการคำสั่งเหล่านั้นบนอุปกรณ์มือถือ Appium Server เริ่มทำงานก่อนที่จะเรียกใช้รหัสอัตโนมัติ

เซิร์ฟเวอร์โต้ตอบกับแพลตฟอร์ม iOS และ Android และสร้างเซสชันเพื่อโต้ตอบกับอุปกรณ์ปลายทางของแอปพลิเคชันมือถือ
อ่าน: แนวคิดและหัวข้อโครงการ Android ที่ได้รับความนิยม 20 อันดับแรกสำหรับผู้เริ่มต้น
อุปกรณ์ปลายทาง
อุปกรณ์ปลายทางส่วนใหญ่เป็นอุปกรณ์พกพาแบบเรียลไทม์หรือเครื่องจำลอง สคริปต์อัตโนมัติจะดำเนินการในอุปกรณ์ปลายทางโดยเซิร์ฟเวอร์ Appium โดยคำสั่งของลูกค้า
JSON Wire Protocol
ในสถาปัตยกรรม Appium โปรโตคอลสาย JSON เป็นกลไกการขนส่งที่ใช้เพื่อสร้างการสื่อสารระหว่างไคลเอ็นต์ Appium และเซิร์ฟเวอร์ Appium โปรโตคอลนี้ควบคุมการทำงานของอุปกรณ์เคลื่อนที่ต่างๆ ในเซสชัน เป็นชุดของปลายทางที่กำหนดไว้ล่วงหน้าซึ่งเปิดเผยผ่าน RESTful API ตัวอย่างเช่น หากไคลเอ็นต์ต้องการส่งข้อมูลไปยังเซิร์ฟเวอร์ ไคลเอ็นต์จะแปลงเป็นออบเจ็กต์ JSON และพุชไปยังเซิร์ฟเวอร์ จากนั้นเซิร์ฟเวอร์จะแยกวิเคราะห์วัตถุ JSON ที่ได้รับและแปลงกลับเป็นข้อมูลเพื่อใช้งาน

สถาปัตยกรรม Appium
ตอน นี้ ให้เราเข้าใจ สถาปัตยกรรม Appium
ดังที่กล่าวไว้ข้างต้น เซิร์ฟเวอร์ Appium เป็นเซิร์ฟเวอร์ HTTP ที่อ่านคำขอ HTTP จาก ไลบรารีไคลเอนต์ ในรูปแบบ JSON และส่งคำขอเหล่านี้ไปยังแพลตฟอร์มที่เหมาะสม เซิร์ฟเวอร์ Appium รับรู้คำขอเหล่านี้และสร้างเซสชันการทำงานอัตโนมัติด้วยอุปกรณ์ปลายทางที่เกี่ยวข้อง เมื่อสร้างเซสชันแล้ว เซิร์ฟเวอร์ Appium จะเริ่มดำเนินการกรณีทดสอบในอุปกรณ์ปลายทาง
เซิร์ฟเวอร์ Appium จัดการคำขอที่แตกต่างกันสำหรับ iOS และ Android ขึ้นอยู่กับแพลตฟอร์มที่ใช้งาน ส่วนต่อไปนี้จะอธิบายวิธีที่ Appium เรียกใช้คำสั่งต่างๆ บนแพลตฟอร์มเหล่านี้
Appium ทำงานในอุปกรณ์ iOS
บนอุปกรณ์ iOS Appium ใช้ UIAutomation API (ไลบรารี JavaScript ที่บริษัท Apple จัดหาให้) เพื่อเชื่อมต่อกับองค์ประกอบอินเทอร์เฟซผู้ใช้ของแอปพลิเคชัน
รูปสถาปัตยกรรม Appium iOS ด้านบนอธิบาย สถาปัตยกรรม Appium สำหรับการทำงานอัตโนมัติของ iOS ให้เราถอดรหัส โครงสร้างสถาปัตยกรรม iOS Appium ทีละขั้นตอน:
- ไคลเอ็นต์ Appium สื่อสารกับเซิร์ฟเวอร์ Appium โดยใช้โปรโตคอลสาย JSON และส่งคำสั่งในรูปแบบ JSON ไปยังเซิร์ฟเวอร์
- จากนั้นเซิร์ฟเวอร์จะสร้างการเชื่อมต่อกับไคลเอนต์และส่งต่อคำขอไปยัง ICS (เซิร์ฟเวอร์คำสั่งเครื่องมือ) เซิร์ฟเวอร์ Appium ยังพุชไฟล์ bootstrap.js ไปยังอุปกรณ์ iOS จากนั้น ICC (ไคลเอ็นต์คำสั่งเครื่องมือ) จะรับคำสั่งและเรียกใช้ในไฟล์ bootstrap.js ภายในสภาพแวดล้อมอุปกรณ์ iOS
- เมื่อการดำเนินการข้างต้นเสร็จสิ้น รายละเอียดบันทึกของคำสั่งที่ดำเนินการจะถูกส่งกลับไปยังเซิร์ฟเวอร์โดยไคลเอ็นต์
Appium ทำงานในอุปกรณ์ Android
บนอุปกรณ์ Android Appium จะใช้เฟรมเวิร์ก UIAutomator ที่พัฒนาโดยนักพัฒนา Android เพื่อโต้ตอบกับองค์ประกอบอินเทอร์เฟซผู้ใช้ของแอปพลิเคชัน UI Automator เป็นเฟรมเวิร์กที่ใช้ในการทดสอบอินเทอร์เฟซผู้ใช้

รูปสถาปัตยกรรม Appium Android ด้านบนอธิบายสถาปัตยกรรม Appium สำหรับระบบอัตโนมัติของ Android ตัวเลขด้านบนแทนที่ bootstrap.js ด้วย bootstarp.jar
เรียนรู้: Android SDK: บทช่วยสอนโดยละเอียดสำหรับผู้เริ่มต้น
ให้เราถอดรหัสสถาปัตยกรรม Android Appium ทีละขั้นตอน
- ไคลเอ็นต์ Appium สื่อสารกับเซิร์ฟเวอร์ Appium โดยใช้โปรโตคอลสาย JSON และส่งคำสั่งในรูปแบบ JSON ไปยังเซิร์ฟเวอร์
- จากนั้นเซิร์ฟเวอร์ Appium จะสร้างการเชื่อมต่อกับไคลเอนต์และส่งต่อคำขอไปยังตัวควบคุม ICS UiAutomator เซิร์ฟเวอร์ Appium ยังพุชไฟล์ bootstrap.jar ไปยังอุปกรณ์ Android คำสั่ง UiAutomator ไคลเอ็นต์จะรับคำสั่งและเรียกใช้ในไฟล์ bootstrap.jar ภายในสภาพแวดล้อมอุปกรณ์ Android
- เมื่อการดำเนินการข้างต้นเสร็จสิ้น รายละเอียดบันทึกของคำสั่งที่ดำเนินการจะถูกส่งกลับไปยังเซิร์ฟเวอร์ Appium โดยไคลเอ็นต์
อ่านเพิ่มเติม: Full-Stack vs Android Developer: คุณควรเลือกอันไหน
บทสรุป
Appium เป็นหนึ่งในแพลตฟอร์มที่ได้รับความนิยมมากที่สุดสำหรับการทดสอบแอปพลิเคชันบนมือถืออย่างไม่ต้องสงสัย ถึงตอนนี้ คุณได้เรียนรู้เกี่ยวกับ ภาพรวมของ สถาปัตยกรรม Appium เวิร์กโฟลว์ และการทำงานของ Appium บนแพลตฟอร์ม iOS และ Android แล้ว
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับการพัฒนาซอฟต์แวร์แบบฟูลสแตก โปรดดูประกาศนียบัตร PG ของ upGrad & IIIT-B ด้านการพัฒนาซอฟต์แวร์แบบครบวงจร ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง โครงการมากกว่า 9 โครงการ และ การมอบหมายงาน สถานะศิษย์เก่า IIIT-B โครงการหลักที่นำไปปฏิบัติจริง และความช่วยเหลือด้านงานกับบริษัทชั้นนำ