คุณสามารถใช้ Firebase Test Lab เมื่อพัฒนาแอปโดยใช้ระบบการรวมอย่างต่อเนื่อง (CI) ใดก็ได้ ระบบการรวมอย่างต่อเนื่องช่วยให้คุณสร้างและทดสอบแอปโดยอัตโนมัติได้ทุกครั้งที่ตรวจสอบการอัปเดตซอร์สโค้ดของแอป
การใช้ Firebase Test Lab กับ Jenkins CI
ส่วนนี้จะอธิบายวิธีใช้ Test Lab กับ Jenkins CI
ข้อกำหนด
คุณต้องทำตามขั้นตอนต่อไปนี้ให้เสร็จสิ้นก่อนจึงจะใช้ Firebase Test Lab กับ Jenkins ได้
ตั้งค่า gcloud ทำตามวิธีการจากการใช้ Firebase Test Lab จากบรรทัดคำสั่ง gcloud เพื่อสร้างโปรเจ็กต์ Firebase และกำหนดค่าสภาพแวดล้อม SDK Google Cloud ในเครื่อง
สร้างและให้สิทธิ์บัญชีบริการ บัญชีบริการจะไม่ต้องผ่านการตรวจสอบสแปมหรือข้อความแจ้ง CAPTCHA ซึ่งอาจบล็อกบิลด์ CI ของคุณได้ สร้างบัญชีบริการที่มีบทบาทผู้แก้ไขในคอนโซล Google Cloud แล้วเปิดใช้งาน (ดูวิธีการได้ที่เอกสารประกอบ gcloud auth activate-service-account)
เปิดใช้ API ที่จำเป็น หลังจากเข้าสู่ระบบโดยใช้บัญชีบริการแล้ว ให้เปิดใช้ Google Cloud Testing API และ Cloud Tool Results API ในหน้าไลบรารี API ของ Google Developers Console หากต้องการเปิดใช้ 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 ได้ที่หัวข้อการรักษาความปลอดภัยที่รวดเร็วและง่ายดาย, การตั้งค่าความปลอดภัยมาตรฐาน และการรักษาความปลอดภัย 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
- จากหน้าหลักของโปรเจ็กต์ ให้คลิกกำหนดค่า
ในหน้าการกำหนดค่าโปรเจ็กต์ ให้เลื่อนลงไปที่ส่วนบิลด์ แล้วเลือกเรียกใช้เชลล์จากเมนูเพิ่มขั้นตอนการบิลด์
ในหน้าต่าง Jenkins Execute shell command ให้ป้อนข้อมูลต่อไปนี้ โดยแทนที่ <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 อื่นๆ โปรดดูเอกสารประกอบของระบบนั้นๆ ดังนี้