CI TeamCity - Otomatisasi proses pembuatan pengujian Android dan UI

Pada artikel ini, saya membawa instruksi perhatian Anda untuk menginstal dan mengkonfigurasi TeamCity untuk mengotomatisasi perakitan dan pengujian proyek Android di bawah Windows.

Saya juga akan memperhatikan fitur pengaturan lingkungan untuk proyek Android (yang saya temukan dalam proses penelitian) dan berbagai macam hal yang dapat membantu membuat hidup lebih mudah bagi penguji dan pengembang pemula.

Tujuan:


Saat memperbarui kode proyek, berikut ini harus terjadi:

  • Proyek pembangunan otomatis
  • Jalankan Autotests UI
  • Mengekspor debug dan lepaskan file APK untuk pengujian manual selanjutnya
  • Beri tahu semua anggota tim pengembangan hasil

Rencana:


  1. Instal dan konfigurasikan Java JDK
  2. Instal dan konfigurasikan Android SDK
  3. Mengatur grader terpisah untuk debug
  4. Mempersiapkan proyek Android
  5. Instal TeamCity Server dan Build Agent
  6. Menyiapkan Proyek TeamCity → Bangun untuk membangun proyek dan mendapatkan APK instalasi
  7. Konfigurasikan langkah pembuatan dengan autotest UI

Bagian utama


1. Menginstal dan Mengkonfigurasi Java JDK

Berlawanan dengan kepercayaan populer tentang menginstal versi terbaru Java, JetBrains di situs web resminya mempublikasikan versi Java SDK yang direkomendasikan : tautan

Menginstal versi yang direkomendasikan: tautan

Juga menginstal Variabel Lingkungan:

  • JAVA_HOME- path ke folder dengan SKD Java untuk menggunakan CI.

    Contoh:

    C:\Java\jdk1.8.0_181
    Lebih baik dimasukkan ke dalam variabel Sistem.
  • Path - path ke folder dengan Java SKD untuk digunakan dari baris perintah.

    Contoh:

    C:\Java\jdk1.8.0_181\bin
    Lebih baik dimasukkan ke dalam variabel Pengguna.

Kami memeriksa pemasangan:

Di CMD di direktori mana pun yang kami masukkan: java -version

Java harus menjawab bahwa:



2. Instal dan konfigurasikan Android SDK

Kami tidak akan menginstal alat Android SDK secara terpisah. Android telah melarang untuk membuat proyek dari baris perintah. Akan lebih mudah untuk men-debug kemungkinan kesalahan jika kita segera menginstal Android Studio.

Instal versi terbaru: tautan

Juga instal Variabel Lingkungan:

ANDROID_HOME
Contoh: C:\Users\1\AppData\Local\Android\Sdk

ANDROID_AVD_HOME
Contoh: C:\Users\1\.android\avd

Jalur:

Contoh: C:\Users\1\AppData\Local\Android\Sdk\platform-tools\- luncurkan utilitas dari konsol oleh kami dan CI.

Periksa: ketik CMD: adb --help

Dapatkan informasi tentang versi saat ini dan perintah yang tersedia:



Path:

Contoh: C:\Users\1\AppData\Local\Android\Sdk\emulator\- Mulai emulator dari konsol oleh kami dan CI.

Periksa: kami mengetikkan CMD emulator -version

Kami mendapatkan informasi tentang versi saat ini:



3. Instalasi Gradle Gradle

termasuk dalam Android Studio, tetapi kami akan menempatkan satu lagi untuk debug dari konsol.

Versi ini tidak penting, karena diasumsikan bahwa proyek akan diluncurkan melalui pembungkus Gradle.

Saya sarankan menginstal versi yang mirip dengan yang digunakan dalam proyek, misalnya Gradle 3.3. Link .

Kami juga menginstal Variabel Lingkungan:

GRADLE_HOME- tidak perlu, karena CI akan menggunakan Gradle Android Studio.

GRADLE_USER_HOME

Contoh: c:/gradle-cache

Aktual untuk Windows Server, sebagai tanpanya, selama perakitan proyek, semua pustaka Gradle yang diunduh akan disimpanC:\Windows\System32\config\systemprofile\.gradlelebih lanjut CI tidak akan dapat mengakses file-file ini.

Path:

C:\Gradle\gradle-3.3\bin- path ke folder Gradle untuk penggunaan yang nyaman dari baris perintah.

Periksa: kami mengetikkan CMD gradle -v

Kami menerima informasi tentang versi saat ini:



4. Persiapan proyek Android

4.1. Buat proyek uji di Android Studio.

Jenis Kegiatan - Aktivitas Navigasi Bawah. Ini akan berguna nanti untuk membuat tes UI.

4.2. Nonaktifkan Gradle Daemon secara berkelanjutan sehingga Gradle Daemon tidak muncul di CI:

Tambahkan file gradle.properties:
add org.gradle.daemon=false

4.3. Kami juga menambahkan ke file .gitignore(sesuai selera Anda) sehingga file tambahan tidak tertinggal di VCS. 4.4. Buat keystore (atau gunakan yang sudah ada) di folder proyek. Link .

.gradle
.idea
/build/
local.properties





4.5. Tambahkan tautan ke keystore ke Gradle sehingga kami dapat membangun APK lengkap.

Contoh:

android{  
    ... //  
    signingConfigs {
        release {
            storeFile file("keystorefile.jks") //        
            storePassword "Password" //  
            keyAlias "android" // keyAlias,     
            keyPassword "Password" //  APK
        }
    }

    ... //  
     buildTypes {
        release {
            ... //  
            signingConfig signingConfigs.release //  APK
        }
    }
} 

4.6. Untuk menguji kesehatan sistem, kami akan mengumpulkan proyek baru dari baris perintah. Masukkan CMD:

cd < >

Misalnya: C:\Users\1\Documents\GitHub\Command2

Pergi ke proyek.

Masukkan: Kami

gradlew assembleDebug

menunggu selesainya perakitan.

Jika semuanya baik-baik saja, maka kita mendapatkan hasil BUILD SUCCESSFUL.



Kami pergi ke folder proyek: app\build\outputs\apk\debug

Ini berisi file APK baru yang dapat diinstal pada perangkat dan memeriksa apakah semuanya berfungsi.

4.7. Kami juga akan memeriksa apakah alat SDK dan manajer AVD diluncurkan.

4.7.1. Luncurkan Android Studio dan buat emulator. Anda tentu saja dapat membuatnya di baris perintah, tetapi kami memiliki shell UI yang terinstal, itu dosa untuk tidak menggunakannya.

Alat → Manajer AVD:



Versi SDK dari emulator yang dibuat harus setidaknya sama besar dengan proyek SDK kami.

4.7.2. Membuat emulator. Mari kita periksa peluncurannya dari konsol. Kita masuk di baris perintah:

start /min emulator -avd < >

Contoh:

start /min emulator -avd Pixel_2_API_25

Perhatikan bahwa kita menggunakan fungsi /minuntuk memulai emulator di latar belakang. Kalau tidak, ia tidak akan diizinkan untuk memasukkan perintah baru di CMD.
Perangkat sedang berjalan:



4.7.3. Kami memeriksa instalasi APK yang dikumpulkan.

Kita masuk dalam CMD:

adb install <path_to_apk>

Contoh:

adb install C:\Users\1\Documents\GitHub\Command2\app\release\app-release.apk

Berhasil:



4.7.4. Kami memeriksa peluncuran APK yang diinstal.

Kita masuk dalam CMD:

adb shell monkey -p < > -c android.intent.category.LAUNCHER 1

Contoh:

adb shell monkey -p com.panarik.command -c android.intent.category.LAUNCHER 1

Aplikasi dimulai:



4.7.5. Kami mengunggah proyek ke repositori jarak jauh, misalnya, ke GitHub. Periksa apakah proyek akan diunduh:

Instal Git BASH (jika kami menggunakan Git VCS). Link .

Kami mengkloning proyek dari repo jarak jauh. Masuk ke konsol Git BASH:

git clone < .git>

Contoh:

git clone https://github.com/panarik/Command2.git

Kami melihat hasilnya. Proyek ini disalin ke folder lokal:



Semuanya siap untuk menginstal dan mengkonfigurasi TeamCity. Mengapa kita melakukan latihan dengan baris perintah, dan tidak segera menginstal TeamCity. Akan jauh lebih mudah untuk memastikan terlebih dahulu bahwa proyek ini berfungsi, sehingga di masa depan akan lebih mudah untuk melokalisasi kemungkinan bug pada tahap pengembangan di TeamCity.

5. Menginstal TeamCity Server dan Build Agent

Saya tidak akan menjelaskan proses instalasi secara rinci. Dia ada dalam panduan resmi dan banyak sumber lainnya. Port server TeamCity saya usulkan untuk menetapkan non-standar, sehingga lebih sulit untuk menghitung pemindaian port.

6. Mengkonfigurasi Proyek TeamCity → Membangun

Dalam pengaturan umum, Anda hanya perlu mengatur path ke output APK:

Contoh:

app\build\outputs\apk\release\app-release.apk



6.1. Menyiapkan TeamCity VCS Roots

Semuanya standar. Dalam proyek kami, kami menggunakan Git, jadi kami memasukkannya dan tautan ke repo jarak jauh. Contoh:

https://github.com/panarik/Command2.git



6.2. Konfigurasi Build TeamCity

Tambahkan Langkah Build, yang akan mengkompilasi proyek dan menampilkan APK. Dalam proyek kami, kami menggunakan Gradle.

Masukkan dalam bidang tugas Gradle:

clean build assembleDebug --no-daemon(--no-daemon untuk jaga-jaga, dan ini harus berfungsi sebagai subskrip ke file yang kita lakukan di bagian 4.2)



Klik Jalankan, kita mendapatkan APK.

7. Mengkonfigurasi langkah-langkah pembuatan dengan autotest UI Kami

sampai pada bagian yang paling menarik, yaitu, peluncuran otomatis tes UI.

Langkah-langkah akan diluncurkan menggunakan file .BAT. Jauh lebih nyaman untuk menulis kode, mengubahnya dengan cepat tanpa harus masuk ke UI TeamCity, dll.

7.1. Pertama, buat langkah build dengan menjalankan emulator.

Anda dapat membuat URL ke BATnik sepenuhnya, untuk kenyamanan, saya membuat Lingkungan di TeamCity BAT_FILESdengan path ke folder dengan BATs: kami



menulis kode awal emulator dalam file.

Contoh:

start /min "emulator" /D "C:\Users\1\AppData\Local\Android\Sdk\emulator" emulator.exe -avd Pixel_2_API_25 -no-snapshot-save -no-boot-anim
Daftar perintah dan parameter di situs luar: tautan .

7.2. Buat langkah build dengan jeda saat emulator dimuat. Anda dapat segera mendaftarkan langkah pertama di .BAT, tetapi akan lebih jelas.

Contoh tim semacam itu yang telah memata-matai di Internet:

adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done; input keyevent 82'

Dari UI akan terlihat seperti ini:



Daftar semua tim di luar situs: tautan.

7.3. Jalankan tes.

Juga dari baris perintah. Semuanya individual di sini.

Contoh perintah:

gradlew connectedDebugAndroidTest

7.4. Kami menghentikan emulator.

Contoh perintah:

adb -s emulator-5554 emu kill

Proses selesai.

Anda juga dapat mengunggah laporan dalam langkah terpisah. Secara default, ini disimpan dalam folder proyek.

Terima kasih banyak atas perhatiannya!

Jika ada yang punya saran untuk memperbaiki kode untuk langkah-langkah, dan saran untuk perbaikan, saya akan sangat berterima kasih.

All Articles