คู่มือนี้อธิบายวิธีเรียกใช้การทดสอบ 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
สำหรับการให้สิทธิ์คำขอข้อความ Push ผู้ใช้สามารถสร้างโทเค็นเว็บ JSON โดยใช้คีย์การรับรองส่วนตัวพร้อมกับรหัสคีย์ C7FD9DJAA8 และรหัสทีม 9CKCGNNUQN โทเค็นที่สร้างขึ้นจะใช้ได้เป็นเวลา 1 ชั่วโมงและต้องรีเฟรชทุกๆ 60 นาที อ่านข้อมูลเพิ่มเติมเกี่ยวกับ การสร้างการเชื่อมต่อที่อิงตามโทเค็นกับ APNs
กลุ่มแอปรหัสกลุ่มแอปเป็นรหัสที่ไม่ซ้ำกันแบบสากล ซึ่งหมายความว่าเมื่อเราลงนามแอปของผู้ใช้อีกครั้ง เราจะใช้ได้เฉพาะรหัสกลุ่มแอปที่เชื่อมโยงกับบัญชีนักพัฒนาแอป Test Lab เท่านั้น หากการทดสอบอาศัยกลุ่มแอป การทดสอบจะล้มเหลว
เรียกใช้การทดสอบ Game Loop
เรียกใช้คำสั่ง gcloud beta firebase test ios run และใช้แฟล็กต่อไปนี้เพื่อกำหนดค่าการเรียกใช้
| แฟล็กสำหรับการทดสอบ Game Loop | |
|---|---|
--type
|
ต้องระบุ: ระบุประเภทการทดสอบ iOS ที่ต้องการเรียกใช้ คุณสามารถป้อนประเภทการทดสอบ |
--app
|
ต้องระบุ: Absolute Path (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
คุณสามารถใช้สคริปต์ของ Shell หรือไฟล์แบตช์เพื่อทำให้คำสั่งทดสอบแอปบนอุปกรณ์เคลื่อนที่เป็นแบบอัตโนมัติ ซึ่งคุณอาจเรียกใช้โดยใช้บรรทัดคำสั่ง 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 เพื่อสำรวจตัวเลือกการทดสอบที่เวอร์ชันสำหรับผู้ใช้ทั่วไปหรืออยู่ในเวอร์ชันเบต้า