คำแนะนำนี้จะอธิบายวิธีเรียกใช้การทดสอบ XCTest หรือการทดสอบ Game Loop โดยใช้ gcloud CLI
ขั้นตอนที่ 1: กำหนดค่าสภาพแวดล้อม Google Cloud SDK ในพื้นที่
- ดาวน์โหลด Google Cloud SDK
- ตรวจสอบว่าการติดตั้งของคุณเป็นปัจจุบันและมี
คำสั่ง
gcloud firebase
:gcloud components update
- ลงชื่อเข้าสู่ระบบ CLI ของ gcloud โดยใช้บัญชี 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
ลงนามแอปพลิเคชันอีกครั้งด้วย Bundle-identifier ใหม่เพื่อรองรับข้อเสนอพิเศษ
ดังนั้น โปรดตรวจสอบว่าไม่มีทรัพยากรในไฟล์ ZIP
ที่มีการอ้างอิงไปยัง Bundle Identifier ของแอปโดยตรง
- ข้อความ Push
apns-environment
- VPN ส่วนบุคคล
com.apple.developer.networking.vpn.api
ผู้ใช้สามารถสร้างโทเค็นเว็บ JSON เพื่อให้สิทธิ์คําขอการแจ้งเตือนแบบพุชได้โดยใช้คีย์การรับรองส่วนตัวพร้อมกับรหัสคีย์ C7FD9DJAA8 และรหัสทีม 9CKCGNNUQN โทเค็นที่สร้างขึ้นจะใช้งานได้ 1 ชั่วโมงและต้องรีเฟรชทุก 60 นาที อ่านเพิ่มเติมใน กำลังสร้างการเชื่อมต่อตามโทเค็นกับ APN
กลุ่มแอปรหัสกลุ่มแอปจะไม่ซ้ำกันทั่วโลก ซึ่งหมายความว่าเมื่อเรา รับรองแอปของผู้ใช้อีกครั้ง เราจะใช้ได้เฉพาะรหัสกลุ่มแอป เชื่อมโยงกับบัญชีนักพัฒนาแอป Test Lab หากการทดสอบต้องใช้ ในกลุ่มแอป การทดสอบของคุณจะล้มเหลว
ทำการทดสอบ Game Loop
เรียกใช้คำสั่ง gcloud beta firebase test ios run
และใช้ตัวเลือกต่อไปนี้เพื่อกำหนดค่าการเรียกใช้
แฟล็กสำหรับการทดสอบ Game Loop | |
---|---|
--type
|
จำเป็น: ระบุประเภทการทดสอบ iOS ที่ต้องการเรียกใช้ คุณสามารถป้อน
ประเภทการทดสอบ |
--app
|
ต้องระบุ: เส้นทางสัมบูรณ์ (GCS หรือระบบไฟล์) ไปยังไฟล์ IPA ของแอป แฟล็กนี้ใช้ได้เฉพาะเมื่อเรียกใช้การทดสอบ Game Loop เท่านั้น |
--scenario-numbers
|
ลูป (หรือสถานการณ์จำลอง) ที่คุณต้องการเรียกใช้ในแอป คุณสามารถป้อนการวนซ้ำ 1 รายการ รายการหรือการวนซ้ำ หรือช่วงของการวนซ้ำ ลูปเริ่มต้นคือ 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 เพื่อสำรวจตัวเลือกการทดสอบที่ พร้อมใช้งานสำหรับผู้ใช้ทั่วไป หรือในเบต้า