Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

ทดสอบกับ gcloud CLI

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

คู่มือนี้อธิบายวิธีเรียกใช้การทดสอบ XCTest หรือ Game Loop โดยใช้ gcloud CLI

ขั้นตอนที่ 1 : กำหนดค่าสภาพแวดล้อม Google Cloud SDK ในเครื่องของคุณ

  1. ดาวน์โหลด Google Cloud SDK
  2. ซึ่งรวมถึงเครื่องมือ gcloud CLI

  3. ตรวจสอบให้แน่ใจว่าการติดตั้งของคุณเป็นปัจจุบันและมีคำสั่ง gcloud firebase :
          gcloud components update
  4. ลงชื่อเข้าใช้ gcloud CLI โดยใช้บัญชี Google ของคุณ:
          gcloud auth login
  5. ตั้งค่าโครงการ Firebase ของคุณใน gcloud โดยที่ PROJECT_ID คือ ID ของโครงการ Firebase ของคุณ:
         gcloud config set project PROJECT_ID

ขั้นตอนที่ 2 : เรียกใช้การทดสอบของคุณ

เรียกใช้ XCTest

  1. อัปโหลดไฟล์ .zip ของการทดสอบของคุณโดยเรียกใช้คำสั่งต่อไปนี้ (หากคุณยังไม่ได้ทำแพ็กเกจแอป โปรดดูที่ การบรรจุ XCTest ของคุณ ):

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
  2. เลือกขนาดการทดสอบของคุณ

    Test Lab ให้คุณทำการทดสอบกับ iOS เวอร์ชัน อุปกรณ์ การวางแนวหน้าจอ และโลแคลต่างๆ การกำหนดค่าเหล่านี้เรียกว่า มิติการทดสอบ ของการทดสอบ หากต้องการดูตัวเลือกสำหรับแต่ละมิติข้อมูล (เช่น เวอร์ชัน Xcode ที่รองรับสำหรับเวอร์ชัน iOS ของอุปกรณ์) models ทดแทน versions หรือโล locales ลสำหรับ dimension ในคำสั่งต่อไปนี้:

    gcloud firebase test ios dimension list

    การวางแนวหน้าจอค่อนข้างง่ายกว่า เนื่องจากมีตัวเลือกเดียวคือ portrait และ landscape

    ดูรายการมิติการทดสอบ และเลือกชุดค่าผสมสองสามชุดที่คุณต้องการเรียกใช้การทดสอบ ไปที่ แผนการกำหนดราคา เพื่อดูจำนวนชุดค่าผสมสูงสุดที่คุณเรียกใช้ได้ต่อวัน

  3. เมื่อคุณเลือกชุดมิติข้อมูลการทดสอบแล้ว คุณสามารถให้ 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

ทดสอบสิทธิ์พิเศษ

หากต้องการทดสอบการให้สิทธิ์ที่ต้องใช้ 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 ที่คุณต้องการเรียกใช้ คุณสามารถป้อนประเภทการทดสอบ xctest (ค่าเริ่มต้น) หรือ game-loop

--app

จำเป็น : เส้นทางสัมบูรณ์ (GCS หรือระบบไฟล์) ไปยังไฟล์ IPA ของแอป แฟล็กนี้ใช้ได้เมื่อรันการทดสอบ Game Loop เท่านั้น

--scenario-numbers

ลูป (สถานการณ์สมมติ) ที่คุณต้องการเรียกใช้ในแอปของคุณ คุณสามารถป้อนหนึ่งลูป รายการหรือลูป หรือช่วงของลูป ลูปเริ่มต้นคือ 1

ตัวอย่างเช่น --scenario-numbers=1-3,5 รันลูป 1, 2, 3 และ 5

--device-model

อุปกรณ์ทางกายภาพที่คุณต้องการเรียกใช้การทดสอบ (ค้นหาว่า อุปกรณ์ ใดที่คุณสามารถใช้ได้)

--timeout

ระยะเวลาสูงสุดที่คุณต้องการให้การทดสอบทำงาน คุณสามารถป้อนจำนวนเต็มเพื่อแสดงระยะเวลาเป็นวินาที หรือป้อนจำนวนเต็มและการแจงนับเพื่อแสดงระยะเวลาเป็นหน่วยเวลาที่ยาวขึ้น

ตัวอย่างเช่น:

  • --timeout=200 บังคับให้การทดสอบของคุณสิ้นสุดลงเมื่อทำงานถึง 200 วินาที
  • --timeout=1h บังคับให้การทดสอบของคุณสิ้นสุดลงเมื่อทำงานถึงหนึ่งชั่วโมง

ตัวอย่างเช่น คำสั่งต่อไปนี้รันการทดสอบ 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 โปรดดู เอกสารอ้างอิง

ขั้นตอนที่ 4 (ไม่บังคับ) : ทำการทดสอบในอนาคตที่คุณสร้างขึ้นโดยอัตโนมัติ

การเขียนสคริปต์คำสั่ง 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 เกิดข้อผิดพลาดในการทดสอบโครงสร้างพื้นฐาน

ขั้นตอนที่ 5 : ตรวจสอบผลการทดสอบ

เมื่อการทดสอบเริ่มขึ้น คุณจะได้รับลิงก์ไปยังหน้า ผลการทดสอบ การทดสอบอาจใช้เวลาหลายนาทีในการทำงาน ขึ้นอยู่กับจำนวนของการกำหนดค่าต่างๆ ที่คุณเลือก และระยะเวลาหมดเวลาการทดสอบที่กำหนดไว้สำหรับการทดสอบของคุณ หลังจากทำการทดสอบแล้ว คุณสามารถตรวจสอบผลการทดสอบได้ ดู การวิเคราะห์ผลลัพธ์ของ Firebase Test Lab เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับวิธีตีความผลการทดสอบของคุณ

ขั้นตอนต่อไป

อ่านเอกสารประกอบของ Google Cloud SDK เพื่อสำรวจตัวเลือกการทดสอบที่มี ให้โดยทั่วไป หรือใน รุ่นเบต้า