ผสานรวม 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 for 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 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 Exit code - หลังจากที่การทดสอบเสร็จสิ้น คำสั่งจะแสดงด้วย 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

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

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

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

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

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

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

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

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

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

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

ติดตั้งและตั้งค่า Jenkins

คุณจะติดตั้งและตั้งค่า 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 ให้คลิก Manage Jenkins แล้วคลิก Manage Plugins
  2. ค้นหาปลั๊กอิน Git และ GCloud SDK แล้วติดตั้ง (หากยังไม่ได้ติดตั้ง)

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

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

หากต้องการกำหนดค่า SDK ของ Google Cloud และ Android สำหรับ 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 ให้คลิกจัดการ Jenkins แล้วคลิกจัดการข้อมูลเข้าสู่ระบบ
  2. ในส่วน Stores ที่กำหนดขอบเขตเฉพาะ Jenkins ให้คลิกลิงก์โดเมน (global) จากนั้นคลิก Add Credentials
  3. จากเมนูแบบเลื่อนลง Kind ให้เลือกบัญชีบริการ 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 ให้คลิกรายการใหม่
  3. ป้อนชื่อให้กับโปรเจ็กต์ในช่องชื่อรายการ แล้วคลิกโปรเจ็กต์ Freestyle เพื่อสร้างโปรเจ็กต์ที่ใช้การกำหนดค่าบิลด์เดียว
  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 ให้เพิ่มขั้นตอนบิลด์ Execute shell ใหม่แล้วป้อนคําสั่งต่อไปนี้

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

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

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

การทดสอบชาร์ดที่จะดำเนินการพร้อมกัน

การชาร์ดทดสอบจะแบ่งชุดการทดสอบออกเป็นกลุ่มย่อย (ชาร์ด) ซึ่งจะทำงานแยกกันอย่างอิสระ 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

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

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

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

ขั้นตอนถัดไปคือ

ดูวิธีตั้งค่า CI โดยใช้ชุดโปรแกรมจำลอง Firebase

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

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