เริ่มการทดสอบด้วยระบบการรวมอย่างต่อเนื่อง (CI)

คุณใช้ Firebase Test Lab เมื่อพัฒนาแอปได้โดยใช้ระบบการผสานรวมอย่างต่อเนื่อง (CI) ระบบการผสานรวมแบบต่อเนื่องช่วยให้คุณสร้างและทดสอบแอปได้โดยอัตโนมัติทุกครั้งที่คุณตรวจสอบการอัปเดตซอร์สโค้ดของแอป

การใช้ Firebase Test Lab กับ Jenkins CI

ส่วนนี้จะอธิบายวิธีใช้ Test Lab กับ Jenkins CI

ข้อกำหนด

คุณต้องทำตามขั้นตอนต่อไปนี้ก่อนจึงจะใช้ Firebase Test Lab กับ Jenkins ได้

  1. ตั้งค่า gcloud ทำตามวิธีการจากการใช้ Firebase Test Lab จากบรรทัดคำสั่ง gcloud เพื่อสร้างโปรเจ็กต์ Firebase และกำหนดค่าสภาพแวดล้อม Google Cloud SDK ในเครื่อง

  2. สร้างและให้สิทธิ์บัญชีบริการ บัญชีบริการไม่ต้องได้รับการตรวจสอบสแปมหรือข้อความแจ้ง CAPTCHA ซึ่งอาจบล็อกบิลด์ CI ให้สร้างบัญชีบริการที่มีบทบาทผู้แก้ไขใน Google Cloud Console แล้วเปิดใช้งาน (ดูวิธีการในเอกสารประกอบของการตรวจสอบสิทธิ์ gcloud การตรวจสอบสิทธิ์บัญชีบริการ)

  3. เปิดใช้ API ที่จำเป็น หลังจากเข้าสู่ระบบด้วยบัญชีบริการ ในหน้าไลบรารี Google Developers Console API ให้เปิดใช้ 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 ให้กำหนดการตั้งค่าความปลอดภัยส่วนกลางเพื่อบังคับใช้การควบคุมการเข้าถึงและตรวจสอบสิทธิ์ผู้ใช้

วิธีกำหนดการตั้งค่าความปลอดภัยส่วนกลาง

  1. ไปที่แดชบอร์ดของ Jenkins ในเซิร์ฟเวอร์ โดยไปที่ http://<servername>:8080 โดยที่ <servername> คือชื่อ ของคอมพิวเตอร์ที่คุณติดตั้ง Jenkins
  2. ในหน้าแดชบอร์ดของ Jenkins ให้คลิก Manage Jenkins แล้วคลิก Configure Global Security
  3. ในหน้ากำหนดค่า Global Security ให้คลิกเปิดใช้การรักษาความปลอดภัย แล้วคลิกบันทึก

ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าความปลอดภัยสำหรับ Jenkins ได้ที่หัวข้อการรักษาความปลอดภัยที่รวดเร็วและง่ายดาย การตั้งค่าการรักษาความปลอดภัยแบบมาตรฐาน และการรักษาความปลอดภัยของ Jenkins

สร้างโปรเจ็กต์ Jenkins

ต่อมา ให้สร้างโปรเจ็กต์เพื่อเรียกใช้การทดสอบการผสานรวมอย่างต่อเนื่องของแอปด้วย Firebase Test Lab

วิธีสร้างโปรเจ็กต์ Jenkins

  1. ไปที่แดชบอร์ดของ Jenkins ในเซิร์ฟเวอร์ โดยไปที่ http://<servername>:8080 โดยที่ <servername> คือชื่อ ของคอมพิวเตอร์ที่คุณติดตั้ง Jenkins
  2. บนหน้าแดชบอร์ดของ Jenkins ให้คลิกรายการใหม่
  3. พิมพ์ชื่อโปรเจ็กต์ในช่องชื่อรายการ ดังนี้
    • เลือกโปรเจ็กต์ Freestyle เพื่อสร้างโปรเจ็กต์ที่ใช้การกำหนดค่าบิลด์เดียว
    • เลือกสร้างโปรเจ็กต์การกำหนดค่าหลายรายการเพื่อสร้างโปรเจ็กต์ที่เรียกใช้บนการกำหนดค่าบิลด์ต่างๆ หลายรายการ หากคุณวางแผนที่จะสร้างแอปด้วยการกำหนดค่าบิลด์ที่หลากหลาย (หลายภาษา, Android API หลายระดับ ฯลฯ) โปรเจ็กต์การกำหนดค่าหลายรายการคือตัวเลือกที่ดีที่สุด
  4. คลิกบันทึก

หลังจากที่สร้างโปรเจ็กต์แล้ว เว็บเบราว์เซอร์จะแสดงหน้าหลักของโปรเจ็กต์

เพิ่มการควบคุมการแก้ไขและขั้นตอนบิลด์ของ Gradle

ส่วนนี้จะอธิบายวิธีผสานรวม Jenkins กับระบบควบคุมการแก้ไข เช่น GitHub และวิธีเพิ่มขั้นตอนบิลด์ Gradle เพื่อสร้างแพ็กเกจ APK จากซอร์สโค้ด

การผสานรวมกับ GitHub และระบบควบคุมการแก้ไขอื่นๆ

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

ดูข้อมูลเกี่ยวกับการกำหนดค่าบิลด์ใน Jenkins ได้ที่การกำหนดค่าบิลด์อัตโนมัติ

เพิ่มขั้นตอนบิลด์ Gradle เพื่อสร้างแพ็กเกจ APK ใหม่

หากคุณใช้ระบบควบคุมการแก้ไขเพื่อจัดการซอร์สโค้ดสำหรับแอป คุณจะต้องรวมขั้นตอนบิลด์ Gradle เพื่อสร้างไบนารี APK ใหม่ทุกครั้งที่ Jenkins ดาวน์โหลดซอร์สโค้ดจากระบบควบคุมการแก้ไขของคุณ

  1. เพิ่มขั้นตอนบิลด์เพื่อเรียกใช้คำสั่งต่อไปนี้ในไดเรกทอรีหลักสำหรับแอปพลิเคชันของคุณ

    ./gradlew :app:assembleDebug
    ./gradlew :app:assembleDebugAndroidTest
    

  2. เพิ่มขั้นตอนบิลด์เพื่อใช้แพ็กเกจ APK ที่ Gradle สร้างเมื่อทดสอบกับ Test Lab คุณสามารถใช้เส้นทางนี้เป็น <local_server_path> ในตัวอย่างสคริปต์ Shell ที่แสดงอยู่ด้านล่าง โดยที่ <AppFolder> คือโฟลเดอร์โปรเจ็กต์ Android Studio สำหรับแอปของคุณ

    <AppFolder>/app/build/outputs/apk
    

เพิ่มขั้นตอนบิลด์ Test Lab ไปยัง Jenkins

ตอนนี้คุณพร้อมที่จะเพิ่มขั้นตอนบิลด์ไปยัง Jenkins เพื่อเรียกใช้ Test Lab โดยใช้บรรทัดคำสั่ง gcloud แล้ว

วิธีเพิ่มขั้นตอนบิลด์ gcloud

  1. จากหน้าหลักของโปรเจ็กต์ ให้คลิกกำหนดค่า
  2. ในหน้าการกำหนดค่าโปรเจ็กต์ ให้เลื่อนลงไปที่ส่วนสร้าง แล้วเลือกดำเนินการเชลล์จากเมนูเพิ่มขั้นตอนของบิลด์

  3. ในหน้าต่าง Jenkins Execute shellคำสั่ง ให้ป้อนข้อมูลต่อไปนี้ แทนที่ <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 อื่นๆ โปรดดูเอกสารของ CI