Как отправить определенные строки Excel для поставщика данных в testNG?
Я создал Excel, содержащий несколько строк, каждая строка соответствует тесту. В Excel имеется около 22 столбцов (параметров), включая столбец "Флаг".
Я хочу, чтобы поставщик данных возвращал только те столбцы, которые имеют значение "Y" в столбце Excel. Сценарий использования заключается в том, что, когда клиент хочет запустить конкретный тестовый пример, ему нужно только пометить его как Y или N. Как я могу добиться этого в TestNG с Selenium?
Мой коллега помог мне добиться этого, используя следующий код, но это не работает в соответствии с моей новой структурой кода.
@DataProvider(name = "Order")
public Object[][] menu()
{
Object[][] data = UtilLibrary.getData("Order");
int intColCount = UtilLibrary.datatable.getColumnCount("Order");
int j = 0;
int arrRowCount=0;
for (int i = 0; i < data.length; i++) {
if((data[i][intColCount-1]).equals("Y"))
{
arrRowCount++;
}
}
j=0;
Object[][] retData = new Object[arrRowCount][intColCount];
for (int i = 0; i < data.length; i++)
{
if ((data[i][intColCount-1]).equals("Y")) {
retData[j] = data[i]; j++; }
}
return retData;
}
Приведенный выше код отправляет только те данные, которые имеют флаг ='Y' в Excel, для поставщика данных. Но это работало только тогда, когда в тестовом скрипте был один метод @Test со всеми этапами автоматизации, в то время как теперь у меня есть несколько методов @Test для имитации тех же этапов, которым я передал этот же Dataprovider (Order).
Дайте мне знать, если кто-то достиг этого, используя похожий код, или если TestNG имеет особую функцию для отправки отфильтрованных строк Excel в поставщик данных
1 ответ
Я сейчас исправил проблему. Причина, по которой приведенный выше код для строк с флагом = 'Y' в Excel не работал с несколькими методами @Test, была только из-за глупой ошибки. Ошибка заключалась в том, что я немного изменил структуру Excel и не изменил приведенный выше код в соответствии с индексом столбца нового флага.