我想在SoapUI中测试Restful Web服务。为此,我需要从Excel中读取值并将其传递给请求。
我在网上搜索,我发现可以通过DataGen TestStep。我有SoapUI,但我找不到那个选项。
有人可以告诉我,SoapUI-4.5.1或SoapUI Pro中是否有DataGen TestStep。
答案 0 :(得分:0)
因此,SoapUI安装脚本中有一个可以提前运行的选项 您可以将Excel转换为csv或文本文件,并从那里处理日期。
我已经使用REST服务进行了一些测试,仅使用从文本文件功能中读取。 像这样的代码:
//Load the text file
def inputFile = new File("C://Temp//whatever");
//Create an empty list...
def mega_List = [];
//...and then populate it with the contents
// of the text file.
addSomeThingToList = {mega_List.add(it)};
inputFile.eachLine(addSomeThingToList);
//...and assign its value to the Test Case Property
def tc = testRunner.testCase;
//Randomly pick an item from the list...
def index = context.expand( '${#TestCase#index}' ).toInteger()
if ( index < mega_List.size() ) {
def id = mega_List.get(index);
index++
tc.setPropertyValue("id", id);
tc.setPropertyValue("index", index.toString());
}
else {
tc.setPropertyValue("index", "0");
tc.setPropertyValue("id", "0");
testrunner.cancel( "time to go home" )
}
答案 1 :(得分:0)
此步骤仅适用于Soap UI Pro(Ready API)
在Soap UI的免费版本中,您可以使用POI方式通过groovy脚本读取excel文件,并在输入请求中传递这些值。
import org.apache.poi.xssf.usermodel.*
import org.apache.poi.ss.usermodel.DataFormatter;
def fs = new FileInputStream("F:\\Gaurav\\soapui\\readFile.xlsx")
def wb = new XSSFWorkbook(fs)
def ws = wb.getSheet("Sheet1")
def r = ws.getPhysicalNumberOfRows()
for(def i =0 ; i < r ; i++)
{
def row = ws.getRow(i);
def c=row.getPhysicalNumberOfCells()
for(def j=0; j <c ; j++)
{
def cell= row.getCell(j)
// to convert everything to a String format
DataFormatter formatter = new DataFormatter()
def cellValue=formatter.formatCellValue(cell)
log.info cellValue
}
}
//上面是从excel读取的代码。读取值后,可以//将值存储在属性
中testRunner.testCase.setPropertyValue(tcprop,"cellValue")
然后在您的请求中,您可以将其展开,如下所示
${#TestCase#tcprop}
这样您就可以在Soap UI免费版本4.5
中实现相同的DataGen功能