คู่มือนี้อธิบายวิธีเรียกใช้ XCTest หรือการทดสอบ Game Loop โดยใช้ gcloud CLI
ขั้นตอนที่ 1: กำหนดค่าสภาพแวดล้อม Google Cloud SDK ในเครื่อง
- ดาวน์โหลด Google Cloud SDK
- ตรวจสอบว่าการติดตั้งเป็นเวอร์ชันล่าสุดและมีคำสั่ง
gcloud firebasegcloud components update - เข้าสู่ระบบ gcloud CLI โดยใช้บัญชี Google
gcloud auth login - ตั้งค่าโปรเจ็กต์ Firebase ใน gcloud โดยที่ PROJECT_ID คือ
รหัสของโปรเจ็กต์ Firebase
gcloud config set project PROJECT_ID
ซึ่งรวมถึงเครื่องมือ gcloud CLI
ขั้นตอนที่ 2: เรียกใช้การทดสอบ
เรียกใช้ XCTest
อัปโหลดไฟล์ .zip ของการทดสอบโดยเรียกใช้คำสั่งต่อไปนี้ (หากคุณ ยังไม่ได้แพ็กเกจแอป โปรดดู การแพ็กเกจ XCTest)
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
เลือกมิติข้อมูลการทดสอบ
Test Lab ช่วยให้คุณเรียกใช้การทดสอบใน iOS เวอร์ชัน อุปกรณ์ การวางแนวหน้าจอ และภาษาต่างๆ ได้ การกำหนดค่าเหล่านี้เรียกว่า มิติข้อมูลการทดสอบของการทดสอบ หากต้องการดูตัวเลือกสำหรับมิติข้อมูลแต่ละรายการ (เช่น เวอร์ชัน Xcode ที่รองรับสำหรับ iOS เวอร์ชันของอุปกรณ์) ให้แทนที่
models,versionsหรือlocalesด้วยdimensionในคำสั่งต่อไปนี้gcloud firebase test ios dimension list
การวางแนวหน้าจอจะค่อนข้างเรียบง่ายกว่า เนื่องจากมีตัวเลือกเพียง
portraitและlandscapeดูรายการมิติข้อมูลการทดสอบ แล้วเลือกการผสมผสาน 2-3 รายการที่คุณต้องการเรียกใช้การทดสอบ ไปที่ แพ็กเกจราคา เพื่อดู จำนวนการผสมผสานสูงสุดที่คุณเรียกใช้ได้ต่อวัน
เมื่อเลือกชุดมิติข้อมูลการทดสอบแล้ว คุณสามารถให้ Test Lab เรียกใช้ การทดสอบโดยใช้คำสั่ง
firebase test ios runสำหรับมิติข้อมูลการทดสอบแต่ละชุดที่คุณต้องการทดสอบ ให้ใส่แฟล็ก--deviceแยกกันgcloud firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --device model=MODEL_ID_2,version=VERSION_ID_2,locale=LOCALE_2,orientation=ORIENTATION_2 \ etc...
การทดสอบอาจล้มเหลวเนื่องจาก Xcode เวอร์ชันที่ใช้สร้างการทดสอบไม่เข้ากันกับ Xcode เวอร์ชันเริ่มต้นที่ Test Lab ใช้ หากต้องการระบุ Xcode เวอร์ชันที่รองรับสำหรับการทดสอบ ให้ใช้แฟล็ก
--xcode-versiongcloud firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --xcode-version=15
คุณสามารถติดป้ายกำกับเมทริกซ์ทดสอบโดยใช้แฟล็ก
--client-details matrixLabel="<label>"ในตัวอย่างต่อไปนี้ เพื่อช่วยระบุและค้นหาเมทริกซ์ทดสอบใน Firebase คอนโซลgcloud beta firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --client-details matrixLabel="my label"
ทดสอบสิทธิ์พิเศษ
หากต้องการทดสอบสิทธิ์ที่ต้องใช้รหัสแอปที่ชัดเจน คุณสามารถทำได้โดย
ตั้งค่าแฟล็ก --test-special-entitlements Test Lab
จะลงชื่อแอปพลิเคชันอีกครั้งด้วยรหัสชุดซอฟต์แวร์ใหม่เพื่อรองรับการให้สิทธิ์พิเศษ
ดังนั้นตรวจสอบว่าไม่มีทรัพยากรในไฟล์ ZIP ที่มีการอ้างอิงโดยตรงไปยังรหัสชุดซอฟต์แวร์ของแอป
- ข้อความ Push
apns-environment - VPN ส่วนตัว
com.apple.developer.networking.vpn.api
หากต้องการให้สิทธิ์คำขอข้อความ Push ผู้ใช้สามารถสร้างโทเค็นเว็บ JSON ได้โดยใช้คีย์การลงชื่อส่วนตัวพร้อมกับรหัสคีย์ - C7FD9DJAA8 และรหัสทีม - 9CKCGNNUQN โทเค็นที่สร้างขึ้นจะมีอายุ 1 ชั่วโมงและต้องรีเฟรชทุกๆ 60 นาที อ่านเพิ่มเติมเกี่ยวกับ การสร้างการเชื่อมต่อกับ APNs แบบใช้โทเค็น
กลุ่มแอปรหัสกลุ่มแอปเป็นรหัสเฉพาะสากล ซึ่งหมายความว่าเมื่อเรา ลงชื่อแอปของผู้ใช้อีกครั้ง เราจะใช้ได้เฉพาะรหัสกลุ่มแอปที่ เชื่อมโยงกับบัญชีนักพัฒนาแอป Test Lab หากการทดสอบของคุณต้องใช้กลุ่มแอป การทดสอบจะล้มเหลว
ทำการทดสอบ Game Loop
เรียกใช้คำสั่ง gcloud beta firebase test ios run และใช้แฟล็กต่อไปนี้เพื่อกำหนดค่าการเรียกใช้
| แฟล็กสำหรับการทดสอบ Game Loop | |
|---|---|
--type
|
บังคับ: ระบุประเภทการทดสอบ iOS ที่คุณต้องการเรียกใช้ คุณสามารถป้อน
ประเภทการทดสอบ |
--app
|
บังคับ: เส้นทางแบบสัมบูรณ์ (GCS หรือระบบไฟล์) ไปยังไฟล์ IPA ของแอป แฟล็กนี้ใช้ได้เฉพาะเมื่อเรียกใช้การทดสอบ Game Loop |
--scenario-numbers
|
ลูป (หรือที่เรียกว่าสถานการณ์) ที่คุณต้องการเรียกใช้ในแอป คุณสามารถป้อนลูปเดียว รายการลูป หรือช่วงของลูป ลูปเริ่มต้นคือ 1
เช่น |
--device-model
|
อุปกรณ์จริงที่คุณต้องการเรียกใช้การทดสอบ (ดูอุปกรณ์ที่พร้อมใช้งาน ที่คุณใช้ได้) |
--timeout
|
ระยะเวลาสูงสุดที่คุณต้องการให้การทดสอบทำงาน คุณสามารถป้อนจำนวนเต็มเพื่อ แสดงระยะเวลาเป็นวินาที หรือป้อนจำนวนเต็มและการแจงนับเพื่อแสดงระยะเวลาเป็นหน่วยเวลาที่ยาวขึ้น เช่น
|
ตัวอย่างเช่น คำสั่งต่อไปนี้จะเรียกใช้การทดสอบ Game Loop ที่ดำเนินการลูป 1, 4, 6, 7 และ 8 ใน iPhone 8 Plus
gcloud beta firebase test ios run --type game-loop --app path/to/my/App.ipa --scenario-numbers 1,4,6-8 --device-model=iphone8plus
ดูข้อมูลเพิ่มเติมเกี่ยวกับ gcloud CLI ได้ใน เอกสารอ้างอิง
ขั้นตอนที่ 3 (ไม่บังคับ): ทำให้การทดสอบในอนาคตที่คุณสร้างขึ้นเป็นแบบอัตโนมัติ
การเขียนสคริปต์คำสั่ง gcloud ด้วย Test Lab
คุณสามารถใช้สคริปต์เชลล์หรือไฟล์ Batch เพื่อทำให้คำสั่งการทดสอบแอปบนอุปกรณ์เคลื่อนที่เป็นแบบอัตโนมัติ ซึ่งปกติแล้วคุณจะเรียกใช้โดยใช้บรรทัดคำสั่ง gcloud สคริปต์ Bash ตัวอย่างนี้จะเรียกใช้ XCTest ที่มีระยะหมดเวลา 2 นาที และรายงานว่าการเรียกใช้การทดสอบเสร็จสมบูรณ์หรือไม่
if gcloud firebase test ios run --test MyTest.zip --timeout 2m
then
echo "Test matrix successfully finished"
else
echo "Test matrix exited abnormally with non-zero exit code: " $?
fi
รหัสออกของสคริปต์
Test Lab มีรหัสออกหลายรายการที่คุณใช้เพื่อทำความเข้าใจ ผลการทดสอบที่คุณเรียกใช้โดยใช้สคริปต์หรือไฟล์ Batch ได้ดียิ่งขึ้น
| รหัสออก | หมายเหตุ |
|---|---|
| 0 | การดำเนินการทดสอบทั้งหมดผ่านแล้ว |
| 1 | เกิดความล้มเหลวทั่วไป สาเหตุที่เป็นไปได้ ได้แก่ ชื่อไฟล์ที่ไม่มีอยู่หรือข้อผิดพลาด HTTP/เครือข่าย |
| 2 | การทดสอบสิ้นสุดลงเนื่องจากมีการระบุคำสั่งหรืออาร์กิวเมนต์ที่ไม่รู้จัก |
| 10 | กรอบการทดสอบ (คลาสหรือเมธอดของคลาสที่ทดสอบ) อย่างน้อย 1 รายการในการดำเนินการทดสอบไม่ผ่าน |
| 15 | Firebase Test Lab ไม่สามารถระบุได้ว่าเมทริกซ์ทดสอบผ่านหรือ ไม่เนื่องจากเกิดข้อผิดพลาดที่ไม่คาดคิด |
| 19 | ผู้ใช้ยกเลิกเมทริกซ์ทดสอบ |
| 20 | เกิดข้อผิดพลาดเกี่ยวกับโครงสร้างพื้นฐานการทดสอบ |
ขั้นตอนที่ 4: ตรวจสอบผลการทดสอบ
เมื่อการทดสอบเริ่มขึ้น คุณจะได้รับลิงก์ไปยังหน้าผลการทดสอบ การทดสอบอาจใช้เวลาดำเนินการหลายนาที ทั้งนี้ขึ้นอยู่กับจำนวนการกำหนดค่าต่างๆ ที่คุณเลือกและระยะหมดเวลาที่ตั้งไว้สำหรับการทดสอบ หลังจากเรียกใช้การทดสอบแล้ว คุณสามารถตรวจสอบผลการทดสอบได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับ วิธีตีความผลการทดสอบได้ที่ การวิเคราะห์ผลลัพธ์Firebase Test Lab
ขั้นตอนถัดไป
อ่านเอกสารประกอบของ Google Cloud SDK เพื่อสำรวจตัวเลือกการทดสอบที่ พร้อมให้บริการโดยทั่วไป หรือใน เวอร์ชันเบต้า