คุณสามารถใช้ 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 อื่นๆ ได้ที่เอกสารต่อไปนี้