【原创】自动化测试过程中如何使用excel数据驱动(上)

TestNG与CSV结合实现数据驱动

无论是Selenium Appium这样的UI自动化测试,还是单元测试、接口测试这样的非UI自动化测试,都逃不开数据参数化的步骤,一般都会采用TestNg测试框架中的@DataProvider来实现。

今天我们分享下,如何使用excel来实现数据驱动,即测试数据存放在excel中的时候怎么达到循环驱动测试案例的效果。

本文采用最简单的csv的数据文件格式来结合TestNg框架演示,大家只需要讲案例代码整合到自己的测试代码中就可以了。

package test;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

/**
 * @author testfan.cn
 *
 */
public class TestCsvWithDataProvider {

	// 定义数据驱动
	@DataProvider(name = "getData")
	public static Object[][] getData() throws IOException {
		return getTestData("c:\\test\\testData.csv");
	}

	// 测试案例绑定DataProvider后自动循环执行
	@Test(dataProvider = "getData")
	public void testSearch(String p1, String p2) {
		System.out.println(p1 + " " + p2);
	}

	// 读取CSV文件的静态方法,使用CSV文件的绝对文件路径作为函数参数
	public static Object[][] getTestData(String fileName) throws IOException {
		List records = new ArrayList();
		String record;

		// 设定UTF-8字符集,使用带缓冲区的字符输入流BufferedReader读取文件内容
		BufferedReader file = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), "UTF-8"));

		// file.readLine(); //跳过表头所在的行

		// 遍历数据行并存储在名为records的ArrayList中,每一行records中存储的对象为一个String数组
		while ((record = file.readLine()) != null) {
			String fields[] = record.split(",");
			records.add(fields);
		}
		// 关闭文件
		file.close();

		// 将存储测试数据的List转换为一个Object的二维数组
		Object[][] results = new Object[records.size()][];
		// 设置二位数组每行的值,每行是一个Object对象
		for (int i = 0; i < records.size(); i++) {
			results[i] = records.get(i);
			// System.out.println(results[i]);
		}
		return results;
	}

}


-------------------------------------我是华丽的分割线--------------------------------------------------------
Testfan楼大管家原创Selenium系列学习文章列表,点击阅读
---------------------------------------------------------------------------------------------------------------------

  • 发表于 2016-08-09 16:24
  • 阅读 ( 1855 )

0 条评论

请先 登录 后评论
不写代码的码农
楼大管家

测试达人

23 篇文章

作家榜 »

  1. hey girl 181 文章
  2. 王前前 137 文章
  3. 柠檬 118 文章
  4. lamking 105 文章
  5. 云少 105 文章
  6. 腾讯移动品质中心TMQ 98 文章
  7. humortony 82 文章
  8. 开心的阳光 41 文章