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

1. บทนำ

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

วิธีเรียกใช้การทดสอบบนอุปกรณ์เคลื่อนที่ด้วยระบบ 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 Test Lab สามารถเรียกใช้การทดสอบได้โดยไม่ต้องมีโค้ดทดสอบด้วยซ้ำโดยใช้ Crawler อัตโนมัติของเรา Robo

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

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

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

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

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

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 หากการทดสอบผ่าน หากการทดสอบล้มเหลว คำสั่งจะออกโดยมีรหัสออกที่ไม่ใช่ 0
  • คอนโซล Firebase - gcloud CLI จะพิมพ์ลิงก์ไปยังคอนโซล Firebase ลิงก์จะเป็นไปตามแบบแผนการตั้งชื่อ https://console.firebase.google.com/project/PROJECT_ID/testlab/... ดูข้อมูลเพิ่มเติมได้ที่ตีความผลลัพธ์จากการทดสอบครั้งเดียว
  • ไฟล์ XML ของ JUnit - 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 ที่เก็บอาร์ติแฟกต์และผลการทดสอบ หากต้องการค้นหาไฟล์ XML ของ JUnit ที่มีผลการทดสอบ ให้เปิดลิงก์แล้วไปที่ 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

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

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

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

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

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

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างบัญชีบริการได้ที่การสร้างบัญชีบริการ

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

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

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

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

ยืนยันปลั๊กอินที่ติดตั้ง

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

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

กำหนดค่าตำแหน่งของ Android SDK และ 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. กำหนดค่าพร็อพเพอร์ตี้ทั้งระบบสำหรับ SDK ของ Android และ Google Cloud โดยเปิดแดชบอร์ด > จัดการ Jenkins > กำหนดค่าระบบ
  7. เลือกช่องทำเครื่องหมายตัวแปรสภาพแวดล้อม แล้วคลิกเพิ่ม
  8. ในช่องชื่อ ให้ป้อน ANDROID_HOME ในช่องค่า ให้ป้อนตำแหน่งของ 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 ให้คลิก Manage Jenkins แล้วคลิก Manage Credentials
  2. ในส่วนที่เก็บข้อมูลที่กำหนดขอบเขตไว้สำหรับ Jenkins ให้คลิกลิงก์โดเมน (global) แล้วคลิกเพิ่มข้อมูลเข้าสู่ระบบ
  3. จากเมนูแบบเลื่อนลงประเภท ให้เลือกบัญชีบริการของ Google จากคีย์ส่วนตัว
  4. ในช่องชื่อโปรเจ็กต์ ให้ป้อนชื่อโปรเจ็กต์ Firebase
  5. เลือกคีย์ JSON จากนั้นคลิกเรียกดู แล้วเรียกดูตำแหน่งที่คุณบันทึกคีย์บัญชีบริการ
  6. คลิกสร้าง

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

4. เรียกใช้การทดสอบ Test Lab ด้วย Jenkins CI

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

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

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

สร้างโปรเจ็กต์เพื่อเรียกใช้การทดสอบการผสานรวมอย่างต่อเนื่องของแอปด้วย Test Lab

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

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

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

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

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

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

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

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

  1. เลื่อนลงไปที่ส่วนบิลด์ คลิกเพิ่มขั้นตอนการบิลด์ แล้วเลือกเรียกใช้เชลล์
  2. เพิ่มขั้นตอนการสร้างเพื่อเรียกใช้คำสั่งต่อไปนี้ในไดเรกทอรีหลักของแอปพลิเคชัน
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

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

หากต้องการเรียกใช้การทดสอบด้วย Jenkins ให้ทำตามขั้นตอนต่อไปนี้

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

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

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

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

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

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

  • 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

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

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

การทดสอบแบบ Shard เพื่อเรียกใช้แบบคู่ขนาน

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

เปิดใช้การตรวจหาความไม่เสถียร

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

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

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 ของแอปและ APK สำหรับการทดสอบ และเรียกใช้การทดสอบเครื่องมือกับ Test Lab โดยใช้ gcloud CLI นอกจากนี้ คุณยังตั้งค่าโปรเจ็กต์ Jenkins เพื่อทำให้การทดสอบเดียวกันเป็นแบบอัตโนมัติได้ด้วย

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

ขั้นตอนต่อไปคืออะไร

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

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

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