實際應用中我們常是一個業務流會串入很多測試用例,便于管理,這里的業務流我們可以稱為一個測試場景,
在我的代碼中一個業務流為一個測試套件
一個套件可能是一條用例,也有可能是多條用例,套件和用例存在的關系是一對多,且有先后順序
比如上面的產品購買套件 ?先是選中產品,加入購物車,再是刪除訂單 退出登錄
這里的思路也可以像用例讀操作一樣,
一行行讀取,直到讀取對應的套件名稱,再轉到第二列,讀取對應的測試用例,找到用例再到用例對應的Excel 文件讀取該用例對應的Sheet 名稱
具體實現代碼
/**
* 執行指定的測試套件
* @param SuiteName? 測試套件名稱
* @throws IOException
* @throws InterruptedException
*/
public static void TestSuite(String SuiteName) throws IOException, InterruptedException {
//設置數據路徑
try {
String TestSuite=constant.TestSuite;
System.out.println("測試套件的路徑"+TestSuite);
//實例化文件流
FileInputStream ExcelFile = new FileInputStream(TestSuite);
// 實例化工作本
XSSFWorkbook? ExcelWBook = new XSSFWorkbook(ExcelFile);
//實例化Sheet 名
//獲取測試套件的Sheet ,如果此處ExcelWsheet 為null可能是不存在測試套件的Sheet
XSSFSheet ExcelWSheet = ExcelWBook.getSheet("測試套件");
//循環扁歷整個測試套件的行號
for (int i=1;i<=ExcelWSheet.getLastRowNum();i++){
//按行取出測試套件的名稱
String TestSuiteName=ExcelWSheet.getRow(i).getCell(0).getStringCellValue().trim();
// 如果按行讀取到的測試套件與測試任務調度中的 測試套件的運行模式==yes 相同
if (TestSuiteName.equals(SuiteName)){
//取出對應測試套件的用例名稱和測試數據索引 (這里的數據索引主要是指示代碼取測試數據中哪一行數據)
String TestCaseName=ExcelWSheet.getRow(i).getCell(1).getStringCellValue().trim();
String TestCaseData=ExcelWSheet.getRow(i).getCell(2).getStringCellValue().trim();
//依據測試套件的內容去調用相應的測試用例
System.out.println("測試用例名稱是"+TestCaseName+"測試數據指針是"+TestCaseData);
// 到這里我們就已得到 需要執行哪個測試用例,測試用例參數化時取哪一行的值
TestCase(TestCaseName,TestCaseData);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}