คู่มือนี้อธิบายวิธีเรียกใช้การทดสอบ 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 คือ 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
ดูรายการมิติการทดสอบ และเลือกชุดค่าผสมสองสามชุดที่คุณต้องการเรียกใช้การทดสอบ ไปที่ แผนการกำหนดราคา เพื่อดูจำนวนชุดค่าผสมสูงสุดที่คุณเรียกใช้ได้ต่อวัน
เมื่อคุณเลือกชุดมิติข้อมูลการทดสอบแล้ว คุณสามารถให้ Test Lab ทำการทดสอบโดยใช้คำสั่ง
firebase test ios run
สำหรับชุดข้อมูลการทดสอบแต่ละชุดที่คุณต้องการทดสอบ ให้รวม--device
flag แยกต่างหาก: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=11.3
เพื่อช่วยคุณระบุและค้นหาเมทริกซ์ทดสอบของคุณในคอนโซล 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"
ทดสอบสิทธิ์พิเศษ
หากต้องการทดสอบการให้สิทธิ์ที่ต้องใช้ App ID ที่ชัดเจน คุณสามารถทำได้โดยตั้งค่าสถานะ --test-special-entitlements
Test Lab ลงนามแอปพลิเคชันอีกครั้งด้วยตัวระบุบันเดิลใหม่เพื่อรองรับการให้สิทธิ์พิเศษ ดังนั้นโปรดตรวจสอบให้แน่ใจว่าไม่มีทรัพยากรในไฟล์ zip ของคุณที่มีการอ้างอิงโดยตรงไปยังรหัสบันเดิลของแอป การแจ้งเตือนแบบพุช
สำหรับการอนุญาตคำขอการแจ้งเตือนแบบพุช ผู้ใช้สามารถสร้างเว็บโทเค็น JSON ได้โดยใช้ คีย์การลงนาม ส่วนตัวพร้อมกับรหัสคีย์ - C7FD9DJAA8 และรหัสทีม - 9CKCGNNUQN โทเค็นที่สร้างขึ้นจะใช้ได้หนึ่งชั่วโมงและจำเป็นต้องรีเฟรชทุกๆ 60 นาที อ่านเพิ่มเติมเกี่ยวกับ การสร้างการเชื่อมต่อโดยใช้โทเค็นกับ APN
กลุ่มแอพรหัสกลุ่มแอปจะไม่ซ้ำกันในระดับสากล ซึ่งหมายความว่าเมื่อเราลงชื่อแอปของผู้ใช้อีกครั้ง เราจะใช้ได้เฉพาะรหัสกลุ่มแอปที่เชื่อมโยงกับบัญชีนักพัฒนา 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
คุณสามารถใช้เชลล์สคริปต์หรือแบตช์ไฟล์เพื่อทำให้คำสั่งการทดสอบแอปบนอุปกรณ์เคลื่อนที่เป็นแบบอัตโนมัติ ซึ่งคุณอาจเรียกใช้โดยใช้บรรทัดคำสั่ง gcloud สคริปต์ทุบตีตัวอย่างนี้รัน XCTest โดยหมดเวลาสองนาที และรายงานว่าการทดสอบรันเสร็จสมบูรณ์หรือไม่:
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 | กรณีทดสอบอย่างน้อยหนึ่งกรณี (คลาสที่ทดสอบหรือเมธอดของคลาส) ภายในการดำเนินการทดสอบไม่ผ่าน |
15 | Firebase Test Lab ไม่สามารถระบุได้ว่าเมทริกซ์การทดสอบผ่านหรือไม่ผ่าน เนื่องจากเกิดข้อผิดพลาดที่ไม่คาดคิด |
19 | เมทริกซ์ทดสอบถูกยกเลิกโดยผู้ใช้ |
20 | เกิดข้อผิดพลาดในการทดสอบโครงสร้างพื้นฐาน |
ขั้นตอนที่ 4 : ตรวจสอบผลการทดสอบ
เมื่อการทดสอบเริ่มขึ้น คุณจะได้รับลิงก์ไปยังหน้า ผลการทดสอบ การทดสอบอาจใช้เวลาหลายนาทีในการทำงาน ขึ้นอยู่กับจำนวนของการกำหนดค่าต่างๆ ที่คุณเลือก และระยะเวลาหมดเวลาการทดสอบที่กำหนดไว้สำหรับการทดสอบของคุณ หลังจากทำการทดสอบแล้ว คุณสามารถตรวจสอบผลการทดสอบได้ ดู การวิเคราะห์ผลลัพธ์ของ Firebase Test Lab เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับวิธีตีความผลการทดสอบของคุณ
ขั้นตอนต่อไป
อ่านเอกสารประกอบของ Google Cloud SDK เพื่อสำรวจตัวเลือกการทดสอบที่ มีให้โดยทั่วไป หรือใน รุ่นเบต้า