数据驱动测试一:使用TestNG进行数据驱动

一、数据驱动测试概念

        数据驱动测试是相同的测试脚本使用不同的测试数据执行,测试数据和测试行为完全分离。

二、实施数据驱动测试的步骤:

1、编写测试脚本,脚本需要支持程序对象、文件或者数据库读入测试数据。

2、将测试脚本使用的测试数据存入程序对象、文件或者数据库等外部介质中。

3、运行脚本,循环调用存储在外部介质的测试数据。

4、验证所有的测试结果是否符合期望的结果。

三、使用TestNG进行数据驱动

使用@DataProvider注解定义当前方法中的返回对象作为测试脚本的测试数据集。

用法参考代码:

import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
//搜索2个关键词,验证搜索结果页面是否包含期望的关键词
public class DataProviderDemo {
	private static WebDriver driver;
	@DataProvider(name="searchData")
	public static Object[][] data()
	{
		return new Object[][] {{"老九门","演员","赵丽颖"},{"X站警天启","导演","布莱恩·辛格"},{"诛仙青云志","编剧","张戬"}};
	}
  @Test(dataProvider="searchData")
  public void testSearch(String searchdata1,String searchdata2,String searchResult) {
	  //打开sogou首页
	  driver.get("http://www.sogou.com/");
	  //输入搜索条件
	  driver.findElement(By.id("query")).sendKeys(searchdata1+" "+searchdata2);
	  //单击搜索按钮
	  driver.findElement(By.id("stb")).click();
	  //单击搜索按钮后,等待3秒显示搜索结果
	  try{
		  Thread.sleep(3000);
	  }catch(InterruptedException e){
		  e.printStackTrace();
	  }
	  //判断搜索的结果是否包含期望的关键字
	  Assert.assertTrue(driver.getPageSource().contains(searchResult));
  }
  @BeforeMethod
  public void beforeMethod() {
	  //若无法打开Firefox浏览器,可设定Firefox浏览器的安装路径
	  System.setProperty("webdriver.firefox.bin", "D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
	  //打开Firefox浏览器
	  driver=new FirefoxDriver();
	  //设定等待时间为5秒
	  driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
  }

  @AfterMethod
  public void afterMethod() {
	  //关闭打开的浏览器
	  driver.quit();
  }
}

运行结果:

PASSED: testSearch("老九门", "演员", "赵丽颖")
PASSED: testSearch("X站警天启", "导演", "布莱恩·辛格")
PASSED: testSearch("诛仙青云志", "编剧", "张戬")

===============================================
    Default test
    Tests run: 3, Failures: 0, Skips: 0
===============================================
上述代码表示测试方法中3个参数分别使用searchData测试数据集中每个一维数组中的数据进行赋值。此方法会被调用3次,分别使用测试数据集中的三组数据。




  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值