Jenkins - Bagaimana cara mengetahui tes yang gagal berulang kali?

13

Saya baru mengenal CI dan Jenkins. Saya memiliki proyek Java yang menjalankan tes otomatis berbasis Testng pada layanan web. Tes otomasi berjalan secara teratur sebagai pekerjaan di Jenkins. Terkadang, pekerjaan itu gagal berulang kali untuk waktu yang lama. Tetapi, dalam setiap percobaan, jumlah kegagalan pengujian berbeda. Saya ingin melihat tes yang gagal berulang kali, katakan 5 berjalan terakhir. Dengan itu, saya dapat mengurangi jumlah kegagalan tes yang harus saya selidiki. Kegagalan yang tidak mengulangi semua dalam 5 berjalan terakhir bisa diabaikan atau diselidiki kemudian.

Bisakah seseorang menyarankan bagaimana saya bisa mengetahui tes mana yang gagal berulang kali di N berjalan sebelumnya?

Erran Morad
sumber
entah bagaimana Anda perlu menyimpan hasil tes lebih disukai dalam bentuk yang mudah untuk melihat gagal. Bisa jadi hanya dalam bentuk 'XEXX' di mana E berarti kesalahan dan seluruh baris untuk semua tes. Seperti itu Anda bisa menyimpannya dalam file teks tanpa banyak ruang.
David
untuk setiap percobaan semua tes yang Anda buat baris baru, maka mudah untuk melihat atau menganalisis dengan skrip.
David
Anda memiliki plugin test-ng yang tersedia dan Anda dapat mempublikasikan hasilnya setiap kali ... kemudian Anda dapat membandingkan setiap build yang akan memberi tahu Anda tes mana yang gagal
rohit thomas
@rohitthomas - Apakah Anda menyarankan untuk membandingkan build secara manual? Saya ingin menghindarinya.
Erran Morad
Apa yang Anda anggap 'gagal berulang kali'? Apakah maksud Anda semua testcases yang gagal dalam 5 berjalan terakhir misalnya atau hanya setiap testcase yang gagal dalam 3 dari 5 eksekusi?
Michael Kemmerzell

Jawaban:

7

Anda dapat mengambil berapa kali tes gagal dari objek build dalam pipa: Anda dapat membuat laporan kecil dan melampirkannya ke build Anda seperti:

@NonCPS
def getRepeatedlyFailingTests(int timesFailedAtLeast = 2) {
  currentBuild.rawBuild.getAction(hudson.tasks.junit.TestResultAction.class)
    .getFailedTests()
    // Keep only tests that failed at least twice
    .findAll { it.age >= timesFailedAtLeast }
    .collect { [ "${it.className}.${it.name}".trim(), it.age ] }
}

def saveRepeatedlyFailingTestsReport() {
  def header = [ "test", "times-failed" ]
  def records = getRepeatedlyFailingTests()
  def report = "repeatedly-failing-tests.csv"
  writeCSV file: report, records: [ header ] + records, format: CSVFormat.EXCEL
  archiveArtifacts report
}

Teleponlah saveRepeatedlyFailingTestsReportsetelah Anda mengumpulkan hasil tes dan Anda akan melihat laporan di tautan artefak bangunan terbaru Anda.

handuk
sumber
1
Bahasa apa ini? Bisakah Anda menambahkan lebih detail? Saya akan menambahkan hadiah agar semoga bermanfaat. Terima kasih.
Erran Morad
1
@ BoratSagdiyev ini adalah DSL Groovy yang digunakan dalam pipa Jenkins. Jika Anda hanya membutuhkan bantuan visual saya akan pergi dengan jawaban Sooraj, karena itu tidak memerlukan pengetahuan pipa. Untuk membangun saluran pipa yang lengkap, saya perlu tahu pekerjaan freestyle Anda, tapi itu di luar ruang lingkup pertanyaan.
handuk
2

Anda dapat menggunakan plugin Test Result Analyzer dari Jenkins untuk menganalisis tren tes.

Plugin Penguji Hasil Uji

Video Tutorial dari youtube

Instalasi :

  1. Di Jenkins Dashboard, klik Manage Jenkins
  2. Dari menu pilih Manage Plugins
  3. Klik pada tab Tersedia dan analisa input di kotak pencarian Filter
  4. Klik kotak centang di sebelah kiri dari Hasil Uji Analyzer dan klik Install tanpa restart tombol

Penggunaan :

  1. Pergi ke proyek dan klik Konfigurasi
  2. Goto bagian Post-build Actions dan pilih Terbitkan laporan hasil tes JUnit dari dropdown Add post-build action
  3. Dalam bidang Laporan pengujian, XML menyediakan jalur TestNg / JUnit xml dalam proyek. Sebagai contoh - **/target/test-results/*.xmldalam kasus saya
  4. Simpan konfigurasi
  5. Kemudian setelah pembangunan yang berhasil, goto proyek Anda, dan klik pada Analyzer Hasil Uji pada menu sebelah kiri
Sooraj
sumber
Terima kasih untuk tautannya. Tapi, tautan hanya jawaban tidak banyak membantu. Bisakah Anda menambahkan deskripsi singkat tentang bagaimana saya bisa menggunakan plugin untuk mencapai apa yang saya butuhkan?
Erran Morad
Instal plugin dan konfigurasikan plugin ke Tindakan Post-build proyek yang diinginkan . Kemudian setelah pembangunan yang berhasil, Anda dapat melihat hasilnya dengan mengklik pada Test Result Analyzer di menu sebelah kiri proyek Anda
Sooraj
@ Borat Sagdiyev, saya telah memperbarui jawabannya dengan langkah-langkah terperinci dan video untuk mengonfigurasi plugin Test Results Analyzer . Semoga ini bisa membantu;)
Sooraj