2017-09-25 80 views
0

我已經編寫了一個groovy腳本來讀取excel工作表中的數據,工作正常。 現在我在Excel中有兩行。我想row1去request1和row2去request2。如何從excel中獲取數據到soapui請求

下面是我的Groovy腳本

import org.apache.poi.xssf.usermodel.* 
import org.apache.poi.xssf.usermodel.XSSFWorkbook 
def fs = new FileInputStream(「C:\\Users\\singh532\\Desktop\\try1.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) 
     def d = cell.getStringCellValue() 
     log.info d 
    } 
} 
+0

我使用的soapUI 5.3 – nilay

+0

請出示你的測試用例的結構?如多少個步驟(按照它們的類型排序)?你在嘗試數據驅動的測試嗎? – Rao

+0

我有一個三個測試步驟的測試用例...第1步。上面提到的groovy腳本.... step2和step3是兩個肥皂請求.....是的我正在嘗試數據驅動的測試。 – nilay

回答

1

這只是提供一些想法如何能我使用的負載測試運行測試來完成

步驟多次(多行數據)

下面

是測試套件的結構

測試步驟

  • 屬性(COL1,COL2,COL3,COL ...)對應於我的CSV列數文件
  • 與從CSV行的值加載從CSV文件和替代COL*屬性值數據的Groovy腳本對應於當前運行迭代。

public static class Const{ 
    public static ArrayList data=new ArrayList(); 
    static{ 
     //load data file statically 
     new File('./my-data.csv').splitEachLine(","){ 
      data.add(it); 
     } 
    } 
} 

//get current run number and calculate row of data from it 
int row=context.getProperty('TotalRunCount'); 
if(row==null)row=0; 
row=row%Const.data.size(); 
//substitute properties with ones from file 
for(int i=0; i<Const.data[row].size(); i++){ 
    context.setProperty('COL'+(i+1), Const.data[row][i]); 
} 

  • 使用表達與屬性服務調用步驟:

<a> 
    <b>${=context.getProperty('COL1')}</b> 
    <c>${=context.getProperty('COL2')}</c> 
    ... 
</a> 

注意:數據文件中的行數應該對應於負載測試中總運行的限制。如果total runs將大於文件中的行數,則會重複測試。

enter image description here

+0

這很整齊。我也想知道如何使用SoapUI將數據噴入負載。謝謝,我現在有一些東西可以玩。 –