เริ่มการทดสอบด้วยระบบการรวมอย่างต่อเนื่อง (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คอนโซล แล้วเปิดใช้งาน (ดูวิธีในเอกสารประกอบ gcloud auth activate-service-account )

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

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

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าการตั้งค่าความปลอดภัยสำหรับ Jenkins ได้ที่หัวข้อ Quick and Simple Security, Standard Security Setup, และ Securing Jenkins

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

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

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

  1. ไปที่แดชบอร์ด Jenkins ในเซิร์ฟเวอร์ โดยไปที่ http://<servername>:8080 ซึ่ง <servername> คือชื่อ คอมพิวเตอร์ที่คุณติดตั้ง Jenkins
  2. ในแดชบอร์ด Jenkins ให้คลิก New Item
  3. พิมพ์ชื่อโปรเจ็กต์ในช่องชื่อรายการ โดยเลือกตัวเลือกต่อไปนี้
    • เลือก Freestyle project เพื่อสร้างโปรเจ็กต์ที่ใช้การกำหนดค่าบิลด์เดียว
    • เลือก Build multi-configuration project เพื่อสร้างโปรเจ็กต์ที่ทำงานในการกำหนดค่าบิลด์ที่แตกต่างกันหลายรายการ หากคุณวางแผนที่จะสร้างแอปด้วยการกำหนดค่าบิลด์ที่หลากหลาย (หลายภาษา หลายระดับ 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. ในหน้าการกำหนดค่าโปรเจ็กต์ ให้เลื่อนลงไปที่ส่วนบิลด์ แล้วเลือกเรียกใช้ Shell จากเมนูเพิ่มขั้นตอนการสร้าง

  3. ในหน้าต่างคำสั่งเชลล์ 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 อื่นๆ โปรดดู เอกสารประกอบของระบบเหล่านั้น