Bonjour,
J'utilise Groovy avec SoapUI 5.3.0 en version gratuite
J'ai un TestCase avec deux webservices et un script Groovy
Le but est de générer un fichier texte avec les infos qui m'intéressent
Le code est le suivant :
Le permier service va me chercher des temps de présence, le deuxième l'affectation à un poste de travail. Le lien entre les deux est employeeIdentificationNumber que j'appelle respectivement ID1 et ID2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 import com.eviware.soapui.support.XmlHolder import java.text.MessageFormat import org.apache.commons.lang.ObjectUtils import java.util.ArrayList def groovyUtils=new com.eviware.soapui.support.GroovyUtils(context) def responseHolder1 = groovyUtils.getXmlHolder( testRunner.testCase.testSteps["getDataRequest"].testRequest.response.getContentAsXml()) def responseHolder2 = groovyUtils.getXmlHolder( testRunner.testCase.testSteps["getAssignments"].testRequest.response.getContentAsXml()) def file = new File("C:/temps.txt") def findAssignment(id1) { for (int i=0; i++; ID2.size()-1){ if (id1 == ID2[i]) { return Assignment[i] } } } //temps de présence List<String> ID1 List<String> time List<String> date //affectations List<String> ID2 List<String> Assignment List<String> list List<String> list2 ID1=responseHolder1.getDomNodes("//*:FromDateToDateJobTotal/*:employeeIdentificationNumber").collect{node->node.getFirstChild().nodeValue} date=responseHolder1.getDomNodes("//*:FromDateToDateJobTotal/*:startDate").collect{node->node.getFirstChild().nodeValue} time=responseHolder1.getDomNodes("//*:FromDateToDateJobTotal/*:hours").collect{node->node.getFirstChild().nodeValue} ID2=responseHolder2.getDomNodes("//*:JobAssignment/*:employeeIdentificationNumber").collect{node->node.getFirstChild().nodeValue} Assignment=responseHolder2.getDomNodes("//*:JobAssignment/*:jobDescription").collect{node->node.getFirstChild().nodeValue} list=([ID1, date, time].transpose().collect{it -> it[0] + " | " + it[1] + " | " + it[2] + " | " + findAssignment(it[0])}) for (String s: list) { file.append(s + System.getProperty("line.separator")) }
Je souhaiterais obtenir une liste finale avec ID1, date, time, Assignment (Assignment tel que ID1=ID2)
Mon problème est que la fonction findAssignment me retourne null dans ma liste et je ne comprends pas pourquoi
J'ai bien relu tout le code mais je ne trouve pas, quelqu'un pourrait m'aiguiller svp sur ce qui coince ?
Je précise que je suis débutant et pas du tout informaticien... juste un peu seul au monde en PME
Partager