Selenium+java - 使用csv文件做数据驱动
前言
早期我们使用TestNG 来做数据驱动进行测试,测试数据是写在测试用例脚本中。这会使得测试脚本的维护工作量很大。因此我们可以将测试的数据和脚本分开。
而我们经常使用会使用csv文件来做为导出数据时的存储文件,因此,可以通过读取 CSV文件存储数据,然后将数据传递给测试脚本进行测试。那么接下来我们将进行讲解使用csv文件做数据驱动。
使用csv做数据驱动测试
使用csv做数据驱动
创建csv数据文件
具体代码示例如下:
import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import 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, String>>();; FileInputStream fileInputStream = null; try { fileInputStream = new FileInputStream(filePath); InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream); BufferedReader br = new 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",value); list.add(map); } br.close(); } catch (Exception e) { e.printStackTrace(); } return list; } @DataProvider public Object[][] testCSVData() { List<Map<String, String>> result = getData("d:\\data.csv"); Object[][] files = new Object[result.size()][]; for (int i = 0; i < result.size(); i++) { files[i] = new Object[]{result.get(i)}; } return files; } @Test(dataProvider = "testCSVData") public void testCSVData(Map<String,String> param) { System.out.println(param.get("userName")+"\t"+param.get("passWord")); } }
测试执行时,testCSVData()方法会调用 getData()方法来获得测试的数据,通过逗号将字符串分割成数组再添加到集合中。 每一行的数据都会通过构造凼数来进行初始
化赋值。
运行效果
优秀不够,你是否无可替代
软件测试交流QQ群:721256703,期待你的加入!!
欢迎关注我的微信公众号:软件测试君

分类:
Selenium +Java
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库