一步步教你如何实现自动化测试数据驱动

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/kekeTester/article/details/82823325

对于自动化测试,数据驱动是必不可少的,本章演示如何实现简单的数据驱动,后续会更新 java+selenium+testNG读取csv实现数据驱动

1、创建 Java Project

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

创建package和class 名字自取,project如下
在这里插入图片描述
2、环境配置

public static WebDriver driver;
 @BeforeTest
 public void beforeTest() { //测试之前的配置
  System.setProperty("webdriver.gecko.driver", "E:/AutoTest/geckodriver.exe");
  driver = new FirefoxDriver();
  driver.get("http://www.baidu.com");
  driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
 }
@BeforeMethod
 public void beforeMethod() {
 }
 @AfterMethod
 //打算结束后不关闭浏览器,直接在当前页面继续测试
 public void afterMethod() {
  driver.findElement(By.id("kw")).clear();
 }
 @AfterTest
 public void afterTest() {
  driver.quit();
 }

3、数据驱动
3.1 创建一个注解为DataProvider的方法

@DataProvider(name = "data")//注解为DataProvider (数据提供者,name=data)
 public static Object[][] dataProvider() {//创建一个二维数组,并返回如下的值
  return new Object[][] { { "老九门", "演员", "赵丽颖" },
   { "自动化测试", "工具", "selenium " }, 
   { "功夫", "主演", "周星驰" } };
 }
@Test(dataProvider = "data")//测试脚本 定义dataProvider=数据提供者的name
//定义3个String类型的变量 ,数量取决于二维数组
 public void testDemo(String data1, String data2, String result) throws InterruptedException {
  driver.findElement(By.id("kw")).sendKeys("" + data1 + data2);
  driver.findElement(By.id("su")).click();
  Thread.sleep(2000);
  //断言检测搜索的结果是否与预期result一致
  Assert.assertTrue(driver.getPageSource().contains(result));
 }

4、完整代码

public class ProviderDemo {
 public static WebDriver driver;
 @BeforeTest
 public void beforeTest() {
  System.setProperty("webdriver.gecko.driver", "E:/AutoTest/geckodriver.exe");
  driver = new FirefoxDriver();
  driver.get("http://www.baidu.com");
  driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
 }
@BeforeMethod
 public void beforeMethod() {
 }
 @AfterMethod
 public void afterMethod() {
  driver.findElement(By.id("kw")).clear();
 }
 @AfterTest
 public void afterTest() {
  driver.quit();
 }
 @DataProvider(name = "data")
 public static Object[][] dataProvider() {
  return new Object[][] {
   { "老九门", "演员", "赵丽颖" },
   { "自动化测试", "工具", "selenium " }, 
   { "功夫", "主演", "周星驰" } };
 }
 @Test(dataProvider = "data")
 public void testDemo(String data1, String data2, String result) throws InterruptedException {
  driver.findElement(By.id("kw")).sendKeys("" + data1 + data2);
  driver.findElement(By.id("su")).click();
  Thread.sleep(2000);
  Assert.assertTrue(driver.getPageSource().contains(result));
 }
}

5、看下运行结果
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

展开阅读全文

没有更多推荐了,返回首页