Используйте переменные файла Excel в запросе SOAP в SoapUI - PullRequest
0 голосов
/ 25 февраля 2020

Я столкнулся с проблемой. Я новичок в SoapUI. Я должен прочитать файл Excel и затем поместить некоторые переменные в запрос soap. Вот что я сделал: я добавил скрипт groovy для получения данных файла Excel: import jxl. *

Workbook workbook = Workbook.getWorkbook(new File("C:\\PATH\\TestData.xls"))
Sheet sheet1 = workbook.getSheet("Sheet1")
def rows = sheet1.getRows()
def cols = sheet1.getColumns()
log.info "Row Count =" + rows 
log.info "Column Count =" + cols 
def array = []
for(i=1;i<rows;i++) { 
    for(j=0;j<cols;j++) { 
       Cell cell = sheet1.getCell(j,i)
       def variable = cell.getContents()
       log.info cell.getContents() 
       array << variable
    } 
}
return array

массив возвращает: 10 и 20. И это soap request:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
   <soapenv:Header/>
   <soapenv:Body>
      <tem:Add>
         <tem:intA>10</tem:intA>
         <tem:intB>10</tem:intB>
      </tem:Add>
   </soapenv:Body>
</soapenv:Envelope>

Могу ли я как-то вызвать скрипт groovy и поместить переменные в

             <tem:intA>10</tem:intA>
             <tem:intB>20</tem:intB>

Вместо 10 и 20, я должен вызвать метод скрипта groovy и положить данные, которые я взял из файла Excel.

1 Ответ

1 голос
/ 26 февраля 2020

Поскольку ваш вариант использования тривиален: нужно заменить только две переменные, вы можете просто использовать два свойства.

Измените return array в вашем скрипте на что-то вроде:

testCase.setPropertyValue("intA", array[0].toString())
testCase.setPropertyValue("intB", array[1].toString())

А потом ваш запрос:

     <tem:intA>${#TestCase#intA}</tem:intA>
     <tem:intB>${#TestCase#intB}</tem:intB>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...