คู่มือนี้อธิบายวิธีเรียกใช้ XCTest หรือการทดสอบ Game Loop โดยใช้ gcloud CLI
ขั้นตอนที่ 1: กำหนดค่าสภาพแวดล้อม Google Cloud SDK ในเครื่อง
- ดาวน์โหลด Google Cloud SDK
- ตรวจสอบว่าการติดตั้งเป็นเวอร์ชันล่าสุดและมีคำสั่ง
gcloud firebaseดังนี้gcloud 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
หากต้องการช่วยคุณระบุและค้นหาเมทริกซ์การทดสอบใน Firebase คอนโซล คุณสามารถติดป้ายกำกับเมทริกซ์การทดสอบโดยใช้แฟล็ก
--client-details matrixLabel="<label>"ในตัวอย่างต่อไปนี้ (ไม่บังคับ)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
สำหรับการให้สิทธิ์คำขอพุชการแจ้งเตือน ผู้ใช้สามารถสร้างโทเค็นเว็บ JSON ได้โดยใช้คีย์การลงนามส่วนตัว พร้อมกับรหัสคีย์ - C7FD9DJAA8 และรหัสทีม - 9CKCGNNUQN โทเค็นที่สร้างขึ้นจะใช้งานได้เป็นเวลา 1 ชั่วโมงและต้องรีเฟรชทุกๆ 60 นาที อ่านเพิ่มเติมเกี่ยวกับ การสร้างการเชื่อมต่อที่ใช้โทเค็นกับ APNs
กลุ่มแอปรหัสกลุ่มแอปจะไม่ซ้ำกัน ซึ่งหมายความว่าเมื่อลงนามแอปของผู้ใช้อีกครั้ง เราจะใช้ได้เฉพาะรหัสกลุ่มแอปที่เชื่อมโยงกับTest Labบัญชีนักพัฒนาแอป หากการทดสอบของคุณต้องอาศัย กลุ่มแอป การทดสอบจะล้มเหลว
ทำการทดสอบ Game Loop
เรียกใช้คำสั่ง gcloud beta firebase test ios run และใช้แฟล็กต่อไปนี้
เพื่อกำหนดค่าการเรียกใช้
| Flag สำหรับการทดสอบ 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
คุณสามารถใช้สคริปต์เชลล์หรือไฟล์ชุดคำสั่งเพื่อทำให้คำสั่งทดสอบแอปบนอุปกรณ์เคลื่อนที่โดยอัตโนมัติ ซึ่งปกติแล้วคุณจะเรียกใช้โดยใช้บรรทัดคำสั่ง 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 มีรหัสออกหลายรายการที่คุณใช้เพื่อทำความเข้าใจผลการทดสอบที่คุณเรียกใช้โดยใช้สคริปต์หรือไฟล์ชุดคำสั่งได้ดียิ่งขึ้น
| รหัสออก | หมายเหตุ |
|---|---|
| 0 | การดำเนินการทดสอบทั้งหมดผ่านแล้ว |
| 1 | เกิดข้อผิดพลาดทั่วไป สาเหตุที่เป็นไปได้ ได้แก่ ไม่มีชื่อไฟล์หรือเกิดข้อผิดพลาดเกี่ยวกับ HTTP/เครือข่าย |
| 2 | การทดสอบสิ้นสุดลงเนื่องจากมีการระบุคำสั่งหรืออาร์กิวเมนต์ที่ไม่รู้จัก |
| 10 | กรอบการทดสอบอย่างน้อย 1 รายการ (คลาสหรือเมธอดของคลาสที่ทดสอบ) ภายใน การดำเนินการทดสอบไม่ผ่าน |
| 15 | Firebase Test Lab ไม่สามารถระบุได้ว่าเมทริกซ์การทดสอบผ่านหรือ ไม่ผ่าน เนื่องจากเกิดข้อผิดพลาดที่ไม่คาดคิด |
| 19 | ผู้ใช้ยกเลิกการทดสอบ |
| 20 | เกิดข้อผิดพลาดเกี่ยวกับโครงสร้างพื้นฐานของการทดสอบ |
ขั้นตอนที่ 4: ตรวจสอบผลการทดสอบ
เมื่อการทดสอบเริ่มขึ้น คุณจะได้รับลิงก์ไปยังหน้าผลการทดสอบ การทดสอบอาจใช้เวลาหลายนาที ขึ้นอยู่กับจำนวนการกำหนดค่าต่างๆ ที่คุณเลือกและระยะหมดเวลาของการทดสอบที่ตั้งไว้สำหรับการทดสอบ หลังจากทำการทดสอบแล้ว คุณจะตรวจสอบผลการทดสอบได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีตีความผลการทดสอบได้ที่ การวิเคราะห์ผลลัพธ์ของ Firebase Test Lab
ขั้นตอนถัดไป
อ่านเอกสารประกอบของ Google Cloud SDK เพื่อดูตัวเลือกการทดสอบที่พร้อมใช้งานโดยทั่วไปหรืออยู่ในเวอร์ชันเบต้า