selenium 数据驱动 (基于TestNG CSV)
来源:互联网 发布:python中syntax error 编辑:程序博客网 时间:2024/05/21 21:44
新建excel表 输入如下数据:
文件->另存为->保存类型为CSV文件,保存至D盘下,用记事本编辑, 另存为TestData.csv, 编码格式采用UTF-8
实现源码;
新建TestByCVS .java文件:
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.Test;import org.testng.annotations.DataProvider;import org.testng.annotations.BeforeMethod;import org.testng.annotations.AfterMethod;import java.util.concurrent.TimeUnit;import org.junit.Assert;import org.openqa.selenium.*;import org.openqa.selenium.firefox.*;public class TestByCVS {public static WebDriver driver;//定义当前方法中的返回对象作为测试脚本的测试数据集,命名为searchWords@DataProvider(name="TestData")public static Object[][] words() throws IOException{return getTestData("d:\\TestData.csv"); }@Test(dataProvider="TestData")public void testSearch(String words1, String words2, String result){ driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.get("http://www.baidu.com"); driver.findElement(By.id("kw")).sendKeys(words1+ " "+words2); driver.findElement(By.id("su")).click(); try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } Assert.assertTrue(driver.getPageSource().contains(result)); }@BeforeMethodpublic void BeforeMethod(){ driver =new FirefoxDriver();}@AfterMethodpublic void AfterMethod(){driver.quit();}public static Object[][] getTestData(String fileName) throws IOException{List <Object[]> records = new ArrayList<Object[]>();String record;BufferedReader file = new BufferedReader (new InputStreamReader(new FileInputStream(fileName),"UTF-8"));//忽略第一行file.readLine();//遍历 将内容存到records数组while((record=file.readLine())!=null){String fields[] = record.split(",");records.add(fields);}file.close();Object[][] results = new Object[records.size()][];for (int i=0; i<records.size();i++){results[i] = records.get(i);}return results;}//org.testng.TestNGException: //The data provider is trying to pass 1 parameters but the method TestByCVS#testSearch takes 3 and TestNG is unable in inject a suitable object }
(PS :编码运行过程中 出现最后注释的TestNG不能识别对象问题 ,是我CSV文件的问题。TestNG的日志不支持中文,更改eclipse.ini的语句后,火狐浏览器依旧乱码,Google浏览器则正常)
运行结束后Results of running class TestByCVS会出现中文乱码,在eclipse.ini加入如下语句
-Dfile.encoding=utf-8
-Dsun.jnu.encoding=utf-8
-Duser.language=en_US
(Results of running class TestByCVS如下图所示)
(TestNG Report如下图所示:)
TestNG reports:
3 0
- selenium 数据驱动 (基于TestNG CSV)
- selenium Excel数据驱动测试(基于 TestNG Apache POI)
- 基于testNG数据驱动测试
- Selenium学习12--数据驱动csv
- 基于testNg的测试框架设计(一)数据驱动
- TestNG+Selenium Webdriver 数据(Excel)驱动的方法
- TestNG+Selenium Webdriver 数据(Excel)驱动的方法
- TestNG+Selenium Webdriver 数据(Excel)驱动的方法
- TestNG+Selenium Webdriver 数据(Excel)驱动的方法
- 数据驱动测试二:使用TestNG和CSV文件进行数据驱动
- selenium-Java-使用csv文件进行数据驱动-中文乱码
- testng 数据驱动方法
- TestNG数据驱动
- TestNG数据驱动测试
- 数据驱动-testng配置
- Selenium Webdriver实现BKredcoil website 自动登录测试、Single Sign On(TestNG+ANT+Excel数据驱动)
- Selenium TestNG
- selenium TestNG
- Java构造器排序
- windows实验3——c++
- 关于.9的那些事儿
- LPC2478驱动nand flash(k9f5608)
- arm-linux上实现的VPN客户端(PPTP)
- selenium 数据驱动 (基于TestNG CSV)
- 简单讲述关于C#的线程,任务,同步
- CCCC-GPLT L3-014. 周游世界 团体程序设计天梯赛
- 【SSH网上商城项目实战21】从Demo中看易宝支付的流程
- Android基础控件ListView的使用与焦点冲突解决
- 宝宝小爬虫Selenium自动获取网页cookie+Curl数据查询
- Android进阶之路
- 使用Qt编写模块化插件式应用程序
- LayoutInflater 分析