JavaSelenium处理Excel数据驱动做测试
2017-03-30 11:12
447 查看
package com.gloryroad.testcase;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class TestDataByExcelFile {
public WebDriver driver;
private String url="http://www.baidu.com";
@BeforeMethod
public void setUp(){
driver=new FirefoxDriver();
driver.get(url);
}
@AfterMethod
public void tearDown(){
driver.close();
}
@DataProvider(name="testData")
public static Object[][] words() throws IOException
{
return getData("C:\\JavaScript\\SeleniumProj\\resuorce", "3.xlsx", "Sheet1");
}
@Test(dataProvider="testData")
public void searchTest(String word1,String word2,String word3){
System.out.println(word1+word2+word3);
driver.findElement(By.id("kw")).sendKeys(word1+" "+word2);
}
/**
* 获取数据
* @throws IOException
*/
public static Object[][] getData(String filePath,String fileName,String sheetName) throws IOException{
//制作File对象
File file=new File(filePath+"\\"+fileName);
FileInputStream input=new FileInputStream(file);
Workbook workbook=null;
//
String fileExtensionName=fileName.substring(fileName.indexOf("."));
if (fileExtensionName.equals(".xlsx")) {
workbook=new XSSFWorkbook(input);
}else if (fileExtensionName.equals(".xls")) {
workbook=new HSSFWorkbook(input);
}
//获取sheet
Sheet sheet=workbook.getSheet(sheetName);
//获取总行数
int row=sheet.getLastRowNum()-sheet.getFirstRowNum();
List<Object[]> records=new ArrayList<Object[]>();
for (int i = 1; i < row+1; i++) {
Row rowValue=sheet.getRow(i);
//声明三个数组用来存储三个数据
String[] fileds=new String[rowValue.getLastCellNum()];
for (int j = 0; j < rowValue.getLastCellNum(); j++) {
fileds[j]=rowValue.getCell(j).getStringCellValue();
}
records.add(fileds);
}
Object[][] results=new Object[records.size()][];
for (int i = 0; i < records.size(); i++) {
results[i]=records.get(i);
}
return results;
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class TestDataByExcelFile {
public WebDriver driver;
private String url="http://www.baidu.com";
@BeforeMethod
public void setUp(){
driver=new FirefoxDriver();
driver.get(url);
}
@AfterMethod
public void tearDown(){
driver.close();
}
@DataProvider(name="testData")
public static Object[][] words() throws IOException
{
return getData("C:\\JavaScript\\SeleniumProj\\resuorce", "3.xlsx", "Sheet1");
}
@Test(dataProvider="testData")
public void searchTest(String word1,String word2,String word3){
System.out.println(word1+word2+word3);
driver.findElement(By.id("kw")).sendKeys(word1+" "+word2);
}
/**
* 获取数据
* @throws IOException
*/
public static Object[][] getData(String filePath,String fileName,String sheetName) throws IOException{
//制作File对象
File file=new File(filePath+"\\"+fileName);
FileInputStream input=new FileInputStream(file);
Workbook workbook=null;
//
String fileExtensionName=fileName.substring(fileName.indexOf("."));
if (fileExtensionName.equals(".xlsx")) {
workbook=new XSSFWorkbook(input);
}else if (fileExtensionName.equals(".xls")) {
workbook=new HSSFWorkbook(input);
}
//获取sheet
Sheet sheet=workbook.getSheet(sheetName);
//获取总行数
int row=sheet.getLastRowNum()-sheet.getFirstRowNum();
List<Object[]> records=new ArrayList<Object[]>();
for (int i = 1; i < row+1; i++) {
Row rowValue=sheet.getRow(i);
//声明三个数组用来存储三个数据
String[] fileds=new String[rowValue.getLastCellNum()];
for (int j = 0; j < rowValue.getLastCellNum(); j++) {
fileds[j]=rowValue.getCell(j).getStringCellValue();
}
records.add(fileds);
}
Object[][] results=new Object[records.size()][];
for (int i = 0; i < records.size(); i++) {
results[i]=records.get(i);
}
return results;
}
}
相关文章推荐
- 单元测试、自动化测试、接口测试过程中的Excel数据驱动(java实现)
- java 接口测试,使用excel做数据驱动(二)
- Selenium2.0功能测试之Alert/Confirm/Prompt的处理(Java版)
- TestNG+Selenium Webdriver 数据(Excel)驱动的方法
- Java中导出数据到Excel处理方法
- 利用java反射处理excel数据导入示例
- 纯Java应用来处理Excel数据表
- JAVA导入EXCEl处理数据简单教程
- java读取并处理excel数据
- Selenium关键字驱动测试框架Demo(Java版)
- java大数据处理-大量数据到Excel
- java大数据处理-大量数据到Excel
- java大数据处理-大量数据到Excel
- TestNG+Selenium Webdriver 数据(Excel)驱动的方法
- 如何处理ODBC中EXCEL驱动读取EXCEL文件中字段长度大于255字符时出现的"数据截断"问题.
- Java处理大量数据到Excel
- java大数据处理-大量数据到Excel
- Java 将数据处理成 PDF 、Excel、Word格式
- Java-Oracle-Excel随机生成测试数据
- 通过异类查询(OpenDataSource - OLEDB引擎驱动)把外部数据(Excel,TXT)导入到SqlServer及job代理执行出错的处理