Вам следует выбрать Тестирование на основе данных.
Почему:
Существует ряд наборов данных, которые мы должны запуститьте же тесты на.И создание отдельного теста для каждого набора данных требует много времени и неэффективно.
Тестирование на основе данных преодолевает эту проблему, сохраняя данные внешними для функциональных тестов и загружая их при наличиинеобходимо продлить автоматизацию испытаний.
Использование TestNG :
- TestNG - это платформа, которая делает возможным автоматизированное тестирование на основе данных в Selenium.
- Он имеет некоторые дополнительные ключевые функции, такие как параметризация, параллельное выполнение теста и т. Д.
Вот полная реализация из данных ведомый тестирование .
Для этого я использовал gmail ( С 5 наборами тестовых данных ):
public class Sumit{
WebDriver driver;
WebDriverWait wait;
@BeforeMethod
public void setUpClass(){
System.setProperty("webdriver.chrome.driver", "F:\\Automation\\chromedriver.exe");
driver = new ChromeDriver();
wait = new WebDriverWait(driver,30);
driver.manage().window().maximize();
driver.get("https://www.google.com/");
}
@Test(dataProvider="testdata")
public void testLogin(String userName,String password) throws Exception {
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//a[text()='Sign in']")));
driver.findElement(By.xpath("//a[text()='Sign in']")).click();
driver.findElement(By.xpath("//input[@aria-label='Email or phone']")).sendKeys(userName);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[text()='Next']/ancestor::div[@id='identifierNext']")));
driver.findElement(By.xpath("//span[text()='Next']/ancestor::div[@id='identifierNext']")).click();
driver.findElement(By.xpath("//input[@aria-label='Enter your password']")).sendKeys(password);
Thread.sleep(2000);
driver.findElement(By.xpath("//span[text()='Next']/ancestor::div[@id='passwordNext']")).click();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[contains(text(),'Wrong password. Try again or click Forgot password to reset it.')]")));
String errorText = driver.findElement(By.xpath("//div[contains(text(),'Wrong password. Try again or click Forgot password to reset it.')]")).getText();
System.out.println(errorText);
}
@DataProvider(name = "testdata")
public Object[][] gmailData() {
return new Object[][] {
{ "abc123@gmail.com", "yourpassowrd"},
{ "abc1234@gmail.com", "yourpassowrd"},
{"abc12345@gmail.com","yourpassowrd"},
{"abc12346@gmail.com","yourpassowrd"},
{"abc12347@gmail.com","yourpassowrd"},
};
}
@AfterMethod
public void tearDown() throws Exception {
Thread.sleep(3000);
driver.close();
}
}
PS :1. Я не очень хорош в C #, поэтому я написал код на Java, то же самое вы можете сопоставить с C #.
Для получения дополнительной информации вы можете просмотреть документацию TestNG : Документация TestNG
Вы можете использовать файлы CSV, файлы Excelи Базы данных для тестирования на основе данных, однако предоставленное мной решение не использует ни один из них.