Jenkins-어떤 테스트가 반복적으로 실패했는지 확인하는 방법


13

저는 CI와 Jenkins를 처음 사용합니다. 웹 서비스에서 Testng 기반 자동 테스트를 실행하는 Java 프로젝트가 있습니다. 자동화 테스트는 Jenkins에서 작업으로 정기적으로 실행됩니다. 때때로 작업이 오랫동안 반복해서 실패합니다. 그러나 각 실행에서 테스트 실패 횟수는 다릅니다. 마지막 5 회 실행 중 어떤 테스트가 반복적으로 실패했는지 확인하고 싶습니다. 이를 통해 조사해야 할 테스트 실패 횟수를 줄일 수 있습니다. 마지막 5 번의 실행에서 모두 반복되지 않는 실패는 나중에 무시하거나 조사 할 수 있습니다.

누군가 지난 N 번 실행에서 어떤 테스트가 반복적으로 실패했는지 어떻게 알 수 있습니까?


어떻게해서든지 실패를보기 쉬운 테스트 결과를 저장해야합니다. E는 오류를 나타내며 모든 테스트의 전체 줄을 나타내는 'XEXX'형식 일 수 있습니다. 그런 식으로 공간을 많이 차지하지 않고 텍스트 파일로 저장할 수 있습니다.
David

모든 테스트를 실행할 때마다 새로운 줄을 만들고 스크립트로 쉽게 보거나 분석 할 수 있습니다.
David

test-ng 플러그인을 사용할 수 있으며 매번 결과를 게시 할 수 있습니다 ... 그런 다음 각 빌드를 비교하여 어떤 테스트가 실패했는지 알 수 있습니다
rohit thomas

@rohitthomas-빌드를 수동으로 비교할 것을 제안합니까? 나는 그것을 피하고 싶다.
Erran Morad

'반복 실패'는 무엇이라고 생각하십니까? 예를 들어 지난 5 회 실행에서 실패한 모든 테스트 사례 또는 5 회 실행 중 3 회 실패한 모든 테스트 사례 만 의미합니까?
Michael Kemmerzell '12

답변:


7

파이프 라인의 빌드 객체에서 테스트가 실패한 횟수를 취할 수 있습니다. 작은 보고서를 작성하여 빌드에 첨부 할 수 있습니다.

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

saveRepeatedlyFailingTestsReport테스트 결과를 수집 한 후 전화 하면 최신 빌드 아티팩트 링크에 ​​보고서가 표시됩니다.


1
어떤 언어입니까? 자세한 내용을 추가해 주시겠습니까? 현상금을 추가하여 가치있게 만들겠습니다. 감사.
Erran Morad

1
@BoratSagdiyev 이것은 Jenkins 파이프 라인에서 사용되는 Groovy DSL입니다. 시각적 지원 만 필요한 경우 파이프 라인 지식이 필요하지 않으므로 Sooraj의 대답을 따르십시오. 완전한 파이프 라인을 구축하려면 자유형 작업을 알아야합니다. 그러나 그것은 문제의 범위를 벗어납니다.
towel

2

Jenkins의 Test Result Analyzer 플러그인을 사용하여 테스트 경향을 분석 할 수 있습니다.

테스트 결과 분석기 플러그인

YouTube의 비디오 자습서

설치 :

  1. Jenkins 대시 보드에서 Jenkins 관리를 클릭하십시오.
  2. 메뉴에서 플러그인 관리를 선택 하십시오.
  3. 필터 검색 상자에서 사용 가능한 탭과 입력 분석기 를 클릭하십시오.
  4. 테스트 결과 분석기 왼쪽의 확인란을 클릭하고 다시 시작하지 않고 설치 버튼을 클릭하십시오

사용법 :

  1. 프로젝트로 이동하여 구성을 클릭하십시오.
  2. 빌드 후 조치 섹션으로 이동하고 빌드 후 조치 추가 드롭 다운에서 JUnit 테스트 결과 보고서 공개를 선택 하십시오.
  3. 테스트 보고서 XML 필드에서 프로젝트의 TestNg / JUnit xml 경로를 제공하십시오. 예를 들어- **/target/test-results/*.xml내 경우에는
  4. 구성 저장
  5. 그런 다음 성공적인 빌드 후 프로젝트 로 이동하여 왼쪽 메뉴에서 테스트 결과 분석기 를 클릭하십시오.

링크 주셔서 감사합니다. 그러나 링크 전용 답변은별로 도움이되지 않습니다. 플러그인을 사용하여 필요한 것을 달성하는 방법에 대한 간단한 설명을 추가해 주시겠습니까?
Erran Morad

플러그인을 설치하고 원하는 프로젝트의 빌드 후 조치로 플러그인을 구성하십시오 . 그런 다음 성공적인 빌드 후 프로젝트의 왼쪽 메뉴 에서 Test Result Analyzer 를 클릭하여 결과를 볼 수 있습니다.
Sooraj

@Borat Sagdiyev, 테스트 결과 분석기 플러그인 을 구성하는 자세한 단계와 비디오로 답변을 업데이트했습니다 . 희망이 도움이
되길 바랍니다
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.