Android device ที่ใช้ได้บน Firebase Test Lab มีกี่รุ่นกันนะ?
ในฐานะของ mobile developer มองว่าการเทสเป็นสิ่งสำคัญ และการเทสมีหลายวิธีเช่นกัน เพื่อให้แอพของเราทำงานได้อย่างราบรื่น

อีกหนึ่งในวิธีการเทสคือการใช้ Firebase Test Lab ซึ่งคุณเองอาจจะสงสัยว่า มี device ไหนที่เราสามารถใช้เทสได้บ้างนะ ทั้ง iOS และ Android แล้วเราจะ list ข้อมูลของ device มาเก็บไว้ยังไงดีนะ
Firebase Test Lab คืออะไร?
เราเองก็ไม่แน่ใจว่ามีใครใช้ Firebase Test Lab อยู่ไหมนะ?
Firebase Test Lab เป็น feature ที่ให้เราเทสแอพของเรา ผ่านเครื่องที่อยู่บน cloud ซึ่งมันอยู่ใน Google data center นั่นแหละ และเขามีเครื่องหลากหลายมาก ๆ ทั้งเครื่องจริง และเครื่อง visual
สามารถใช้ได้ทั้ง iOS และ Android เลย อีกทั้งยังสามารถเชื่อมต่อกับ Firebase Console, Android Studio และ gcloud CLI อีกด้วย แล้วเอามาใช้กับระบบ CI (Continuous Integration) ได้ด้วย
เอ้ออีกข้อดีแน่ ๆ เราไม่ต้องไปทำ device farm เองให้เสียค่าใช้จ่าย และคอยลุ้นว่าเครื่องจะแบตบวมเมื่อไหร่อีกด้วยนะ
ประเภทของการเทสบน Firebase Test Lab แบบคร่าว ๆ
อ่ะแน่นอนแบ่งเป็น iOS และ Android
Android
- Instrumentation tests: ใช้ได้กับ Espresso หรือ UI Automator
- Robo test: ให้บอทมาจิ้ม ๆ แอพ เพื่อสำรวจและทดสอบแอพของเรา
- Robo script: บอทจิ้มเองไม่แม่น งั้นเขียน script ในการเทส ซึ่งยากตรงนี้แหละ ทำยังไง ช่วยบอกที
- Game Loop test: สำหรับเทสแอพเกมส์
iOS
จะมี Robo test, Robo script และ Game Loop test เหมือนกันกับ Android เลย จะต่างนิดหน่อยที่
- XCTest: ตัวนี้ของ iOS เท่าที่อ่าน document เขาสามารถทำได้หลายอย่างมาก อย่าง unit test, performance test, UI test ซึ่งเราเป็น Android Developer จึงไม่แน่ใจในการใช้งานตรงนี้
ปล. ระยะเวลาการเทสสามารถรันเทสบน physical device ได้ 45 นาที และบน virtual device ได้ 60 นาที
Process วิธีการใช้งาน Firebase Test Lab
สามารถใช้งานได้ในฝั่งของ iOS และ Android นะ
ถ้าใช้ผ่าน Firebase Console ของตัว Firebase Test Lab จะเป็นการประมาณนี้
- เลือกประเภทการเทส และ OS ที่ต้องการ
- แต่ละประเภทก็เตรียมต่างกัน เช่น
- Instrumentation Test (Android): upload APK หรือ AAB สำหรับตัวแอพ และสำหรับเทส
- Robo (Android): upload APK หรือ AAB เพื่อทำ Robo Test และอัพ Robo script ถ้าอยากเทสแบบ Robo script
- XCTest (iOS): upload XCTest package ที่เป็น .zip พร้อมระบุ Xcode version
- Robo (IOS): upload IPA เพื่อทำ Robo Test และอัพ Robo script ถ้าอยากเทสแบบ Robo script ในส่วนนี้ยังเป็น beta อยู่
- เลือกเครื่องที่เราต้องการ
- รอเวลา
ทีงี้ตอนเลือกเครื่องเนี่ย ฝั่ง Android มีเครื่องให้เลือกเยอะมาก เลือกอะไรแบบไหนดีน้า เยอะแยะไปหมด และถ้าอยากดูทั้งหมดก่อนตัดสินใจล่ะ!
ถึงเวลามา list device ที่มีใน Firebase Test Lab กัน
ก่อนอื่นเลยติดตั้ง gcloud CLI กันก่อน
นอกจากเราจะใช้ Firebase Test Lab ผ่าน Firebase console แล้ว เรายังสามารถใช้ผ่าน gcloud CLI ได้อีกด้วยนะ (ถ้า Android อีกวิธีใช้ผ่าน Android Studio ได้ด้วย) และเราดู device ทั้งหมดได้ผ่าน gcloud CLI นี่แหละ
ก่อนอื่นมา setup กันก่อน โดยการ download Google Cloud SDK ซึ่งเครื่อง mac น่าจะลง Python ให้แบบ default ก็มา check Python version ก่อนว่าตรงกับที่ gcloud CLI support ไหม จากนั้น download ตัว package มาติดตั้ง แล้ว extract ออกมาเพื่อ install script
จากนั้นมา init กัน
gcloud init
และ login ให้เรียบร้อย
gcloud auth login
เมื่อ setup อะไรเรียบร้อยแล้ว มาค้นหา device ใน Firebase Test Lab ทั้งหมดที่ใช้งานได้กัน
สำหรับ Android
gcloud firebase test android models list

ถ้าอยาก save เก็บก็ต่อท้ายไปแบบนี้
gcloud firebase test android models list > android.text
ในตอนนี้ Android device บน Firebase Test Lab มีจำนวนทั้งสิ้น 93 รุ่น โดยแบ่งเป็น physical device จำนวน 77 รุ่น และ virtual จำนวน 16 รุ่นด้วยกัน สามารถเข้ามาดูได้ที่นี่เลย
และยังมีรุ่นที่กำลังจะจากไป สามารถดูในนี้ได้
ดูความจุของแต่ละเครื่องด้วย command นี้
gcloud firebase test android list-device-capacities

และดูรายละเอียดของแต่ละ device ได้ด้วย
gcloud firebase test android models describe {MODEL_ID}
เช่น อยากดู Galaxy S22 ก็ดู MODEL_ID ซึ่งมันคือ r0q
gcloud firebase test android models describe r0q

และสำหรับ iOS
gcloud firebase test ios models list
ก็ตามนี้

ต่าง device จาก Android Device Streaming ยังไง?
ตัว Android Device Streaming เป็นบริการที่เป็น sub ของ Firebase Test Lab อีกทีนึง เป็นการ remote เข้าไปใช้ device จริงจาก Google's secure data centers เช่นกัน ต่างจาก Firebase Test Lab ปกติที่เราทำอะไรกับเครื่องไม่ได้ คนทำคือบอท
โดยรวมคือ แบรนด์อาจจะน้อยกว่าตัวปกติ และรุ่นแบบ Fold เนี่ยยย ไม่มีใน Firebase Test Lab ปกติหรอกนะ แล้ว Galaxy รุ่นล่าสุดคือ S24 เลยน้า

เกี่ยวกับ Android Device Streaming

ถ้าอยากเอา Firebase Test Lab ไปทำอะไรเพิ่ม อ่านต่อได้ที่บล็อกพี่เอกเลย

ทั้งหมดก็จะประมาณนี้เลย
ติดตามข่าวสารตามช่องทางต่าง ๆ และทุกช่องทางโดเนทกันไว้ที่นี่เลย แนะนำให้ใช้ tipme เน้อ ผ่าน promptpay ได้เต็มไม่หักจ้า
ติดตามข่าวสารแบบไว ๆ มาที่ Twitter เลย บางอย่างไม่มีในบล็อก และหน้าเพจนะ
สวัสดีจ้า ฝากเนื้อฝากตัวกับชาวทวิตเตอร์ด้วยน้าา
— Minseo | Stocker DAO (@mikkipastel) August 24, 2020