รวม Test Lab เข้ากับระบบ CI/CD ของคุณ

1. บทนำ

อัปเดตล่าสุด: 2022-04-07

วิธีดำเนินการทดสอบอุปกรณ์พกพาด้วยระบบ CI/CD

การเรียกใช้การทดสอบอุปกรณ์เคลื่อนที่อาจเป็นเรื่องยาก: แอปจำนวนมากทำงานบนแพลตฟอร์ม อุปกรณ์ และเวอร์ชัน API ที่แตกต่างกัน นักพัฒนาแอปต้องการทดสอบการกำหนดค่าให้ได้มากที่สุดเพื่อตรวจจับปัญหาก่อนที่ผู้ใช้จะทำ แต่ข้อจำกัดด้านต้นทุนและทรัพยากรจะจำกัดจำนวนอุปกรณ์ทดสอบและปริมาณการบำรุงรักษาด้วยตนเองที่นักพัฒนาแต่ละรายสามารถลงทุนได้ เมื่อกระบวนการพัฒนาขยายขนาดขึ้น โดยเฉพาะอย่างยิ่งสำหรับระบบการบูรณาการอย่างต่อเนื่อง/การพัฒนาอย่างต่อเนื่อง (CI/CD) กระบวนการทดสอบจำเป็นต้องมี ให้เป็นอัตโนมัติในขณะที่ลดต้นทุนและความพยายามในการบำรุงรักษาให้เหลือน้อยที่สุด

เพื่อช่วยให้คุณเข้าใจว่าแอปของคุณทำงานอย่างไรบนอุปกรณ์ของผู้ใช้ Firebase Test Lab จึงโฮสต์อุปกรณ์ทางกายภาพและอุปกรณ์เสมือนต่างๆ ในศูนย์ข้อมูลของเรา นอกจากนี้เรายังมี Google Cloud CLI ซึ่งเป็นแพลตฟอร์มอิสระและเครื่องมือบรรทัดคำสั่งที่จัดการการทดสอบที่กำลังดำเนินการบนอุปกรณ์ในศูนย์ข้อมูลของเรา gcloud CLI ทำให้การผสานรวมโซลูชันการทดสอบบนระบบคลาวด์ของ Test Lab เข้ากับเวิร์กโฟลว์ CI/CD ที่มีอยู่เป็นเรื่องง่าย

การสนับสนุนข้ามแพลตฟอร์ม

Test Lab นำเสนอโซลูชันการทดสอบสำหรับแอป Android และ iOS และการสนับสนุนพิเศษสำหรับเกมมือถือเช่น Unity ตัวเลือกการทดสอบครอบคลุมเฟรมเวิร์กการทดสอบยอดนิยม เช่น Android Espresso, UI Automator และ iOS XCTest การใช้โปรแกรมรวบรวมข้อมูลอัตโนมัติ Robo ทำให้ Test Lab สามารถทำการทดสอบได้โดยไม่ต้องใช้โค้ดทดสอบใดๆ

ไม่มีข้อกำหนดด้านฮาร์ดแวร์

Test Lab โฮสต์อุปกรณ์จริงในศูนย์ข้อมูลของ Google และโฮสต์อุปกรณ์เสมือนใน Google Cloud สิ่งที่คุณต้องทำคือส่งการทดสอบไปที่ Test Lab และรอผล

รวดเร็วและเชื่อถือได้

การรันกรณีทดสอบหลายกรณีพร้อมกันอาจใช้เวลานาน ส่งผลให้กระบวนการ CI/CD หยุดชะงัก ด้วย Test Lab คุณสามารถแบ่งการทดสอบและเรียกใช้บนอุปกรณ์หลายเครื่องพร้อมกันได้อย่างง่ายดาย คุณยังสามารถตรวจจับความไม่สม่ำเสมอ ซึ่งเป็นจุดบกพร่องในการทดสอบอุปกรณ์เคลื่อนที่ทั่วไปได้

สิ่งที่คุณจะได้เรียนรู้

  • วิธีสร้างสิ่งประดิษฐ์ทดสอบ
  • วิธีรันการทดสอบอุปกรณ์เคลื่อนที่โดยใช้ gcloud CLI
  • วิธีการตั้งค่า Jenkins CI
  • วิธีรันการทดสอบอุปกรณ์พกพาโดยใช้ Jenkins CI
  • วิธีกำหนดค่าการทดสอบเพื่อขยายขนาดด้วยระบบ CI

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

สิ่งที่คุณต้องการ

หากคุณต้องการสร้างสิ่งต่างๆ ตั้งแต่เริ่มต้น คุณต้องมี Android Studio เพื่อรันการทดสอบ Android หรือใช้ XCode เพื่อรันการทดสอบ iOS หรือเพียงนำมาเองแล้วเราจะจัดหาสิ่งประดิษฐ์ให้

2. ทำการทดสอบด้วย gcloud CLI

สร้าง APK ของแอป Android และทดสอบ APK

หากต้องการดำเนินการทดสอบกับ Test Lab ให้เริ่มต้นด้วยการสร้าง APK ของแอป Android และ APK การทดสอบ ซึ่งมีการทดสอบแบบมีเครื่องมือเพื่อทำงานบนอุปกรณ์ฮาร์ดแวร์หรือโปรแกรมจำลอง หากคุณมีโค้ดเบสที่ใช้งานได้อยู่แล้ว คุณสามารถสร้าง APK ของคุณเอง หรือใช้ BasicSample สำหรับ Espresso

หากต้องการสร้าง APK โดยใช้คำสั่ง Gradle คุณต้องติดตั้ง Android SDK หากไม่ได้ติดตั้ง Android Studio บนเครื่องของคุณ ให้ติดตั้ง Android Studio และ Android SDK และตั้งค่าสภาพแวดล้อม ANDROID_HOME ด้วยไดเรกทอรี Android SDK ของคุณ ตัวอย่างเช่น ในไฟล์ ~/.bash_profile ให้เพิ่มบรรทัดต่อไปนี้:

export ANDROID_HOME=~/Android/Sdk # For linux
export ANDROID_HOME=~/Library/Android/sdk  # For MacOS

จากนั้นรันคำสั่งต่อไปนี้เพื่อโคลนโค้ดและสร้าง APK:

git clone https://github.com/android/testing-samples.git
cd testing-samples/ui/espresso/BasicSample/
./gradlew assembleDebug  # for generating app apk
./gradlew assembleDebugAndroidTest # for generating testing apk

หลังจากรันคำสั่งโคลนและสร้างแล้ว คุณจะพบ APK ของแอปและการทดสอบ APK ในตำแหน่งต่อไปนี้:

app/build/outputs/apk/debug/app-debug.apk
app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk

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

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

หากคุณมีซอร์สโค้ดที่ใช้งานได้สำหรับแอป iOS คุณสามารถเขียน XCTest และ สร้างไฟล์ zip จากแอปและการทดสอบได้

ใช้ gcloud CLI เพื่อทำการทดสอบกับ Test Lab

ในส่วนนี้ คุณจะสร้างโปรเจ็กต์ Firebase และกำหนดค่าสภาพแวดล้อม Google Cloud SDK ในเครื่องของคุณ หากต้องการเรียนรู้เพิ่มเติม โปรดดู เริ่มการทดสอบด้วย gcloud CLI

ตั้งค่า gcloud CLI

  1. ดาวน์โหลด Google Cloud SDK ซึ่งรวมถึงเครื่องมือ gcloud CLI
  2. ตรวจสอบว่าการติดตั้งของคุณเป็นปัจจุบัน:
gcloud components update
  1. ลงชื่อเข้าใช้ gcloud CLI โดยใช้บัญชี Google ของคุณ:
gcloud auth login
  1. ตั้งค่าโปรเจ็กต์ Firebase ใน gcloud CLI โดยที่ PROJECT_ID คือรหัสโปรเจ็กต์ Firebase ของคุณ คุณสามารถค้นหารหัสโปรเจ็กต์ได้ใน URL ของคอนโซล Firebase ซึ่งเป็นไปตามหลักการตั้งชื่อนี้: https://console.firebase.google.com/project/[PROJECT_ID]/...
gcloud config set project PROJECT_ID

หากคุณไม่มีโปรเจ็กต์ Firebase ให้สร้างโปรเจ็กต์ใน Firebase Console

ทำการทดสอบโดยใช้ APK ที่สร้างขึ้น

ในส่วนนี้ คุณจะทำการทดสอบเครื่องมือบนอุปกรณ์เริ่มต้นของ Test Lab ซึ่งก็คือ Pixel 3 ที่มี API ระดับ 28 หากคุณต้องการใช้อุปกรณ์อื่น ให้ตรวจสอบอุปกรณ์ที่พร้อมใช้งาน

การใช้แอปและการทดสอบ APK ที่คุณสร้างใน Build an Android app APK และการทดสอบ APK ให้รันการทดสอบ Android Instrumentation โดยใช้คำสั่งต่อไปนี้:

gcloud firebase test android run \
  --type instrumentation \
  --app app/build/outputs/apk/debug/app-debug.apk \
  --test app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk

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

คุณสามารถวิเคราะห์ผลการทดสอบโดยใช้ตัวเลือกใดๆ ต่อไปนี้:

  • สรุป gcloud - เมื่อการทดสอบของคุณเสร็จสิ้น gcloud CLI จะพิมพ์ข้อมูลสรุปพื้นฐานของผลการทดสอบของคุณ
  • รหัสออก gcloud - หลังจากการทดสอบเสร็จสิ้น คำสั่งจะออกด้วย 0 หากการทดสอบผ่าน หากการทดสอบล้มเหลว คำสั่งจะออกด้วยโค้ดทางออกที่ไม่ใช่ศูนย์
  • คอนโซล Firebase - gcloud CLI พิมพ์ลิงก์ไปยังคอนโซล Firebase ลิงก์เป็นไปตามรูปแบบการตั้งชื่อ https://console.firebase.google.com/project/PROJECT_ID/testlab/... หากต้องการเรียนรู้เพิ่มเติม โปรดดู การตีความผลลัพธ์จากการดำเนินการทดสอบครั้งเดียว
  • ไฟล์ JUnit XML - gcloud CLI จะพิมพ์ข้อมูลต่อไปนี้:
Raw results will be stored in your Cloud Storage bucket at [https://console.developers.google.com/storage/browser/test-lab-xxxxx/xxxxx/]

test-lab-xxxxx/xxxxx คือที่เก็บข้อมูล Cloud Storage ที่เก็บอาร์ติแฟกต์การทดสอบและผลลัพธ์ หากต้องการค้นหาไฟล์ JUnit XML ที่มีผลการทดสอบ ให้เปิดลิงก์และไปที่ blueline-28-en-portrait/test_result_1.xml

3. ตั้งค่ากับ Jenkins CI

ในส่วนนี้ คุณจะใช้ Jenkins CI ซึ่งเป็นระบบ CI ยอดนิยมเพื่อทำการทดสอบกับ Test Lab หากคุณต้องการใช้ระบบ CI อื่น โปรดดูแนวทางปฏิบัติที่ดีที่สุดขั้นสูงสำหรับการเรียกใช้ชุดการทดสอบขนาดใหญ่ และเอกสารประกอบสำหรับระบบ CI อื่นๆ เช่น Bitrise และ Circle CI คุณสามารถใช้ Flank เป็นทางเลือกแทน gcloud CLI

เปิดใช้ gcloud CLI สำหรับ Jenkins

ก่อนที่คุณจะใช้ Test Lab กับ Jenkins ได้ คุณต้องเปิดใช้ API ที่จำเป็นและตั้งค่าบัญชีบริการที่ Jenkins สามารถใช้ตรวจสอบสิทธิ์กับ gcloud CLI ได้

เพิ่มบัญชีบริการ Google Cloud สำหรับ Jenkins

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

หากต้องการสร้างบัญชีบริการ ให้ทำตามขั้นตอนเหล่านี้:

  1. เปิดหน้า บัญชีบริการ ใน Google Cloud Console
  2. คลิก สร้างบัญชีบริการ เพิ่ม ชื่อ และ คำอธิบาย จากนั้นคลิก สร้างและดำเนินการต่อ
  3. จากดรอปดาวน์ เลือกบทบาท ให้เลือก พื้นฐาน จากนั้นเลือก ผู้แก้ไข
  4. คลิก ดำเนินการต่อ จากนั้นคลิก เสร็จสิ้น

จากนั้น คุณสร้างและดาวน์โหลดคีย์การตรวจสอบสิทธิ์ที่ Jenkins สามารถใช้ตรวจสอบสิทธิ์เป็นบัญชีบริการที่คุณสร้างขึ้น

หากต้องการสร้างและดาวน์โหลดคีย์บัญชีบริการ ให้ทำตามขั้นตอนเหล่านี้:

  1. จากหน้า บัญชีบริการ ใน Google Cloud Console ให้คลิกอีเมลที่เชื่อมโยงกับบัญชีที่คุณสร้าง
  2. เลือก คีย์ จากนั้นคลิก เพิ่มคีย์ และ สร้างคีย์ใหม่
  3. เลือก JSON จากนั้นคลิก สร้าง
  4. เมื่อคุณได้รับพร้อมท์ให้ดาวน์โหลดไฟล์ คลิก ตกลง ดาวน์โหลดไฟล์ไปยังที่ปลอดภัยบนคอมพิวเตอร์ของคุณ คุณต้องใช้ไฟล์นี้ในภายหลังเมื่อกำหนดค่า Jenkins

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการสร้างบัญชีบริการ โปรดดูที่ การสร้างบัญชีบริการ

เปิดใช้งาน Google Cloud API ที่จำเป็น

Cloud Testing API ช่วยให้คุณทำการทดสอบบนโครงสร้างพื้นฐานของ Google คุณเปิดใช้ API นี้เมื่อดำเนินการทดสอบด้วย gcloud CLI เสร็จแล้ว Cloud Tool Results API ช่วยให้คุณเข้าถึงผลการทดสอบได้โดยทางโปรแกรม

  1. เปิด ไลบรารี API ของ Google Developers Console
  2. ในแถบค้นหาที่ด้านบนของคอนโซล Firebase ให้ป้อนชื่อของ API ที่จำเป็นแต่ละรายการ ( Cloud Testing API และ Cloud Tool Results API ) หน้าภาพรวมสำหรับ API ที่ร้องขอจะปรากฏขึ้น
  3. คลิก เปิดใช้งาน API ในหน้าภาพรวมของ API แต่ละรายการ

ติดตั้งและตั้งค่าเจนกินส์

คุณสามารถติดตั้งและตั้งค่า Jenkins CI บน Linux, macOS, Windows และสภาพแวดล้อมอื่นๆ อีกมากมาย รายละเอียดบางอย่างของ Codelab นี้มีไว้สำหรับการติดตั้งและใช้งาน Jenkins CI บน Linux โดยเฉพาะ รวมถึงการใช้เครื่องหมายทับ (/) ในเส้นทางของไฟล์

หากต้องการดาวน์โหลดและติดตั้ง Jenkins บนคอมพิวเตอร์ที่ใช้ Linux หรือ Windows ให้ทำตามคำแนะนำในการ ติดตั้ง Jenkins หลังจากที่คุณติดตั้ง Jenkins แล้ว ให้ทำตามคำแนะนำในการติดตั้ง Jenkins เดียวกันเพื่อตั้งค่าให้เสร็จสิ้นและเข้าถึงแดชบอร์ด Jenkins โดยใช้ http://localhost:8080

ตรวจสอบปลั๊กอินที่ติดตั้ง

Jenkins รองรับระบบควบคุมเวอร์ชันต่างๆ ใน Codelab นี้ คุณใช้ Git เพื่อรันการทดสอบก่อนหน้า และเพื่อให้ได้รับประสบการณ์การใช้งาน gcloud CLI ที่ดียิ่งขึ้น คุณจะต้องติดตั้งปลั๊กอิน GCloud SDK

  1. บนแดชบอร์ด Jenkins คลิก จัดการ Jenkins จากนั้นคลิก จัดการปลั๊กอิน
  2. ค้นหาปลั๊กอิน Git และ GCloud SDK และติดตั้ง (หากยังไม่ได้ติดตั้ง)

กำหนดค่าตำแหน่งของ Android และ Google Cloud SDK ของคุณ

ตอนนี้คุณสั่ง Jenkins ได้ว่าจะหา Google Cloud SDK และ Android SDK ได้ที่ไหน

หากต้องการกำหนดค่า Google Cloud และ Android SDK สำหรับ Jenkins ให้ทำตามขั้นตอนเหล่านี้:

  1. บนแดชบอร์ด Jenkins คลิก Manage Jenkins จากนั้นคลิก Global Tool Configuration
  2. ในส่วน Google Cloud SDK คลิก เพิ่ม Google Cloud SDK
  3. ในช่อง ชื่อ ให้ป้อนชื่ออินสแตนซ์ Google Cloud SDK ที่จดจำได้ง่าย เช่น GCloud-SDK
  4. ป้อนไดเรกทอรีหลักของ Google Cloud SDK เช่น /opt/google-cloud-sdk
  5. คลิก บันทึก
  6. กำหนดค่าคุณสมบัติทั้งระบบของคุณสำหรับ Android และ Google Cloud SDK โดยเปิด แดชบอร์ด > จัดการเจนกินส์ > กำหนดค่าระบบ
  7. เลือกช่องทำ เครื่องหมายตัวแปรสภาพแวดล้อม แล้วคลิก เพิ่ม
  8. ในฟิลด์ ชื่อ ให้ป้อน ANDROID_HOME ในช่อง Value ให้ป้อนตำแหน่งของ Android SDK ของคุณ เช่น /opt/Android/Sdk
  9. คลิกช่องทำเครื่องหมาย ตำแหน่งเครื่องมือ และคลิก เพิ่ม จาก เมนู แบบเลื่อนลงชื่อ ให้เลือกชื่อของอินสแตนซ์ Google Cloud SDK ที่คุณเพิ่มในการกำหนดค่าเครื่องมือส่วนกลาง
  10. ในช่อง หน้าแรก ให้ป้อนตำแหน่งของ Google Cloud SDK ของคุณ เช่น /opt/google-cloud-sdk
  11. คลิก บันทึก

เพิ่มข้อมูลรับรองบัญชีบริการของคุณไปยัง Jenkins

ตอนนี้คุณเพิ่มข้อมูลรับรองบัญชีบริการ gcloud CLI ลงใน Jenkins เพื่อให้ Jenkins ตรวจสอบสิทธิ์และเรียกใช้คำสั่ง gcloud CLI ได้สำเร็จ

  1. บนแดชบอร์ด Jenkins คลิก จัดการ Jenkins จากนั้นคลิก จัดการข้อมูลรับรอง
  2. ในส่วน ร้านค้าที่กำหนดขอบเขตเป็น Jenkins ให้คลิกลิงก์โดเมน (ส่วนกลาง) จากนั้นคลิก เพิ่มข้อมูลรับรอง
  3. จากเมนูแบบเลื่อนลง Kind ให้เลือก บัญชีบริการ Google จากรหัสส่วนตัว
  4. ในช่อง ชื่อโครงการ ให้ป้อนชื่อโครงการ Firebase ของคุณ
  5. เลือก คีย์ JSON จากนั้นคลิก เรียกดู และเรียกดูตำแหน่งที่คุณบันทึกคีย์บัญชีบริการ
  6. คลิก สร้าง

ตอนนี้คุณพร้อมที่จะกำหนดค่ารุ่นอัตโนมัติของ Jenkins สำหรับ Test Lab แล้ว

4. รันการทดสอบ Test Lab ด้วย Jenkins CI

ตอนนี้คุณได้ตั้งค่า Jenkins แล้ว มารวบรวมทุกอย่างเข้าด้วยกันและทำการทดสอบเดียวกันโดยใช้ Jenkins

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

สร้างและกำหนดค่าโปรเจ็กต์ Jenkins ของคุณ

สร้างโปรเจ็กต์เพื่อดำเนินการทดสอบการผสานรวมแอปของคุณกับ Test Lab อย่างต่อเนื่อง

สร้างโปรเจ็กต์เจนกินส์

  1. เปิดแดชบอร์ด Jenkins โดยไปที่ http://localhost:8080
  2. บนแดชบอร์ด Jenkins ให้คลิก รายการใหม่
  3. ป้อนชื่อโปรเจ็กต์ของคุณในช่อง ชื่อรายการ แล้วคลิก โปรเจ็กต์ฟรีสไตล์ เพื่อสร้างโปรเจ็กต์ที่ใช้การกำหนดค่าบิลด์เดียว
  4. คลิก ตกลง หากต้องการกำหนดค่าโปรเจ็กต์ให้เสร็จสิ้น ให้ดำเนินการส่วนที่เหลือตามลำดับ

กำหนดค่าการจัดการซอร์สโค้ด

  1. จากแท็บ การจัดการซอร์สโค้ด เลือก Git
  2. ป้อน https://github.com/android/testing-samples.git ในช่อง URL ของที่เก็บ

กำหนดค่าสภาพแวดล้อมบิลด์

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

  1. ในแท็บ Build Environment ให้เลือกช่องทำเครื่องหมาย การตรวจสอบสิทธิ์ GCloud SDK และเลือกชื่อการติดตั้งที่คุณเลือกเมื่อเพิ่มข้อมูลการติดตั้ง Google Cloud
  2. จากเมนูแบบเลื่อนลง Google Credentials ให้เลือกข้อมูลรับรองบัญชีบริการที่คุณกำหนดค่าไว้

เพิ่มขั้นตอนการสร้าง Gradle เพื่อสร้างแพ็คเกจ APK ใหม่

  1. เลื่อนลงไปที่ส่วน Build คลิก Add build step จากนั้นเลือก Execute shell
  2. เพิ่มขั้นตอนการ build เพื่อรันคำสั่งต่อไปนี้ในไดเร็กทอรีหลักสำหรับแอปพลิเคชันของคุณ:
cd ui/espresso/BasicSample/
./gradlew assembleDebug  # for generating app apk
./gradlew assembleDebugAndroidTest # for generating testing apk

เพิ่มขั้นตอนการสร้าง gcloud CLI ให้กับ Jenkins

ตอนนี้คุณพร้อมที่จะเพิ่มขั้นตอนการสร้างให้กับ Jenkins เพื่อเรียกใช้ Test Lab โดยใช้บรรทัดคำสั่ง gcloud CLI

หากต้องการเพิ่มขั้นตอนการสร้าง gcloud CLI ให้เพิ่มขั้นตอน ดำเนินการสร้างเชลล์ ใหม่แล้วป้อนคำสั่งต่อไปนี้

gcloud config set project PROJECT_ID
gcloud firebase test android run \
--app ${WORKSPACE}/ui/espresso/BasicSample/app/build/outputs/apk/debug/app-debug.apk
--test ${WORKSPACE}/ui/espresso/BasicSample/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk

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

ทำการทดสอบกับเจนกินส์

ตอนนี้คุณพร้อมที่จะสร้างโปรเจ็กต์ Jenkins และทำการทดสอบเหมือนกับการทดสอบด้วยตนเองที่คุณรันด้วย gcloud CLI

หากต้องการรันการทดสอบกับ Jenkins ให้ทำตามขั้นตอนเหล่านี้:

  1. หากต้องการทริกเกอร์บิลด์ด้วยตนเอง ให้คลิก สร้างทันที
  2. ตรวจสอบความคืบหน้าและผลลัพธ์โดยคลิกบิลด์ใหม่ > เอาต์พุตคอนโซล

หากคุณไม่เห็นข้อผิดพลาด ยินดีด้วย! คุณเพียงแค่ตั้งค่าโปรเจ็กต์และทำการทดสอบบนอุปกรณ์ Pixel 2 ได้ในคลิกเดียว หากคุณพบข้อผิดพลาด โปรดดูที่ การแก้ไขปัญหา

5. แนวทางปฏิบัติที่ดีที่สุดขั้นสูงสำหรับการรันชุดการทดสอบขนาดใหญ่

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

เพิ่มความครอบคลุมในการกำหนดค่าอุปกรณ์หลายรายการ

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

  • Google Pixel 2 เสมือนที่มี API ระดับ 30 ในแนวตั้งและตำแหน่งที่ตั้งภาษาอังกฤษ
  • Samsung Galaxy S20 จริงที่มี API ระดับ 29 ในแนวนอนและภาษาภาษาฝรั่งเศส
gcloud firebase test android run \
  --type instrumentation \
  --app app-debug.apk \
  --test app-debug-test.apk \
  --device model=Pixel2,version=30,locale=en,orientation=portrait  \
  --device model=x1q,version=29,locale=fr,orientation=landscape

ใช้ไฟล์การกำหนดค่า gcloud CLI YAML

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

การทดสอบ Shard เพื่อทำงานแบบขนาน

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

หากต้องการเปิดใช้การแบ่งกลุ่มข้อมูล ให้ใช้ช่องทาง gcloud beta และเพิ่มแฟล็ก –num-uniform-shards หรือ –test-targets-for-shard ลง ในขั้นตอนการสร้าง gcloud CLI ตัวอย่างเช่น หากต้องการแบ่งการทดสอบออกเป็น 5 การดำเนินการและรันแบบขนาน ให้รันคำสั่งต่อไปนี้:

gcloud beta firebase test android run \
  --type instrumentation \
  --app app-debug.apk \
  --test app-debug-test.apk \
  --num-uniform-shards 5

เปิดใช้งานการตรวจจับความไม่สม่ำเสมอ

การทดสอบอุปกรณ์เคลื่อนที่มักจะไม่สม่ำเสมอ บางครั้งการทดสอบก็ผ่าน และบางครั้งอาจล้มเหลว แม้ว่าจะมีการตั้งค่าเดียวกันก็ตาม คุณตรวจสอบได้ว่าการทดสอบที่ล้มเหลวไม่สม่ำเสมอหรือไม่โดยใช้แฟล็ก CLI –num-flaky-test-attempts gcloud การตั้งค่าสถานะนี้ระบุจำนวนครั้งที่ควรพยายามดำเนินการทดสอบอีกครั้ง หากกรณีทดสอบอย่างน้อยหนึ่งกรณีล้มเหลวไม่ว่าด้วยเหตุผลใดก็ตาม

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

gcloud beta firebase test android run \
  --type instrumentation \
  --app app-debug.apk \
  --test app-debug-test.apk \
  --num-flaky-test-attempts 3

6. ขอแสดงความยินดี

ยินดีด้วย คุณทำการทดสอบ Test Lab ครั้งแรกด้วยระบบ CI สำเร็จแล้ว

คุณสร้างแอปและทดสอบ APK และทำการทดสอบเครื่องมือกับ Test Lab โดยใช้ gcloud CLI คุณยังตั้งค่าโปรเจ็กต์ Jenkins เพื่อทำการทดสอบเดียวกันโดยอัตโนมัติ

ตอนนี้คุณรู้ขั้นตอนสำคัญในการรวม Test Lab เข้ากับระบบ CI/CD ของคุณแล้ว

อะไรต่อไป?

ดู วิธีตั้งค่า CI โดยใช้ Firebase Emulator Suite

อ่านเพิ่มเติม

เอกสารอ้างอิง