在 SoapUI 的 SOAP 请求中使用 excel 文件变量
Use excel file variables in SOAP request in SoapUI
我遇到了一个问题。我是 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
数组returns: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>
我应该调用 groovy 脚本方法并放置数据,而不是 10 和 20,这些数据是我从 excel 文件中获取的。
由于您的用例很简单:只有两个要替换的变量,您可以只使用两个属性。
将脚本中的 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>
我遇到了一个问题。我是 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
数组returns: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>
我应该调用 groovy 脚本方法并放置数据,而不是 10 和 20,这些数据是我从 excel 文件中获取的。
由于您的用例很简单:只有两个要替换的变量,您可以只使用两个属性。
将脚本中的 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>