Catch up on everthing we announced at this year's Firebase Summit. Learn more

เริ่มการทดสอบด้วย gcloud CLI

คู่มือนี้จะอธิบายถึงวิธีการเรียกใช้เครื่องมือโบหรือการทดสอบเกมห่วงใช้ CLI GCloud

สำหรับรายการที่สมบูรณ์ของ gcloud คำสั่งคุณสามารถใช้กับแอพพลิเค Android ของคุณในห้องปฏิบัติการทดสอบแวะไปที่ เอกสารอ้างอิงสำหรับ gcloud firebase test android

ก่อนจะเริ่ม

หากคุณยังไม่ได้ เพิ่ม Firebase กับโครงการ Android ของคุณ

ขั้นตอนที่ 1 ตั้งค่า gcloud CLI

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

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

ขั้นตอนที่ 2 ตรวจสอบอุปกรณ์ทดสอบที่มีอยู่

ใช้คำสั่ง gcloud ต่อไปนี้เพื่อดูอุปกรณ์ทดสอบและสถานที่ที่พร้อมใช้งานสำหรับการทดสอบของคุณ

ในฐานะที่เป็นตัวเลือกที่คุณยังสามารถดาวน์โหลดตัวอย่าง แอป Notepad เพื่อเริ่มต้นการใช้คำสั่งได้ทันที ใช้ไฟล์ไบนารี app-debug-unaligned.apk และการทดสอบวัดแฟ้ม app-debug-test-unaligned.apk ซึ่งตั้งอยู่ใน NotePad/app/build/outputs/apk/ /

  • models list : รับรายการปัจจุบันของอุปกรณ์ Android พร้อมให้คุณทดสอบกับ

    gcloud firebase test android models list
    

    ในเอาต์พุตคำสั่ง:

    • คอลัมน์ MODEL_ID มีระบุในภายหลังคุณสามารถใช้เพื่อเรียกใช้การทดสอบในรูปแบบอุปกรณ์
    • คอลัมน์ OS_VERSION_ID มีระบบปฏิบัติการรุ่นที่ได้รับการสนับสนุนโดยอุปกรณ์

    ตัวอย่างผลลัพธ์

    gcloud firebase test android models list output

  • models describe : ได้รับข้อมูลเพิ่มเติมเกี่ยวกับระดับของ Android MODEL_ID

    gcloud firebase test android models describe MODEL_ID
    

    ผลลัพธ์ประกอบด้วยแบรนด์ของรุ่นอุปกรณ์ ผู้ผลิต เวอร์ชันระบบปฏิบัติการ ระดับ API ที่รองรับ วันที่เผยแพร่ และอุปกรณ์นั้นเป็นแบบจริงหรือแบบเสมือน

  • versions list : รับประกาศโฆษณาทั้งหมดของระบบปฏิบัติการรุ่นที่จะทดสอบกับ

    gcloud firebase test android versions list
    

    คุณสามารถใช้ตัวระบุจากทั้งสองคอลัมน์แรกของการออกคำสั่ง ( OS_VERSION_ID และ VERSION ) เพื่อทดสอบวิ่งต่อมากับระบบปฏิบัติการ Android เวอร์ชัน ถ้าคุณไม่ได้ระบุรุ่น Android OS เพื่อทดสอบกับค่าเริ่มต้นที่ระบุไว้ภายใต้ TAGS คอลัมน์ถูกนำมาใช้

    ตัวอย่างผลลัพธ์

    gcloud android versions list

  • locales list : รับรายการปัจจุบันของสถานที่พร้อมที่จะทดสอบกับ

    gcloud firebase test android versions list
    

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

วิ่งทดสอบ

ตอนนี้คุณรู้ช่วงของรุ่นอุปกรณ์สถานที่และระบบปฏิบัติการรุ่นที่มีอยู่สำหรับการทดสอบแอปของคุณคุณสามารถระบุอุปกรณ์ที่ใช้ gcloud firebase test android run คำสั่งและ --device ธงเพื่อเรียกใช้โบหรือเครื่องมือทดสอบ

เรียกใช้การทดสอบ Robo

แม้ว่าคุณจะไม่มีการทดสอบเครื่องมือใดๆ ก็ตาม คุณยังคงสามารถค้นหาจุดบกพร่องในแอปของคุณได้ ใช้การทดสอบ Robo เพื่อตรวจสอบอินเทอร์เฟซผู้ใช้ของแอปโดยอัตโนมัติ การทดสอบ Robo ฝึกฝนแอปโดยทำการวิเคราะห์เส้นทางต่างๆ ผ่านอินเทอร์เฟซผู้ใช้ของแอป จากนั้นจึงรวบรวมข้อมูลผ่านแอปเพื่อค้นหาข้อขัดข้องและปัญหาที่อาจเกิดขึ้นอื่นๆ

เริ่มต้นด้วยการรันคำสั่งตัวอย่าง:

gcloud firebase test android run \
  --type robo \
  --app app-debug-unaligned.apk \
  --device model=Nexus6,version=21,locale=en,orientation=portrait  \
  --device model=Nexus7,version=19,locale=fr,orientation=landscape \
  --timeout 90s

--type robo พารามิเตอร์โดยปริยายหากไม่มี --type ระบุค่า ท่านสามารถเข้าดูชุดที่สมบูรณ์ของตัวเลือกบรรทัดคำสั่งสำหรับการทดสอบการทำงานโดยการพิมพ์: gcloud help firebase test android run คุณสามารถเลือกระบุอาร์กิวเมนต์ของคุณในไฟล์อาร์กิวเมนต์รูปแบบ YAML ได้ เรียก gcloud topic arg-files ที่จะเรียนรู้วิธีการใช้คุณลักษณะนี้

ดู การวิเคราะห์ผลการทดสอบของคุณ ส่วนเพื่อเรียนรู้วิธีการตรวจสอบผลการทดสอบจากการทดสอบ Robo

ดำเนินการทดสอบเครื่องมือวัดของคุณ

ตอนนี้ใช้ gcloud เครื่องมือบรรทัดคำสั่งในการเรียกใช้แอพพลิเค Notepad ของ เอสเพรสโซ่ การทดสอบบน Android ของการกำหนดค่าอุปกรณ์ที่ระบุของคุณโดยใช้ instrumentation ทดสอบประเภทเรียกใช้การทดสอบใน app-debug-test-unaligned.apk ดังนี้

gcloud firebase test android run \
  --type instrumentation \
  --app app-debug-unaligned.apk \
  --test app-debug-test-unaligned.apk \
  --device model=Nexus6,version=21,locale=en,orientation=portrait  \
  --device model=Nexus7,version=19,locale=fr,orientation=landscape

--type instrumentation พารามิเตอร์เป็นนัยถ้าเอพีเคทดสอบได้รับการระบุด้วย --test คุณสามารถเลือกระบุอาร์กิวเมนต์ของคุณในไฟล์อาร์กิวเมนต์รูปแบบ YAML ได้ เรียก gcloud topic arg-files ที่จะเรียนรู้วิธีการใช้คุณลักษณะนี้

CLI GCloud สนับสนุน Android ทดสอบ Orchestrator Orchestrator ต้องการ AndroidJUnitRunner v1.0 หรือสูงกว่า เพื่อเปิดใช้งานใช้ gcloud firebase test android run กับ
--use-orchestrator ธง ปิดการใช้งานใช้ --no-use-orchestrator ธง

หมายเหตุ: คุณยังสามารถควบคุมวิธีการที่ห้องปฏิบัติการทดสอบวิ่งทดสอบเครื่องมือของคุณโดยใช้ธงเพิ่มเติมที่ไม่ได้แสดงไว้ข้างต้น ตัวอย่างเช่นคุณสามารถใช้ --test-targets ธงเพื่อทดสอบชั้นเดียวหรือวิธีการเรียนที่ใช้โดยเอพีเคทดสอบของคุณ คุณยังสามารถค้นหาว่าการทดสอบของคุณที่ล้มเหลวนั้นเป็นสะเก็ดจริง ๆ หรือไม่โดยใช้แฟล็ก '--num-flaky-test-attempts' ซึ่งระบุจำนวนครั้งที่ควรทำการทดสอบใหม่หากมีอย่างน้อยหนึ่งการทดสอบ กรณีทดสอบล้มเหลวด้วยเหตุผลใดก็ตาม ต้องการเรียนรู้เพิ่มเติมโปรดดูที่ การทดสอบ Firebase GCloud หุ่นยนต์วิ่ง

รายงานความครอบคลุมของรหัสสำหรับการทดสอบเครื่องมือวัด

ห้องปฏิบัติการทดสอบสนับสนุนครอบคลุมรหัสเครื่องมือการรายงาน EMMA และ JaCoCo ถ้าคุณมีเครื่องมือทั้งบูรณาการในการสร้างแอปของคุณคุณสามารถได้รับรายงานความคุ้มครองสำหรับการทดสอบห้องปฏิบัติการทดสอบโดยใช้ gcloud firebase test android run คำสั่งที่มีการขัดแย้งต่อไปนี้:

gcloud firebase test android run \
  --type instrumentation \
  --app your-app.apk \
  --test your-app-test.apk \
  --device model=TestDevice,version=AndroidVersion  \
  --environment-variables coverage=true,coverageFile="/sdcard/coverage.ec" \
  --directories-to-pull /sdcard

เมื่อ Test Lab ทำการทดสอบเสร็จแล้ว ให้ค้นหารายงานความครอบคลุมของโค้ดใน Google Cloud Storage:

  1. เปิดการเชื่อมโยงคอนโซล Firebase ว่า gcloud เครื่องมือพิมพ์ด้านบนของตารางผลการทดสอบในสถานีของคุณ
  2. คลิกการทดสอบการดำเนินการจากรายการที่ลิงก์นั้นเพื่อเปิดหน้ารายละเอียดของการดำเนินการนั้น
  3. คลิกที่ผลการทดสอบไปที่ถังจัดเก็บเมฆที่มีผลการทดสอบการดำเนินการที่
  4. เปิด artifacts/coverage.ec เพื่อดูรายงานครอบคลุมรหัสของคุณ

วิเคราะห์ผลการทดสอบของคุณ

หลังจากผ่านไปสองสามนาที เครื่องมือ gcloud จะพิมพ์สรุปพื้นฐานของผลการทดสอบของคุณ:

Command test results

ผลลัพธ์ของการทดสอบบรรทัดคำสั่งของคุณมีลิงก์เพื่อดูผลการทดสอบด้วย ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการแปลผลเหล่านี้ให้ดู การวิเคราะห์ Firebase ห้องปฏิบัติการทดสอบเพื่อผลลัพธ์ Android

เข้าสู่ระบบที่กำหนดเองและการป้อนข้อความด้วย Robo test

การทดสอบเสร็จสมบูรณ์โดยอัตโนมัติ Robo ลงชื่อเข้าใช้หน้าจอที่ใช้บัญชี Google สำหรับการตรวจสอบถ้าคุณใช้ --no-auto-google-login พารามิเตอร์ นอกจากนี้ยังสามารถกรอกหน้าจอเข้าสู่ระบบที่กำหนดเองโดยใช้ข้อมูลรับรองบัญชีทดสอบที่คุณระบุ คุณยังสามารถใช้พารามิเตอร์นี้เพื่อจัดเตรียมข้อความป้อนแบบกำหนดเองสำหรับช่องข้อความอื่นๆ ที่แอปของคุณใช้

ไปยังเขตกรอกข้อความใน app ของคุณให้ใช้ --robo-directives พารามิเตอร์และให้รายการคั่นด้วยเครื่องหมายจุลภาค key-value คู่ที่ key คือชื่อทรัพยากร Android ขององค์ประกอบเป้าหมาย UI และ value เป็นสตริงข้อความ . คุณยังสามารถใช้แฟล็กนี้เพื่อบอกให้ Robo ละเว้นองค์ประกอบ UI เฉพาะ (เช่น ปุ่ม "ออกจากระบบ") EditText เขตได้รับการสนับสนุน แต่ไม่ช่องข้อความใน WebView องค์ประกอบ UI

ตัวอย่างเช่น คุณสามารถใช้พารามิเตอร์ต่อไปนี้สำหรับการเข้าสู่ระบบแบบกำหนดเอง:

--robo-directives username_resource=username,password_resource=password

คำสั่งและแฟล็กที่มีอยู่

Test Lab gcloud CLI มีคำสั่งและแฟล็กหลายคำสั่งที่ให้คุณเรียกใช้การทดสอบด้วยข้อกำหนดที่แตกต่างกันได้:

  • ธง Android ทดสอบ Orchestrator : ธงเพื่อเปิดใช้งาน Orchestrator, เครื่องมือที่ช่วยให้คุณสามารถเรียกใช้ในการทดสอบแต่ละแอปในการภาวนาของตัวเองของ Instrumentation Test Lab เรียกใช้ Orchestrator เวอร์ชันล่าสุดเสมอ

  • ธงทดสอบเกมห่วง : ชุดของค่าสถานะการตั้งค่าที่เปิดใช้งานและควบคุมโหมด "สาธิต" การกระทำของผู้เล่นจำลองในปพลิเคชันเกม เรียนรู้เพิ่มเติมเกี่ยวกับการทำงาน การทดสอบเกมห่วงกับห้องปฏิบัติการทดสอบ

  • ธง sharding Uniform (ในรุ่นเบต้า) : ธงที่ระบุจำนวนเศษเป็นที่คุณต้องการที่จะเกลี่ยกรณีทดสอบ ชาร์ดทำงานแบบขนานบนอุปกรณ์ที่แยกจากกัน

  • ธง sharding คู่มือการใช้งาน (ในรุ่นเบต้า) : ธงที่ระบุกลุ่มของแพคเกจเรียนและ / หรือกรณีทดสอบการทำงานในชาร์ด (กลุ่มของกรณีทดสอบ) ชาร์ดทำงานแบบขนานบนอุปกรณ์ที่แยกจากกัน

  • เครือข่ายการจราจรโปรไฟล์ธง (ในรุ่นเบต้า) : ธงที่ระบุซึ่งรายละเอียดการทดสอบเครือข่ายของคุณใช้กับอุปกรณ์ทางกายภาพ โปรไฟล์เครือข่ายจำลองเงื่อนไขเครือข่ายที่หลากหลาย ทำให้คุณสามารถทดสอบประสิทธิภาพของแอปบนเครือข่ายที่ไม่น่าเชื่อถือหรือคาดเดาไม่ได้

การเขียนสคริปต์คำสั่ง gcloud ด้วย Test Lab

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

if gcloud firebase test android run --app my-app.apk --test my-test.apk --timeout 2m
then
    echo "Test matrix successfully finished"
else
    echo "Test matrix exited abnormally with non-zero exit code: " $?
fi

รหัสออกจากสคริปต์

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

การเขียนสคริปต์รหัสออกสำหรับ Test Lab

รหัสออก หมายเหตุ
0 การทดสอบทั้งหมดผ่าน
1 เกิดความล้มเหลวทั่วไป สาเหตุที่เป็นไปได้ ได้แก่ ชื่อไฟล์ที่ไม่มีอยู่หรือข้อผิดพลาด HTTP/เครือข่าย
2 ออกจากการทดสอบเนื่องจากมีการระบุคำสั่งหรืออาร์กิวเมนต์ที่ไม่รู้จัก
10 กรณีทดสอบอย่างน้อยหนึ่งกรณี (คลาสที่ทดสอบหรือเมธอดของคลาส) ภายในการดำเนินการทดสอบไม่ผ่าน
15 Firebase Test Lab ไม่สามารถระบุได้ว่าเมทริกซ์การทดสอบผ่านหรือล้มเหลว เนื่องจากมีข้อผิดพลาดที่ไม่คาดคิด
18 ไม่รองรับสภาพแวดล้อมการทดสอบสำหรับการดำเนินการทดสอบนี้เนื่องจากมิติการทดสอบที่เข้ากันไม่ได้ ข้อผิดพลาดนี้อาจเกิดขึ้นหากระดับ Android API ที่เลือกไม่ได้รับการสนับสนุนโดยประเภทอุปกรณ์ที่เลือก
19 เมทริกซ์การทดสอบถูกยกเลิกโดยผู้ใช้
20 เกิดข้อผิดพลาดของโครงสร้างพื้นฐานการทดสอบ