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 :

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"))
}
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
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