ทดสอบด้วย Google Cloud CLI

คำแนะนำนี้จะอธิบายวิธีเรียกใช้การทดสอบ XCTest หรือการทดสอบ Game Loop โดยใช้ gcloud CLI

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

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

  3. ตรวจสอบว่าการติดตั้งของคุณเป็นปัจจุบันและมี คำสั่ง gcloud firebase:
          gcloud components update
  4. ลงชื่อเข้าสู่ระบบ CLI ของ gcloud โดยใช้บัญชี Google
          gcloud auth login
  5. ตั้งค่าโปรเจ็กต์ Firebase ใน gcloud โดยที่ PROJECT_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

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

  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 ของแอปโดยตรง

การให้สิทธิ์ที่รองรับมีดังนี้
  1. ข้อความ Push apns-environment
  2. VPN ส่วนบุคคล com.apple.developer.networking.vpn.api
ข้อความ Push

ผู้ใช้สามารถสร้างโทเค็นเว็บ JSON เพื่อให้สิทธิ์คําขอการแจ้งเตือนแบบพุชได้โดยใช้คีย์การรับรองส่วนตัวพร้อมกับรหัสคีย์ C7FD9DJAA8 และรหัสทีม 9CKCGNNUQN โทเค็นที่สร้างขึ้นจะใช้งานได้ 1 ชั่วโมงและต้องรีเฟรชทุก 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 รายการ รายการหรือการวนซ้ำ หรือช่วงของการวนซ้ำ ลูปเริ่มต้นคือ 1

เช่น --scenario-numbers=1-3,5 เรียกใช้ลูป 1, 2, 3 และ 5

--device-model

อุปกรณ์จริงที่คุณต้องการทำการทดสอบ (ดูอุปกรณ์ที่ใช้งานได้ ที่ใช้ได้)

--timeout

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

เช่น

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

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