คุณสามารถใช้ Firebase Test Lab เมื่อพัฒนาแอปโดยใช้ระบบการรวมอย่างต่อเนื่อง (CI) ระบบใดก็ได้ ระบบการรวมอย่างต่อเนื่องช่วยให้คุณสร้างและทดสอบแอปโดยอัตโนมัติทุกครั้งที่คุณเช็กอินการอัปเดตลงในซอร์สโค้ดของแอป
การใช้ Firebase Test Lab กับ Jenkins CI
ส่วนนี้จะอธิบายวิธีใช้ Test Lab กับ Jenkins CI
ข้อกำหนด
ก่อนที่จะใช้ Firebase Test Lab กับ Jenkins คุณต้องทำตามขั้นตอนต่อไปนี้
ตั้งค่า gcloud ทำตามวิธีการจาก หัวข้อการใช้ Firebase Test Lab จากบรรทัดคำสั่ง gcloud เพื่อสร้างโปรเจ็กต์ Firebase และกำหนดค่าสภาพแวดล้อม Google Cloud SDK ในเครื่อง
สร้างและให้สิทธิ์บัญชีบริการ บัญชีบริการจะไม่ขึ้นอยู่กับการตรวจสอบสแปมหรือข้อความแจ้ง Captcha ซึ่งอาจบล็อกบิลด์ CI สร้างบัญชีบริการที่มีบทบาทผู้แก้ไขใน Google Cloudคอนโซล แล้วเปิดใช้งาน (ดูวิธีในเอกสารประกอบ gcloud auth activate-service-account )
เปิดใช้ API ที่จำเป็น หลังจากเข้าสู่ระบบโดยใช้บัญชีบริการแล้ว ใน หน้าคลัง API ของ Google Developers Console ให้เปิดใช้ Google Cloud Testing API และ Cloud Tool Results API หากต้องการเปิดใช้ API เหล่านี้ ให้พิมพ์ชื่อ API ลงในช่องค้นหาที่ด้านบนของคอนโซล แล้วคลิกเปิดใช้ API ในหน้าภาพรวมของ API นั้น
ติดตั้งและตั้งค่า Jenkins
คุณสามารถติดตั้งและตั้งค่า Jenkins CI ใน Linux หรือ Windows รายละเอียดบางอย่างในคู่มือนี้เป็นข้อมูลเฉพาะสำหรับการติดตั้งและเรียกใช้ Jenkins CI ใน Linux ซึ่งรวมถึงการใช้เครื่องหมายทับ (/) ในเส้นทางไฟล์
หากต้องการดาวน์โหลดและติดตั้ง Jenkins ในคอมพิวเตอร์ที่ใช้ Linux หรือ Windows ให้ทำตาม วิธีการในหัวข้อการติดตั้ง Jenkins หลังจาก ติดตั้ง Jenkins แล้ว ให้ทำตามวิธีการในหัวข้อ การเริ่มต้นและการเข้าถึง Jenkins เพื่อตั้งค่าให้เสร็จสมบูรณ์และเข้าถึงแดชบอร์ด Jenkins
กำหนดค่าการตั้งค่าความปลอดภัยส่วนกลาง
Jenkins จะไม่มีการกำหนดค่าการตรวจสอบสิทธิ์ผู้ใช้และการควบคุมการเข้าถึงเมื่อติดตั้งครั้งแรก ก่อนที่จะใช้ Jenkins กับ Firebase Test Lab ให้กำหนดค่า การตั้งค่าความปลอดภัยส่วนกลางเพื่อบังคับใช้การควบคุมการเข้าถึงและตรวจสอบสิทธิ์ ผู้ใช้
วิธีกำหนดค่าการตั้งค่าความปลอดภัยส่วนกลาง
- ไปที่แดชบอร์ด Jenkins ในเซิร์ฟเวอร์ โดยไปที่ http://<servername>:8080 ซึ่ง <servername> คือชื่อ คอมพิวเตอร์ที่คุณติดตั้ง Jenkins
- ในแดชบอร์ด Jenkins ให้คลิก Manage Jenkins แล้วคลิก Configure Global Security
- ในหน้า Configure Global Security ให้คลิก Enable security และ จากนั้นคลิก Save
ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าการตั้งค่าความปลอดภัยสำหรับ Jenkins ได้ที่ Quick and Simple Security, Standard Security Setup, และ Securing Jenkins
สร้างโปรเจ็กต์ Jenkins
จากนั้นสร้างโปรเจ็กต์เพื่อเรียกใช้การทดสอบการรวมอย่างต่อเนื่องของแอป ด้วย Firebase Test Lab
วิธีสร้างโปรเจ็กต์ Jenkins
- ไปที่แดชบอร์ด Jenkins ในเซิร์ฟเวอร์ โดยไปที่ http://<servername>:8080 ซึ่ง <servername> คือชื่อ คอมพิวเตอร์ที่คุณติดตั้ง Jenkins
- ในแดชบอร์ด Jenkins ให้คลิก New Item
- พิมพ์ชื่อโปรเจ็กต์ในช่องชื่อรายการ โดยเลือกตัวเลือกต่อไปนี้
- เลือกโปรเจ็กต์อิสระ เพื่อสร้างโปรเจ็กต์ที่ใช้การกำหนดค่าบิลด์เดียว
- เลือกสร้างโปรเจ็กต์หลายการกำหนดค่า เพื่อสร้างโปรเจ็กต์ที่ทำงานในการกำหนดค่าบิลด์ที่แตกต่างกันหลายรายการ หากคุณวางแผนที่จะสร้างแอปด้วยการกำหนดค่าบิลด์ที่หลากหลาย (หลายภาษา หลายระดับ Android API ฯลฯ) โปรเจ็กต์หลายการกำหนดค่าจะเป็นตัวเลือกที่ดีที่สุด
- คลิกบันทึก
หลังจากสร้างโปรเจ็กต์แล้ว เว็บเบราว์เซอร์จะแสดงหน้าหลักของโปรเจ็กต์
เพิ่มขั้นตอนการควบคุมเวอร์ชันและการสร้าง Gradle
ส่วนนี้จะอธิบายวิธีผสานรวม Jenkins กับระบบควบคุมเวอร์ชัน เช่น GitHub และวิธีเพิ่มขั้นตอนการสร้าง Gradle เพื่อสร้างแพ็กเกจ APK จากซอร์สโค้ด
การผสานรวมกับ GitHub และระบบควบคุมเวอร์ชันอื่นๆ
หากคุณใช้ GitHub หรือระบบควบคุมเวอร์ชันอื่นเพื่อจัดการซอร์สโค้ดของแอป คุณสามารถกำหนดค่า Jenkins ให้เรียกใช้บิลด์อัตโนมัติและเรียกใช้การทดสอบทุกครั้งที่มีการเช็กอินการอัปเดตแอป นอกจากนี้ คุณยังกำหนดค่า Jenkins ให้เรียกใช้บิลด์เป็นระยะได้ด้วย
ดูข้อมูลเกี่ยวกับการกำหนดค่าบิลด์ใน Jenkins ได้ที่ การกำหนดค่าบิลด์อัตโนมัติ
การเพิ่มขั้นตอนการสร้าง Gradle เพื่อสร้างแพ็กเกจ APK ใหม่
หากคุณใช้ระบบควบคุมเวอร์ชันเพื่อจัดการซอร์สโค้ดของแอป คุณต้องรวมขั้นตอนการสร้าง Gradle เพื่อสร้างไบนารี APK ใหม่ทุกครั้งที่ Jenkins ดาวน์โหลดซอร์สโค้ดจากระบบควบคุมเวอร์ชัน
เพิ่มขั้นตอนการสร้างเพื่อเรียกใช้คำสั่งต่อไปนี้ในไดเรกทอรีหลักของแอปพลิเคชัน
./gradlew :app:assembleDebug ./gradlew :app:assembleDebugAndroidTest
เพิ่มขั้นตอนการสร้างเพื่อใช้แพ็กเกจ APK ที่สร้างโดย Gradle เมื่อทดสอบ ด้วย Test Lab คุณสามารถใช้เส้นทางนี้เป็น <local_server_path> ในตัวอย่างสคริปต์ของ Shell ที่ระบุไว้ด้านล่าง โดย <AppFolder> คือโฟลเดอร์โปรเจ็กต์ Android Studio ของ แอป:
<AppFolder>/app/build/outputs/apk
เพิ่มขั้นตอนการสร้าง Test Lab ลงใน Jenkins
ตอนนี้คุณพร้อมที่จะเพิ่มขั้นตอนการสร้างลงใน Jenkins เพื่อเรียกใช้ Test Lab โดยใช้ บรรทัดคำสั่ง gcloud แล้ว
วิธีเพิ่มขั้นตอนการสร้าง gcloud
- จากหน้าหลักของโปรเจ็กต์ ให้คลิกกำหนดค่า
ในหน้าการกำหนดค่าโปรเจ็กต์ ให้เลื่อนลงไปที่ส่วนบิลด์ แล้วเลือกเรียกใช้ Shell จากเมนูเพิ่มขั้นตอนการบิลด์
ในหน้าต่างคำสั่งเชลล์ Jenkins Execute ให้ป้อนคำสั่งต่อไปนี้ โดยแทนที่ <local_server_path> ด้วยเส้นทางไปยังแอปตัวอย่างใน เซิร์ฟเวอร์ <app_apk> ด้วย APK ของแอป และ <app_test_apk> ด้วย APK การทดสอบของแอป:
gcloud firebase test android run --app <local_server_path>/<app_apk>.apk --test <local_server_path>/<app_test_apk>.apk
วิเคราะห์ผลการทดสอบ
หลังจากที่ Test Lab ทดสอบแอปเสร็จแล้ว คุณสามารถดูผลการทดสอบได้ในคอนโซล Firebase หรือในบัคเก็ต Google Cloud Storage ในโปรเจ็กต์ นอกจากนี้ คุณยังเพิ่มคำสั่ง
gsutil ลงในคำสั่ง Shell ที่แสดงด้านบนเพื่อคัดลอกข้อมูลผลการทดสอบไปยังคอมพิวเตอร์ในเครื่องได้ด้วย
ดูข้อมูลเพิ่มเติมได้ที่
การวิเคราะห์ Firebase Test Lab ผลลัพธ์
การรวมอย่างต่อเนื่องกับระบบ CI อื่นๆ
หากต้องการดูวิธีใช้ Firebase Test Lab กับระบบ CI อื่นๆ โปรดดู เอกสารประกอบของระบบเหล่านั้น