Jenkins - Làm thế nào để tìm ra những bài kiểm tra thất bại nhiều lần?


13

Tôi mới biết về CI và Jenkins. Tôi có một dự án Java chạy thử nghiệm tự động dựa trên Testng trên một dịch vụ web. Các bài kiểm tra tự động hóa chạy thường xuyên như một công việc ở Jenkins. Đôi khi, công việc thất bại liên tục trong một thời gian dài. Nhưng, trong mỗi lần chạy, số lần thử nghiệm thất bại là khác nhau. Tôi muốn xem thử nghiệm nào thất bại nhiều lần, nói 5 lần chạy gần nhất. Cùng với đó, tôi có thể giảm số lần thất bại thử nghiệm mà tôi phải điều tra. Những thất bại không lặp lại tất cả trong 5 lần chạy gần nhất có thể bị bỏ qua hoặc điều tra sau đó.

Ai đó có thể vui lòng đề nghị làm thế nào tôi có thể tìm ra những bài kiểm tra thất bại lặp đi lặp lại trong quá khứ N chạy không?


bằng cách nào đó bạn cần lưu kết quả kiểm tra thích hợp trong một loại dễ dàng để thấy sự thất bại. Có thể chỉ ở dạng 'XEXX' trong đó E là lỗi và toàn bộ dòng cho tất cả các thử nghiệm. Như thế bạn có thể lưu nó trong một tệp văn bản mà không cần nhiều không gian.
David

đối với mỗi lần chạy của tất cả các bài kiểm tra bạn tạo một dòng mới, thì thật dễ dàng để xem hoặc phân tích theo tập lệnh.
David

Bạn có sẵn plugin thử nghiệm và bạn có thể công bố kết quả mỗi lần ... sau đó bạn có thể so sánh từng bản dựng sẽ cho bạn biết thử nghiệm nào thất bại
rohit thomas

@rohitthomas - Bạn có đề nghị so sánh các bản dựng bằng tay không? Tôi muốn tránh điều đó.
Erran Morad

Bạn nghĩ gì về "thất bại nhiều lần"? Bạn có nghĩa là tất cả các testcase tha thất bại trong 5 lần chạy gần đây chẳng hạn hoặc chỉ mỗi testcase thất bại trong 3 trên 5 lần thực hiện?
Michael Kemmerzell

Câu trả lời:


7

Bạn có thể lấy số lần thử nghiệm thất bại từ đối tượng của bản dựng trong một đường ống: bạn có thể tạo một báo cáo nhỏ và đính kèm nó vào bản dựng của mình như vậy:

@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
}

Gọi saveRepeatedlyFailingTestsReportsau khi bạn thu thập kết quả kiểm tra của mình và bạn sẽ thấy báo cáo trong liên kết tạo tác xây dựng mới nhất của mình.


1
Ngôn ngữ này là gì? Bạn có thể vui lòng thêm chi tiết? Tôi sẽ thêm một tiền thưởng để hy vọng làm cho nó đáng giá. cảm ơn.
Erran Morad

1
@BoratSagdiyev đây là Groovy DSL được sử dụng trong đường ống Jenkins. Nếu bạn chỉ cần trợ giúp trực quan, tôi sẽ đi với câu trả lời của Sooraj, vì nó không đòi hỏi kiến ​​thức đường ống. Để xây dựng một đường ống hoàn chỉnh, tôi cần biết công việc tự do của mình, nhưng đó là ngoài phạm vi của câu hỏi.
khăn

2

Bạn có thể sử dụng plugin Phân tích kết quả kiểm tra từ Jenkins để phân tích xu hướng kiểm tra.

Kiểm tra kết quả phân tích plugin

Hướng dẫn bằng video từ youtube

Cài đặt :

  1. Trong Bảng điều khiển Jenkins, nhấp vào Quản lý Jenkins
  2. Từ menu chọn Manage Plugins
  3. Nhấp vào tab Có sẵnphân tích đầu vào trong hộp Tìm kiếm bộ lọc
  4. Nhấp vào hộp kiểm bên trái của thử nghiệm kết quả phân tích và nhấn Install mà không cần khởi động lại nút

Cách sử dụng :

  1. Đi đến dự án và nhấp vào Cấu hình
  2. Phần Goto Post-build Action và chọn Xuất bản báo cáo kết quả kiểm tra JUnit từ danh sách thả xuống Thêm hành động sau xây dựng
  3. Trong trường XML báo cáo thử nghiệm cung cấp đường dẫn của xml TestNg / JUnit trong dự án. Ví dụ: **/target/test-results/*.xmltrong trường hợp của tôi
  4. Lưu cấu hình
  5. Sau khi xây dựng thành công, hãy xem dự án của bạn và nhấp vào Trình phân tích kết quả kiểm tra ở menu bên trái

Cảm ơn các liên kết. Nhưng, Liên kết chỉ trả lời không giúp được nhiều. Bạn có thể vui lòng thêm một mô tả ngắn gọn về cách tôi có thể sử dụng plugin để đạt được những gì tôi cần không?
Erran Morad

Cài đặt plugin và định cấu hình plugin cho Hành động xây dựng sau của dự án mong muốn . Sau khi xây dựng thành công, bạn có thể xem kết quả bằng cách nhấp vào Trình phân tích kết quả kiểm tra ở menu bên trái của dự án của bạn
Sooraj

@Borat Sagdiyev, tôi đã cập nhật câu trả lời với các bước chi tiết và video để định cấu hình plugin Trình phân tích kết quả kiểm tra . Hy vọng điều này sẽ giúp;)
Sooraj
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.