คุณสามารถใช้ 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 ที่จําเป็น หลังจากเข้าสู่ระบบโดยใช้บัญชีบริการแล้ว ให้เปิดใช้ 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
- ในหน้ากำหนดค่าการรักษาความปลอดภัยทั่วโลก ให้คลิกเปิดใช้การรักษาความปลอดภัย แล้วคลิกบันทึก
ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าการตั้งค่าความปลอดภัยสำหรับ Jenkins ได้ที่การรักษาความปลอดภัยที่รวดเร็วและง่ายดาย การตั้งค่าการรักษาความปลอดภัยแบบมาตรฐาน และการรักษาความปลอดภัยของ Jenkins
สร้างโปรเจ็กต์ Jenkins
จากนั้นสร้างโปรเจ็กต์สําหรับการเรียกใช้การทดสอบการผสานรวมอย่างต่อเนื่องของแอปด้วย Firebase Test Lab
วิธีสร้างโปรเจ็กต์ Jenkins
- ไปที่แดชบอร์ด Jenkins ในเซิร์ฟเวอร์ โดยไปที่ http://<servername>:8080 โดยที่ <servername> คือชื่อคอมพิวเตอร์ที่คุณติดตั้ง Jenkins
- ในแดชบอร์ด Jenkins ให้คลิกรายการ��หม่
- พิมพ์ชื่อโปรเจ็กต์ในช่องชื่อรายการ ดังนี้
- เลือกโปรเจ็กต์แบบอิสระเพื่อสร้างโปรเจ็กต์ที่ใช้การกำหนดค่าบิลด์เดียว
- เลือกสร้างโปรเจ็กต์การกำหนดค่าหลายรายการเพื่อสร้างโปรเจ็กต์ที่ทำงานบนการกำหนดค่าการสร้างที่แตกต่างกันหลายรายการ หากคุณวางแผนที่จะสร้างแอปด้วยการกำหนดค่าบิลด์ที่หลากหลาย (ภาษาหลายภาษา, API ของ Android หลายระดับ ฯลฯ) โปรเจ็กต์แบบหลายการกำหนดค่าคือตัวเลือกที่ดีที่สุด
- คลิกบันทึก
หลังจากสร้างโปรเจ็กต์แล้ว เว็บเบราว์เซอร์จะแสดงหน้าหลักของโปรเจ็กต์
เพิ่มการควบคุมการแก้ไขและขั้นตอนการสร้าง 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> ในตัวอย่างสคริปต์เชลล์ที่ระบุไว้ด้านล่าง โดยที่ <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
ลงในคำสั่งเชลล์ที่แสดงด้านบนเพื่อคัดลอกข้อมูลผลการทดสอบไปยังคอมพิวเตอร์เครื่องก็ได้
ดูข้อมูลเพิ่มเติมได้ที่การวิเคราะห์ผลลัพธ์ Firebase Test Lab
การรวมอย่างต่อเนื่องกับระบบ CI อื่นๆ
หากต้องการดูวิธีใช้ Firebase Test Lab กับระบบ CI อื่นๆ โปรดดูเอกสารต่อไปนี้