Hi guys,
I'd like to perform a conditional Property Transfer from one response to the next request. I need to select the first DefCategoriesDispo with the StatutDispo on true and send the CatCode associated to the next request.
Here the response :
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetAllDispoSurAgenceV2Response xmlns="http://www.hitech.fr/">
<GetAllDispoSurAgenceV2Result>
<DefCategoriesDispo>
<CatId>7</CatId>
<CatCode>A</CatCode>
<StatutDispo>false</StatutDispo>
</DefCategoriesDispo>
<DefCategoriesDispo>
<CatId>8</CatId>
<CatCode>B</CatCode>
<StatutDispo>true</StatutDispo>
</DefCategoriesDispo>
<DefCategoriesDispo>
<CatId>9</CatId>
<CatCode>C</CatCode>
<StatutDispo>false</StatutDispo>
</DefCategoriesDispo>
</GetAllDispoSurAgenceV2Result>
</GetAllDispoSurAgenceV2Response>
</soap:Body>
</soap:Envelope>
Can someone help me please ?
Thanks !
Solved! Go to Solution.
For the first request (where you get the response and need to extract the data), add a script assertion with following snippet
assert context.response, 'Response is empty or null' //Get DefCategoriesDispo first match with StatutDispo is true def catDispo = new XmlSlurper().parseText(context.response).'**'.find {it.name() == 'DefCategoriesDispo' && it.StatutDispo == true} //Extract data and save them into custom properties context.testCase.setPropertyValue('CATID', catDispo.CatId.text()) context.testCase.setPropertyValue('CATCODE', catDispo.CatCode.text())
In the next step where ever CatId, CatCode are needed
use ${#TestCase#CATID}, ${#TestCase#CATCODE} respectively
You can apply the same logic to the rest of the fields.
Say for eg:
<hit:Categ>${#TestCase#CATID}</hit:Categ>
Hi Rao, then so select the first response with "True" or to select one of them randomly.
The selected CodeCat goes to <hit:Categ>?</hit:Categ>
Sure :
s<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:hit="http://www.hitech.fr/"> <soapenv:Header/> <soapenv:Body> <hit:GetDispoSurAgence> <hit:CodeOrigine>?</hit:CodeOrigine> <hit:CodeAgence>?</hit:CodeAgence> <hit:Categ>?</hit:Categ> <hit:Depart>?</hit:Depart> <hit:Retour>?</hit:Retour> </hit:GetDispoSurAgence> </soapenv:Body> </soapenv:Envelope>
For the first request (where you get the response and need to extract the data), add a script assertion with following snippet
assert context.response, 'Response is empty or null' //Get DefCategoriesDispo first match with StatutDispo is true def catDispo = new XmlSlurper().parseText(context.response).'**'.find {it.name() == 'DefCategoriesDispo' && it.StatutDispo == true} //Extract data and save them into custom properties context.testCase.setPropertyValue('CATID', catDispo.CatId.text()) context.testCase.setPropertyValue('CATCODE', catDispo.CatCode.text())
In the next step where ever CatId, CatCode are needed
use ${#TestCase#CATID}, ${#TestCase#CATCODE} respectively
You can apply the same logic to the rest of the fields.
Say for eg:
<hit:Categ>${#TestCase#CATID}</hit:Categ>
Thanks ! But I got now an error :
Thanks, I still got an error
Oh god it's working, thanks a lot buddy ! Have a good day & stay safe !
User | Count |
---|---|
6 | |
6 | |
4 | |
2 | |
1 |
Subject | Author | Latest Post |
---|---|---|