คู่มือนี้อธิบายวิธีเรียกใช้ 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-version
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 \ --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 เพื่อดูตัวเลือกการทดสอบที่พร้อมใช้งานโดยทั่วไปหรืออยู่ในเวอร์ชันเบต้า