2017-05-08 5 views
0

Ich bin ein Jenkins Job ausgeführt wird, der einige newman Tests läuft und ist ein JUnit-Testergebnisdatei erzeugen, die so aussieht:Jenkins Testergebnisse Analysator präsentiert Dauer falsch

<?xml version="1.0" encoding="UTF-8"?> <testsuites name="Basic Regression All"> <testsuite name="Login" id="02d5167b-ce9c-4ba4-9b24-e0a5c142768f" tests="2" time="628"> <testcase name="Successful Login"/> <testcase name="Auth Token is not null"/> </testsuite> <testsuite name="Account Summary" id="18773a24-2e3a-4c7d-99c3-921c4e41541b" tests="1" time="290"> <testcase name="Successfully Retreived Accounts"/> </testsuite> <testsuite name="Account Balances" id="d0817e78-8a25-4bc2-9301-3b4ef954600a" tests="1" time="337"> <testcase name="Successfully Retreived Balances"/> </testsuite> Aus irgendeinem Grund das Zeitfeld gelesen durch die "Testergebnisse Analysator" Plugin als Sekunden und nicht Millisekunden wie auf dem beigefügten Bild gezeigt. Jede Ahnung, was hier vor sich geht, würde helfen. Auch verwende ich die neueste Version von beiden „Testergebnisse Analyzer“ und JUnit, also wenn jemand eines besseren Jenkins Plugin kennt bitte

Test Results

Antwort

1

Ok verwenden teilen, so von dem, was ich gelesen habe Es scheint, dass der Schuldige hier Newman (Postman CMD Tool) und nicht Tester Analysator ist. hier auf dieser Seite suchen:

https://www.ibm.com/support/knowledgecenter/en/SSQ2R2_9.5.0/com.ibm.rsar.analysis.codereview.cobol.doc/topics/cac_useresults_junit.html?_sm_au_=iVV1H1fVNH2HFqZH

Es scheint, dass das Junit Format das „Zeit“ Attribut in Sekunden eher dann Millisekunden hat. I.e. Newman produziert: time = "337" (wie Sie oben sehen können) wo als Test Analyzer Zeit erwartet = "0.337"

Also hinzugefügt eine andere Build-Phase (Jenkins), die dieses kleine Python-Skript, das die "Zeit" konvertiert Attribut von Millisekunden bis Sekunden.

import os 
import xml.etree.ElementTree as etree 

#print os.getcwd() 
os.chdir('path_to/tests') 

collection = os.environ['Collection'] 
e = etree.parse(collection + '_results.xml').getroot() 

for atype in e.findall('testsuite'): 
    duration=int((atype.get('time'))) 
    atype.set('time',str(duration/float(1000))) 

f = open('fixed.xml','w') 
print >> f, etree.tostring(e) 

und fixiert es

UPDATE:

Eigentlich stellt sich heraus, dass ich eine veraltete Version auf Newman hatte auf dem Server ausgeführt .... Aktualisieren newman auf die neueste Version (3.5 .2) behebt dieses Problem .... Oh well ....

Verwandte Themen