数据驱动测试之——CSV+TestNG

时间:2023-03-09 21:19:30
数据驱动测试之——CSV+TestNG

对于利用Webdriver做自动化的童鞋,对于如何将元素或者输入数据如何和编码分离都应该不会太陌生,本着一边学习一边分享的心态,大概总结了一下关于利用CSV、XML以及Excel来存放数据,然后在结合TestNG来执行数据驱动测试。

下面是关于CSV+TestNG进行数据驱动的代码:

package com.util.datadriver;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List; import org.testng.annotations.DataProvider;
import org.testng.annotations.Test; /**
*
* @author LTao 使用TestNG和CSV文件进行数据驱动
*/
public class DataProviderCSV { //TestNG定义一个DataProvider
@DataProvider(name = "testData")
public static Object[][] words() throws Exception { return getData("date\\testDate.csv"); } //利用TestNG的特性,可以直接在方法中传入参数,这些参数从DataProvider中数据化传进来
@Test(dataProvider = "testData")
public void testDtaa(String input1, String input2, String result1) { System.out.println(input1);
System.out.println(input2);
System.out.println(result1); } public static Object[][] getData(String filePath) throws Exception { String line; //定义list来存放CSV中的数据,数组存放的是每行的数据
List<String[]> list = new ArrayList<String[]>(); //定义一个BufferedReader方便一行一行来读取csv中的数据
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(filePath))); //先读一行,第一行定义的是关键字对应的解释语言,不用存放到list中,
br.readLine();
while ((line = br.readLine()) != null) { String[] fileds = line.split(","); //获取每行的数据
list.add(fileds);
}
br.close(); //定义object[][]二维数组,用list.size()定义二维数组行的限度
Object[][] result = new Object[list.size()][]; for (int i = 0; i < list.size(); i++) { result[i] = list.get(i); //将CSV每行中的数据存放到二维数组中 } return result;
} }