Selenium+java - 使用csv文件做数据驱动
发布时间:2020-12-14 14:38:18 所属栏目:百科 来源:网络整理
导读:前言 早期我们使用TestNG 来做数据驱动进行测试,测试数据是写在测试用例脚本中。这会使得测试脚本的维护工作量很大。因此我们可以将测试的数据和脚本分开。 而我们经常使用会使用csv文件来做为导出数据时的存储文件,因此,可以通过读取 CSV文件存储数据,
前言早期我们使用TestNG 来做数据驱动进行测试,测试数据是写在测试用例脚本中。这会使得测试脚本的维护工作量很大。因此我们可以将测试的数据和脚本分开。
而我们经常使用会使用csv文件来做为导出数据时的存储文件,因此,可以通过读取 CSV文件存储数据,然后将数据传递给测试脚本进行测试。那么接下来我们将进行讲解使用csv文件做数据驱动。
使用csv做数据驱动测试 使用csv做数据驱动创建csv数据文件 具体代码示例如下: import org.testng.annotations.DataProvider; org.testng.annotations.Test; java.io.BufferedReader; java.io.FileInputStream; java.io.InputStreamReader; java.util.ArrayList; java.util.HashMap; java.util.List; java.util.Map; public class TestCSVData { /** * 读取csv中的文件 * @param filePath * @return */ public List<Map<String,String>> getData(String filePath){ List<Map<String,String>> list=new ArrayList<Map<String,1)">();; FileInputStream fileInputStream = null; try { fileInputStream = new FileInputStream(filePath); InputStreamReader inputStreamReader = InputStreamReader(fileInputStream); BufferedReader br = BufferedReader(inputStreamReader); for (String line = br.readLine(); line != null; line = br.readLine()) { Map<String,String> map = new HashMap<>(); String key=line.split(",")[0]; String value=line.split(",")[1]; map.put("userName",key); map.put("passWord"catch (Exception e) { e.printStackTrace(); } return list; } @DataProvider public Object[][] testCSVData() { List<Map<String,String>> result = getData("d:data.csv"); Object[][] files = Object[result.size()][]; for (int i = 0; i < result.size(); i++) { files[i] = Object[]{result.get(i)}; } files; } @Test(dataProvider = "testCSVData") void testCSVData(Map<String,String> param) { System.out.println(param.get("userName")+"t"+param.get("passWord")); } } 测试执行时,testCSVData()方法会调用 getData()方法来获得测试的数据,通过逗号将字符串分割成数组再添加到集合中。 每一行的数据都会通过构造凼数来进行初始
化赋值。
?
运行效果? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |