Я создал структуру Selenium с помощью TestNG. В этой структуре @Dataprovider содержит набор кода, который считывает данные из Excel и возвращает это значение как 2D-массив в @ Test.
@DataProvider(name="excelParam")
public static String[][] loginData()
{
return Util.Excel.get("/LearningSelenium/creds.xls");
}
@Test(dataProvider = "excelParam")
public void loginTest(String username, String password) {
driver.findElement(By.name("uid")).sendKeys(username);
driver.findElement(By.name("password")).sendKeys(password);
driver.findElement(By.name("btnLogin")).click();
}
Метод get возвращает String [] []. Но я получаю сообщение об ошибке, поскольку «DataProvider должен возвращать Object [] []». Если я изменю его на Object [] [], тогда мой тестовый пример завершится с ошибкой ниже:
org.testng.internal.reflect.MethodMatcherException:
[public void ParameterTestExcel.loginTest(java.lang.String,java.lang.String)] has no parameters defined but was found to be using a data provider (either explicitly specified or inherited from class level annotation).
Data provider mismatch
Test ignored.
===============================================
Default Suite
Total tests run: 1, Passes: 0, Failures: 1, Skips: 0
===============================================