之前在数据篇介绍了Dataprovider,之后自己看了一下,觉得还是有些实例会可读性强一些。关于数据读取,我以Excel为例,介绍一个自己项目中的方法,以做补充:
// CMDNumber和method是读取参数,前者用于定位Excel的sheet,后者用于定位Cell坐标
public String[][] getExcel_Step2(String CMDNumber, String method)
throws BiffException, IOException
{
//读取指定路径的Excel数据文档,得到参数CMDNumber并依此对应到相应的sheet在Excel文件中
Workbook wb1 = Workbook.getWorkbook(new File("E:/JAVA testing/_Testfiles/TestCMD.xls"));
Sheet sheet1=wb1.getSheet(CMDNumber);
//根据method找到起始坐标,并由其实横,纵坐标位置确定终止坐标
Cell Step2start=sheet1.findCell(method);
int startrow = Step2start.getRow();
int startcol = Step2start.getColumn();
Cell Step2end =sheet1.findCell("#",startcol,startrow+4, 100, 64000, false);
int endrow = Step2end.getRow();
int endcol = Step2end.getColumn();
/*
到这里,简单总结一下,我们现在得到了4个坐标:startrow,startcol,endrow,endcol
另注意一点,getCell()也可以定位坐标,但是getCell(j,i)两个参数顺序是纵坐标在前,这点很容易被忽略,具体看下面的for循环的方法应用
*/
//定义tabarray为返回值数组,我们根据4个坐标来得到Cell的值,方法是getContents()
String[][] tabarray= new String[endrow - startrow][endcol-startcol+1];
int cj = 0;
for(int j = startcol;j<=endcol;j++,cj++)
{
int ci = 0;
for(int i = startrow+1 ;i<endrow;i++,ci++)
{
tabarray[ci][cj] = sheet1.getCell(j, i).getContents();
//System.out.println(tabarray[ci][cj]);
}
}
return tabarray;
}
随后,我们就可以写处理数据的方法了:
public void Login(WebDriver driver, String cmd, String method)
{
//首先读取页面值,因为我们的web页面很简单,就几个元素的简单值,所以用Elements装起来
WebElement Login=driver.findElement(By.id("Login"));
WebElement Password=driver.findElement(By.id("Password"));
WebElement Key=driver.findElement(By.id("Key"));
WebElement[] Elements={Login,Password,Key};
//开始读取数据,并把WebElement需要send的key值从数据方法中传过来
try {
String[][] tab1=getExcel(cmd,method);
for(int i=0;i<tab1.length-1;i++)
{
for(int j=0;j<tab1[i].length;j++)
{
System.out.println(tab1[i][j]);
Elements[i].sendKeys(tab1[i][j]);
}
}
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
当然数据读取形式可以很多样化,数据源类型也不一而同。所以方法也是根据实际情况而变化很多。其实此方法除了测试之外,也可以对测试数据的准备上有用武之地,需求是随时而变的,tester的方法也要活学活用才好,自勉,共勉。
分享到:
相关推荐
3. **数据驱动测试**:数据驱动测试是一种测试方法,其中测试逻辑与测试数据分离。在本项目中,可能使用了TestNG的数据提供者功能,将测试数据(如用户名、密码等)作为参数传递给测试方法,从而实现对不同数据组合...
本项目基于"Maven+Selenium+TestNG+TestNG-xslt"搭建了一个高效的数据驱动测试框架,以下将详细解释这个框架的核心组件及其实现方式。 首先,Maven是一个项目管理和综合工具,它帮助开发者管理依赖、构建项目、执行...
这个压缩包“基于java+testng+数据库的接口自动化测试.zip”很可能包含了一套完整的接口自动化测试框架,用于验证后端服务的功能性和数据一致性。下面将详细阐述这些技术及其应用。 **Java**: Java是一种广泛使用的...
6. **数据驱动测试**:使用“@DataProvider”注解,TestNG支持数据驱动测试,可以为同一测试方法提供多组输入数据,提高测试覆盖率。 7. **XML配置**:TestNG支持使用XML配置文件来定义测试结构,这种方式在大型...
在TestNG中,XML配置文件可以用来指定测试的执行细节,如并发线程数、依赖关系、数据驱动测试等。通过编辑此文件,用户可以控制测试的执行逻辑和环境。 4. **testng.xml**:这是TestNG的核心配置文件,用于组织和...
在进行自动化测试时,我们经常会使用Maven和TestNG结合来组织和执行单元测试或集成测试。然而,当测试报告中包含中文字符时,可能会出现乱码问题,这对于阅读和理解测试结果带来了困扰。本文将深入探讨Maven TestNG...
TestNG允许定义测试套件,支持多种类型的测试(如方法、类、接口、配置等),并提供了灵活的注解,如@Test、@BeforeSuite、@AfterMethod等,方便编写和组织测试代码。此外,TestNG还支持并发测试,可以同时运行多个...
6. 参数化测试(Parameterized Tests):TestNG支持参数化测试,允许使用参数化数据来运行同一个测试方法多次。这可以用来测试同一方法在不同输入下的行为,从而提高测试覆盖率。 7. 数据提供者(Data Providers):...
- **数据驱动测试**:利用TestNG的数据提供者功能,可以实现基于数据的测试,这样可以一次性运行多个相似的测试,只需改变输入数据即可。 - **并行测试**:TestNG支持并行测试,可以提高测试效率,尤其是在接口...
在IT行业中,接口测试是软件开发过程中的一个重要环节,它主要用于验证系统间的...总之,结合HttpClient的强大功能和TestNG的灵活性,我们可以构建出高效且可靠的接口测试方案,确保系统的稳定性和数据交换的正确性。
7. **数据驱动测试**:通过@DataProvider,TestNG可以为测试方法提供多组输入数据,实现数据驱动的测试,方便进行参数化测试。 8. **配置方法**:@Before/After系列注解允许定义在测试执行前后的配置方法,如初始化...
Spring集成TestNG与Mockito框架单元测试方法的文档详细介绍了如何在Java Spring项目中,利用TestNG和Mockito框架进行单元测试。这种测试方法可以帮助开发者快速上手单元测试,并确保代码质量。文档涉及了多个方面,...
2. **数据驱动测试**:TestNG支持数据提供者,允许从外部文件或自定义方法中获取测试数据,这样可以为同一个测试方法提供多组输入,进行多次迭代执行。 3. **并行测试**:TestNG可以通过设置线程池大小,使测试方法...
8. **数据驱动测试**:结合参数化测试,TestNG可以实现数据驱动测试,即从外部数据源(如CSV文件或数据库)获取测试数据。 9. **XML配置**:通过XML配置文件,你可以灵活地控制测试执行的顺序、并发性以及如何分组...
另一个值得一提的是,TestNG支持参数化测试,可以通过数据提供者(@DataProvider)来为测试方法提供不同输入数据,从而实现对同一测试逻辑的多种情况验证。这提高了测试覆盖率,确保了代码在不同条件下的稳定性。 在...
7. **注解驱动**:TestNG采用注解(Annotation)来标记测试类和方法,使得测试代码更加简洁易读。 8. **测试套件(Test Suite)**:测试套件是TestNG中一种组织测试的方法,它可以包含多个测试类,甚至其他的测试...
《下一代Java测试:TestNG及相关高级概念》这本书不仅涵盖了TestNG的基础知识,更重要的是深入探讨了TestNG的一些高级特性,如并行执行、数据驱动测试、测试依赖管理等。这些特性大大提升了Java应用程序的测试质量和...
7. **数据驱动测试(Data Driven Testing)**:TestNG支持数据驱动测试,可以使用`@DataProvider`注解将测试与外部数据源关联,从而实现同一测试方法的不同数据集的执行。 8. **异常处理(Exception Handling)**:...
本篇文章将深入探讨如何在Spring项目中集成TestNG和Mockito进行单元测试。 TestNG是一个强大的测试框架,它扩展了JUnit的功能,提供了更灵活的测试配置,如并发测试、更丰富的注解、更详尽的测试报告等。首先,你...
在自动化测试领域,数据驱动测试是一种非常有效的方法,它允许我们使用不同的测试数据来执行相同的测试脚本,从而使测试更加灵活且易于维护。TestNG框架提供了数据驱动的支持,通过`@DataProvider`注解,我们可以...