Comment puis-je extraire tableau d'octets à partir soapUI réponse?
Je suis en train de tester un service web avec soapUI. L'une des réponses ressemble à ceci:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:getInputConfigFilesResponse xmlns:ns2="http://ws.pdb.ericsson.se/">
<return>UEsDBBQACAAIAO1GNToAAAAAAAAAAAAAAAANAAAAc2NyaXB0cy9lbGxza [...] AATAAAAAAAAAAAAAAAAAAGXAAAbGRhcF9ub2RlX2NvbmZpZ3VyYXRpb24vZ2VuZXJhdGVkX2xkaWZfZmlsZXMvX210YXM0X2N4cDQ0NF9yNF9JbXNtb2JpbGUubGRpZlBLAQIUABQACAAIAO1GNTp8eBuZRAEAABMDAAAmAAAAAAAAAAAAAAAAAKJiAABsZGFwX25vZGVfY29uZmlndXJhdGlvbi9lbGxzaC1jb21tYW5kc1BLBQYAAAAABQAFAIgBAAA6ZAAAAAA=</return>
</ns2:getInputConfigFilesResponse>
</S:Body>
</S:Envelope>
La réponse est un tableau d'octets qui devraient représenter un fichier zip. Comment puis-je vérifier cela?
Vous devez vous connecter pour publier un commentaire.
Bien que sémantiquement correct, je crois que Nathan la solution proposée est un peu incomplète.
Je suppose qu'il a oublié de faire Base64 decoder les extraits de texte avant l'étape 1. Je voudrais également inclure une amélioration de sorte qu'aucune intervention humaine n'est nécessaire en vérifiant le fichier temporaire à l'aide de la 3ème partie utilitaires ZIP.
Qui se serait traduit par des accès temporaires fichier ZIP et de vérifier s'il est valide d'un fichier ZIP. Par conséquent, un algorithme pour la mise en œuvre de votre exigence serait:
contenu et Base64 décoder
Avec tout ce que l'esprit, voici comment le remplir Groovy script devrait ressembler à:
S'il vous plaît laissez-moi savoir si cela fonctionne pour vous comme pour moi. 🙂
Cheers!
Shonzilla
p.s. Je suggère d'ajouter "ZIP" de la balise à cette question, de sorte que les gens puissent plus facilement trouver une solution pour la manutention des ZIPs de Groovy, qui est incorporé ici.
Vous allez avoir à utiliser certains groovy.
Edit: ajout d'un exemple de code.
def saveFile = new java.io.File(saveTestDir + "\\testreturn.zip")
FileOutputStream fos = new java.io.FileOutputStream(saveFile);
def zipBytes = context.expand( '${Step#Request#//ns2:getInputConfigFilesResponse[1]/return[1]}' );
fos.write( zipBytes.getBytes() );
fos.flush();
fos.close();