当我们要创建遵循数据驱动的方法并创建框架时,最好的方法是使用Excel存储我们的数据,并且可以使用在上一篇文章中看到的数据提供程序将数据作为参数传递。
逐步过程以使用TestNg数据提供程序实施Excel。
步骤1:使用TestNG Data Provider创建Login Application的测试用例。
第2步: 创建一个测试数据表。
步骤3:建立要开启的功能&从Excel读取数据
步骤4:创建一个TestNg测试用例,以使用数据提供者从Excel接受数据。
步骤5:针对测试数据文件中的测试用例名称运行测试。
使用Apache POI库从Excel工作表中读取数据-
下面是我们的代码,用于打开Excel工作表并在Selenium测试脚本中从中读取数据。为此,我们使用Apache POI库,该库允许我们使用Java读取,创建和编辑Microsoft Office文档。我们将用于从Excel工作表读取数据的类和方法位于org.apache.poi.hssf.usermodel中。
1.下载Apache POI from the link http://poi.apache.org/ 并将其添加到您的项目构建路径中。
2.使用以下代码从Excel文件读取数据。
3.使用要传递给测试用例的数据作为参数创建excelfile。
4.使用Excel中的参数更新测试用例。
逐步过程以使用TestNg数据提供程序实施Excel。
步骤1:使用TestNG Data Provider创建Login Application的测试用例。
第2步: 创建一个测试数据表。
步骤3:建立要开启的功能&从Excel读取数据
步骤4:创建一个TestNg测试用例,以使用数据提供者从Excel接受数据。
步骤5:针对测试数据文件中的测试用例名称运行测试。
使用Apache POI库从Excel工作表中读取数据-
下面是我们的代码,用于打开Excel工作表并在Selenium测试脚本中从中读取数据。为此,我们使用Apache POI库,该库允许我们使用Java读取,创建和编辑Microsoft Office文档。我们将用于从Excel工作表读取数据的类和方法位于org.apache.poi.hssf.usermodel中。
1.下载Apache POI from the link http://poi.apache.org/ 并将其添加到您的项目构建路径中。
2.使用以下代码从Excel文件读取数据。
package test; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcelUtils { private static XSSFSheet ExcelWSheet; private static XSSFWorkbook ExcelWBook; private static XSSFCell Cell; private static XSSFRow Row; public static void setExcelFile(String Path,String SheetName) throws Exception { try { // Open the Excel file FileInputStream ExcelFile = new FileInputStream(Path); // Access the required test data sheet ExcelWBook = new XSSFWorkbook(ExcelFile); ExcelWSheet = ExcelWBook.getSheet(SheetName); } catch (Exception e){ throw (e); } } public static Object[][] getTableArray(String FilePath, String SheetName) throws Exception { String[][] tabArray = null; try { FileInputStream ExcelFile = new FileInputStream(FilePath); // Access the required test data sheet ExcelWBook = new XSSFWorkbook(ExcelFile); ExcelWSheet = ExcelWBook.getSheet(SheetName); int startRow = 1; int startCol = 1; int ci, cj; int totalRows = ExcelWSheet.getLastRowNum(); // you can write a function as well to get Column count int totalCols = 2; tabArray = new String[totalRows][totalCols]; ci = 0; for (int i = startRow; i <= totalRows; i++, ci++) { cj = 0; for (int j = startCol; j <= totalCols; j++, cj++) { tabArray[ci][cj] = getCellData(i, j); System.out.println(tabArray[ci][cj]); } } } catch (FileNotFoundException e) { System.out.println("Could not read the Excel sheet"); e.printStackTrace(); } catch (IOException e) { System.out.println("Could not read the Excel sheet"); e.printStackTrace(); } return (tabArray); } public static String getCellData(int RowNum, int ColNum) throws Exception { try{ Cell = ExcelWSheet.getRow(RowNum).getCell(ColNum); int dataType = Cell.getCellType(); if (dataType == 3) { return ""; }else{ String CellData = Cell.getStringCellValue(); return CellData; } }catch (Exception e){ System.out.println(e.getMessage()); throw (e); } } public static String getTestCaseName(String sTestCase)throws Exception{ String value = sTestCase; try{ int posi = value.indexOf("@"); value = value.substring(0, posi); posi = value.lastIndexOf("."); value = value.substring(posi + 1); return value; }catch (Exception e){ throw (e); } } public static int getRowContains(String sTestCaseName, int colNum) throws Exception{ int i; try { int rowCount = ExcelUtils.getRowUsed(); for ( i=0 ; i<rowCount; i++){ if (ExcelUtils.getCellData(i,colNum).equalsIgnoreCase(sTestCaseName)){ break; } } return i; }catch (Exception e){ throw(e); } } public static int getRowUsed() throws Exception { try{ int RowCount = ExcelWSheet.getLastRowNum(); return RowCount; }catch (Exception e){ System.out.println(e.getMessage()); throw (e); } } public static Object[][] getTableArray(String FilePath, String SheetName, int iTestCaseRow) throws Exception { String[][] tabArray = null; try{ FileInputStream ExcelFile = new FileInputStream(FilePath); // Access the required test data sheet ExcelWBook = new XSSFWorkbook(ExcelFile); ExcelWSheet = ExcelWBook.getSheet(SheetName); int startCol = 1; int ci=0,cj=0; int totalRows = 1; int totalCols = 1; tabArray=new String[totalRows][totalCols]; for (int j=startCol;j<=totalCols;j++, cj++) { tabArray[ci][cj]=getCellData(iTestCaseRow,j); System.out.println(tabArray[ci][cj]); } } catch (FileNotFoundException e) { System.out.println("Could not read the Excel sheet"); e.printStackTrace(); } catch (IOException e) { System.out.println("Could not read the Excel sheet"); e.printStackTrace(); } return(tabArray); } }
3.使用要传递给测试用例的数据作为参数创建excelfile。
4.使用Excel中的参数更新测试用例。
package test; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.annotations.Test; import org.testng.annotations.BeforeMethod; import org.testng.annotations.AfterMethod; import org.testng.annotations.DataProvider; public class TestCaseExcelData { private String sTestCaseName; private int iTestCaseRow; WebDriver driver; @BeforeMethod public void beforeMethod() throws Exception { System.setProperty("webdriver.chrome.driver", "C:\\Softwares\\chromedriver_win32\\chromedriver.exe"); driver=new ChromeDriver(); driver.get("http://www.yubo666.com"); Thread.sleep(5000); } @Test(dataProvider = "search") public void 测试(String searchtext) throws Exception { driver.findElement(By.xpath("*//input[@class='search-field']")).sendKeys(searchtext); driver.findElement(By.xpath("*//input[@class='search-submit']")).click(); } @AfterMethod public void afterMethod() { driver.close(); } @DataProvider public Object[][] search() throws Exception{ // Setting up the Test Data Excel file ExcelUtils.setExcelFile("C:\\Users\\manojjai\\Documents\\dataprovider.xlsx","Sheet1"); sTestCaseName = this.toString(); // From above method we get long test case name including package and class name etc. // The below method will refine your test case name, exactly the name use have used sTestCaseName = ExcelUtils.getTestCaseName(this.toString()); // Fetching the Test Case row number from the Test Data Sheet // Getting the Test Case name to get the TestCase row from the Test Data Excel sheet iTestCaseRow = ExcelUtils.getRowContains(sTestCaseName,0); Object[][] testObjArray = ExcelUtils.getTableArray("C:\\Users\\manojjai\\Documents\\dataprovider.xlsx","Sheet1",iTestCaseRow); return (测试ObjArray); } }
非常感谢您提供此信息。我喜欢阅读您的博客。继续努力吧
回复删除顺便说一句,在我的博客上访问新帖子 IIT JEE准备的最佳书籍 获得有关学术工程领域和竞争激烈的工程考试的免费电子书。
问候,
萨钦
myTectra放置 门户网站是一个基于Web的门户网站,可带来潜在的雇主和 myTectra 通用平台上的求职者候选人
回复删除我真的很喜欢阅读您的文章。我想告诉您,您中有像我这样的人,对您的工作表示赞赏。我绝对想读这篇很棒的文章。
回复删除批准
tutuapp APK iOS
重要信息
回复删除Marathahalli的Salesforce培训
Salesforce管理员培训在Marathahalli
Salesforce开发人员在Marathahalli的培训
感谢您分享这一信息
回复删除班加罗尔的硒培训中心
班加罗尔最佳软件测试培训机构
班加罗尔的自动化测试课程
班加罗尔的硒测试课程
班加罗尔软件测试所
班加罗尔的硒培训
班加罗尔最好的硒培训
班加罗尔的硒课程
好贴..
回复删除BTM中的DOT NET培训
btm点网培训学院
btm中的点网课程
最好
不错的博客
回复删除马拉泰哈里的硒培训中心
马拉松哈里最好的软件测试培训机构
Marathahalli的自动化测试课程
Marathahalli的硒测试课程
Marathahalli的软件测试机构
Marathahalli中的硒培训
Marathahalli最好的硒培训
Marathahalli的硒课程
得到 班加罗尔的精选硒培训 从TIB学院获得100%的安置协助
回复删除我读了许多有关Excel和其他课程的文章,但我对您的写作方式以及如何表达文字印象深刻。’对我们真的很有帮助感谢您的分享,继续写作
回复删除德里高级Excel培训
诺伊达的高级Excel培训
古尔冈高级进阶Excel训练
有很多作家,但您的写作方式是如此出色且与众不同。它’对我们真的很有帮助,知识渊博,非常感谢分享...
回复删除德里的高级Excel培训
诺伊达的高级Excel培训
古尔冈高级Excel培训
有很多作家,但您的写作方式是如此出色且与众不同。它’对我们真的很有帮助,知识渊博,非常感谢分享...
回复删除德里的高级Excel培训
诺伊达的高级Excel培训
古尔冈高级Excel培训
回复删除您已经收到了这篇文章,它非常有趣并且非常具有代表性。谢谢你,继续发布...!
钦奈Pega培训
佩加课程
钦奈Primavera培训
钦奈的Tableau培训
钦奈Unix培训
安置在钦奈
钦奈Linux培训
钦奈的火花培训
T Nagar的Pega培训
安娜·纳加尔的佩加培训
谢谢(你的)信息。它非常有用。
回复删除我在这里有一个问题,因为我看到您在excel中将类名用作测试用例名。
sTestCaseName = this.toString();
但是我想使用实际的测试用例方法名称(例如:"test"是示例中的测试用例名称。)我可能在一个类中有20个测试用例,每个测试用例都有不同的数据集。如果您对此有答案,请告诉我
精彩的博客!!!感谢您与我们分享这些重要信息...
回复删除钦奈的SEO培训
钦奈的SEO课程
钦奈的SEO培训学院
钦奈最好的seo培训
Velachery的SEO培训
Adyar的SEO培训
钦奈的Python培训
钦奈的软件测试培训
钦奈JAVA培训
我从此博客中获得了一些明确的信息。。感谢您抽出宝贵时间分享此博客...
回复删除金奈的AWS培训
班加罗尔的AWS培训
哥印拜陀的AWS培训
海得拉巴的AWS培训
班加罗尔的AWS培训学院
AWS BTM培训
班加罗尔的AWS课程
班加罗尔的AWS培训学院
班加罗尔英语口语课
班加罗尔的数据科学课程
不错的博客,内容翔实,正在等待下一次更新...
回复删除钦奈Java核心培训
核心Java类
钦奈Java核心培训
OMR的核心Java培训
Porur的核心Java培训
钦奈C C ++培训
金奈的javascript培训
钦奈的冬眠培训
钦奈的LoadRunner培训
钦奈的移动测试培训
不错的博客...感谢分享文章,等待下一次更新...
回复删除钦奈的人工智能课程
钦奈最佳人工智能培训
钦奈C C ++培训
金奈的javascript培训
钦奈HTML5培训
钦奈的QTP培训
钦奈春季培训
钦奈DOT NET培训
感谢您抽出宝贵时间与我们分享此信息。直截了当,直截了当,这确实是非常有益和有见地的。继续努力吧
回复删除Ai &钦奈的人工智能课程
钦奈PHP培训
钦奈的道德黑客课程 钦奈的蓝色棱镜培训
钦奈的UiPath培训
人工智能(AI)的发展推动了更多的编程架构师,信息科学家和不同的专家来研究某种职业在机器学习中的可行性。尽管如此,一些新手通常会在假设上关注很多,而在常识性应用上则不足。 最后一年的机器学习项目 如果您成功了,则必须在不久的将来开始构建机器学习项目。
回复删除项目可帮助您快速提高应用的ML技能,同时使您能够研究一个有趣的观点。此外,您可以将项目包括在投资组合中,从而更轻松地获得职业,发现出色的职业空缺,以及 钦奈的最后一年项目中心 甚至安排更大的赔偿。
数据分析是对原始数据进行剖析以便做出决策的研究。数据分析的进步和程序通常用于企业中,以使协会能够逐渐适应 钦奈的Python培训 明智的业务选择。在目前的全球商业中心,'足够汇编数据并进行数学运算;您应该意识到如何将这些数据应用于会影响行为的真实情况。在该程序中,您将首先精通专门技能,包括R和Python方言,这些常用于数据分析编程和使用。 钦奈的Python培训 鉴于行业细分领域中的真正业务问题,例如福利,促销和会计,此时,常识性应用围绕着常识应用。
对于需要有关本课程信息的人们的优秀文章。
回复删除python实时示例
ccna认证后的工作机会
为什么python更好
机器学习生涯
数据科学家面试问答