2018年7月3日星期二

testng数据提供商

当您需要传递复杂的参数例如从Java创建(复杂对象,从属性文件或数据库读取的对象,等…),在这种情况下,可以使用DataProviders传递参数。数据提供程序是使用@dataprovider注释的方法。数据提供程序返回一系列对象。

让我们使用DataProviders查看相同的搜索示例。

视频教程 -
 

怎么做 ?


1) 定义使用注释定义为DataProvider的方法SearchValue()。此方法返回对象数组数组。

2)将方法TEST()添加到DATAProvidert Class。此方法将两个字符串占用作为输入参数。

3)添加注释@Test(DataProvider =“search”)到这种方法。属性DataProvider映射到“search”.

4)运行以下代码作为Testng测试用例,然后测试将执行两次,因为我们通过两个数据值。



package test;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
 
import org.testng.annotations.DataProvider;
 
import org.testng.annotations.Test;
 
public class  testng. DataProvider {
 
 private static WebDriver driver;
 
  @DataProvider(name = "搜索")
 
  public static Object[][] 搜索Value() {
 
        return new Object[][] { { "appium" }, { "selenium" }};
 
  }
 
  // Here we are calling the Data Provider object with its Name
 
  @Test(dataProvider = "搜索")
 
  public void test(String searchtext) throws Exception {
 
   System.setProperty("webdriver.chrome.driver", "C:\\Softwares\\chromedriver_win32\\chromedriver.exe");
  
   driver=new ChromeDriver();
      
      driver.get("http://www.yubo666.com");
 
      Thread.sleep(5000);
      driver.findElement(By.xpath("*//input[@class='search-field']")).sendKeys(搜索text);
      
      driver.findElement(By.xpath("*//input[@class='search-submit']")).click();
 
      driver.quit();
  }
 
}

testng参数

正如我们都知道自动化测试中参数化的值。它允许我们多次自动运行测试用例,并使用各种输入和验证值进行多次。在创建自动化框架时,我们需要在一些努力中努力支持我们的自动化测试中的数据驱动测试。在此视频中,我们将看到我们如何使用Testng参数参数化测试用例。

testng为我们提供称为Testng参数的有趣功能。 testng让您将参数直接传递给您的TestNG.xml。

视频教程 -


怎么做?


让我在我们网站www.qaautomated.com上进行一个非常简单的搜索示例,搜索文本 需要进行身份验证。

1)创建一个测试用例以执行搜索,从而将一个字符串参数作为searchtext。

2)使用Testng注释提供SearchText作为参数。



package test;


import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
import org.testng.annotations.Parameters;
 
public class  testng. Parameters{
 
 private static WebDriver driver;
 
  @Parameters("搜索text")
  @Test  
  public void test(String searchtext) throws InterruptedException {
 
   System.setProperty("webdriver.chrome.driver", "C:\\Softwares\\chromedriver_win32\\chromedriver.exe");
  
   driver=new ChromeDriver();
      
      driver.get("http://www.yubo666.com");
 
      Thread.sleep(5000);
      driver.findElement(By.xpath("*//input[@class='search-field']")).sendKeys(搜索text);
      
      driver.findElement(By.xpath("*//input[@class='search-submit']")).click();
 
      driver.quit();
 
  }
 
}

3)在testng.xml中提供搜索文本值


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
  <test thread-count="5" name="Test">
   <parameter name="搜索text" value="appium"/>
    <classes>
      <class name="test. testng. Parameters"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

4)右键单击Testng.xml并以Testng Suit运行