2016-04-26 1 views
-1

Je veux construire un système automatisé pour trouver le flakiness dans mes scripts de test, pour lequel j'ai besoin d'obtenir le pourcentage de passage, disons n builds, d'un travail donné. La recherche des données via Xpaths ne fonctionne pas. Y at-il une API qui peut me chercher la même chose, ou une façon particulière de traiter le Xpaths.Automatiser les pages Jenkins avec du sélénium

P.S. - Cadre utilisé - Java with Selenium

+0

Lorsque vous parlez de 'xpath', je suppose que vous avez déjà regardé' l'API REST de Jenkins'? Qu'avez-vous essayé jusqu'à présent? Quel est votre problème avec 'xpath'? – SubOptimal

+0

driver.findElement (By.xpath (xpathExpression)) ne fonctionne pas pour les xpath de la page de rapport HTML Jenkins. J'ai utilisé le suivant ---> URL url = nouvelle URL ("http://jenkins.companyname.com/job/" + jobName + "/" + build + "/ api/xml"); –

Répondre

0

Comme vos informations fournies un peu vague trouver ci-dessous deux extraits de travail.

obtenir le document entier

URI uri = new URI("http://host:port/job/JOB_NAME/api/xml"); 
HttpURLConnection con = (HttpURLConnection) uri.toURL().openConnection(); 

DocumentBuilder builder = DocumentBuilderFactory.newInstance() 
    .newDocumentBuilder(); 
Document document = builder.parse(con.getInputStream()); 

XPath xPath = XPathFactory.newInstance().newXPath(); 
NodeList nodeList = (NodeList) xPath.compile("//lastSuccessfulBuild/url") 
    .evaluate(document, XPathConstants.NODESET); 
for (int i = 0; i < nodeList.getLength(); i++) { 
    System.out.println("last successful: " + nodeList.item(i).getTextContent()); 
} 
con.disconnect(); 

obtenir seulement la partie intéressante en utilisant l'API Jenkins XPath sortie

URI uri = new URI("http://host:port/job/JOB_NAME/api/xml" 
    + "?xpath=//lastSuccessfulBuild/url"); 

HttpURLConnection con = (HttpURLConnection) uri.toURL().openConnection(); 

DocumentBuilder builder = DocumentBuilderFactory.newInstance() 
    .newDocumentBuilder(); 
Document document = builder.parse(con.getInputStream()); 

XPath xPath = XPathFactory.newInstance().newXPath(); 
NodeList nodeList = (NodeList) xPath.compile("/url") 
    .evaluate(document, XPathConstants.NODESET); 
for (int i = 0; i < nodeList.getLength(); i++) { 
    System.out.println("last successful: " + nodeList.item(i).getTextContent()); 
} 
con.disconnect(); 

exemple pour les deux

last successful: http://host:port/job/JOB_NAME/1234/ 

Voir les extraits uniquement en tant que PoC pour démontrer que XPath sur l'API XML de Jenkins fonctionne en général.

+0

Ceci n'est pas prévu. J'ai besoin de quelque chose qui peut m'aider à trouver le pourcentage passé de construction spécifié par http: // hôte: port/travail/JOB_NAME/1234/ –

+0

@KshipraDwivedi Je ne suis pas sûr de ce que vous cherchez.Si vous recherchez le résultat du test de la dernière version. L'URL de l'API XML est 'http: // hôte: port/travail/JOB_NAME // lastCompletedBuild/testReport/api/xml'. Modifiez l'URL et le xpath de l'extrait en conséquence. – SubOptimal