У меня есть сценарий селена для формы входа, который вводит « имя пользователя » и « пароль » в форме входа. При этом используется @DataProvider, который получает данные из базы данных MySQL. Как я могу изменить этот @DataProvider для размещения дополнительных полей, чтобы его можно было использовать для заполнения полей формы регистрации такими данными, как Имя , Фамилия , Имя пользователя Пароль из базы данных. Вот код, который у меня есть:
public class DBDataProvider {
private static String[][] inputArr;
public static void main(String[] args) {
}
public Object[][] getDatabaseData() {
Connection con = null;
try {
con = DatabaseConnectionManager.getConnectionManagerInstance().connect();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM click_reg_db");
rs.last();
int rows = rs.getRow();
ResultSetMetaData rsmd = (ResultSetMetaData) rs.getMetaData();
int cols = rsmd.getColumnCount();
System.out.println("Rows: " + rows + " -- Cols: " + cols);
inputArr = new String[rows][cols];
int i = 0;
rs.beforeFirst();
// Iterating the data in the Table
while (rs.next()) {
for (int j = 0; j < cols; j++) {
inputArr[i][j] = rs.getString(j + 1);
System.out.print("values:: " + inputArr[i][j] + ":::" + i + ":::" + j);
}
System.out.println();
i++;
}
} catch (SQLException e) {
e.printStackTrace();
System.out.println("cannot connect to database...");
}
return inputArr;
}
@DataProvider(name = "databaseTestData", parallel=true)
public Object[][] databaseTestData()
{
Object[][] data= getDatabaseData();
for(int i=0;i<data.length;i++)
{
for(int j=0;j<data[i].length;j++)
{
System.out.println("in for :: " + data[i][j]);
}
}
return data;
}
}
Теперь я хочу, чтобы тест выполнялся на данных из dataProvider:
@Test(dataProvider = "databaseTestData", dataProviderClass = DBDataProvider.class)
public void loginTestDBData(String fname, String lname, String username, String password) {
System.err.println("Running Test=> " + this + " -> on thread [" + Thread.currentThread().getId() + "]");
log.info("Starting registration for " + username);
...
}