Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

ทดสอบกับ 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 และ ID ของทีม - 9CKCGNNUQN โทเค็นที่สร้างขึ้นจะใช้งานได้เป็นเวลาหนึ่งชั่วโมงและต้องรีเฟรชทุก 60 นาที อ่านเพิ่มเติมเกี่ยวกับ การสร้างการเชื่อมต่อโดยใช้โทเค็นกับ APN

เรียกใช้การทดสอบ 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 เพื่อสำรวจตัวเลือกการทดสอบที่มีอยู่ ทั่วไป หรือใน รุ่นเบต้า