ทดสอบด้วย 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. ลงชื่อเข้าสู่ระบบ gcloud CLI โดยใช้บัญชี 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 สำหรับการให้สิทธิ์คำขอข้อความ Push ได้ โดยใช้โปรไฟล์ส่วนตัว คีย์การลงชื่อเข้าใช้ พร้อมด้วยรหัสคีย์ - 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 เพื่อสำรวจตัวเลือกการทดสอบที่ พร้อมให้บริการโดยทั่วไป หรือในเบต้า