在SoapUI的SOAP请求中使用excel文件变量

问题描述 投票:0回答:1

我遇到了一个问题。我是SoapUI的新手。我必须阅读excel文件,然后在soap请求中放入一些变量。这是我所做的:我添加了一个groovy脚本来获取excel文件数据:导入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。这是一个肥皂请求:

<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文件中获取的数据。

soap groovy automated-tests soapui
1个回答
0
投票

由于用例很简单:只需替换两个变量,就可以使用两个属性。

将脚本中的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>
© www.soinside.com 2019 - 2024. All rights reserved.