У меня есть файл xls с 2 столбцами тестовых данных.Для каждого столбца я хочу иметь метод теста.
Теперь я знаю, как использовать dataprovider для чтения файла xls и предоставления данных теста в метод теста.Но как я могу использовать один и тот же поставщик данных для нескольких тестов?
У меня есть код ниже, и как только я запускаю этот код, получая ошибку, мой код:
@Test(dataProvider="TestData")
public void test1(String Username ) throws InterruptedException
{
driver.findElement(By.xpath("//*[@id=\"UserName\"]")).sendKeys(Username);
}
@Test(dataProvider="TestData")
public void test2(String Password)
{
driver.findElement(By.xpath("//*[@id=\"Password\"]")).sendKeys(Password);
driver.findElement(By.xpath("//[@id=\"columns\"]/div/div[1]/form/div[1]/div[2]/div[4]/input")).click();
}
@DataProvider (name="TestData")
public Object [][] readexcel(Method method) throws BiffException, IOException
{
File f=new File("E:\\Selenium\\Eclips\\NCPDP\\src\\TestData\\TestData.xls");
Workbook w = Workbook.getWorkbook(f);
Sheet s = w.getSheet("TestData");
int rows = s.getRows();
int columns =s.getColumns();
String inputData[][]=new String[rows-1][columns];
try {
for(int i=1;i<rows;i++)
{
for(int j=0;j<columns;j++)
{
Cell c=s.getCell(j,i);
inputData[i-1][j]=c.getContents();
}
}
}
catch(Exception e){
e.getMessage();
}
return inputData;
}
Вывод:
Обнаружено [RemoteTestNG] TestNG версии 6.14.2 Запуск ChromeDriver2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387) через порт 47795 Разрешены только локальные соединения.12 февраля 2019 13:15:28 org.openqa.selenium.remote.ProtocolHandshake createSession INFO: обнаружен диалект: OSS FAILED: test1 org.testng.internal.reflect.MethodMatcherException: несоответствие поставщика данных Метод: test1 ([параметр {индекс= 0, type = java.lang.String, DeclaAnnotations = []}]) Аргументы: [(java.lang.String) TESTQA41, (java.lang.String) Ncpdp @ 1234] в org.testng.internal.reflect.DataProviderMethodMatcher.getConformingArguments (DataProviderMethodMatcher.java:45) в org.testng.internal.Parameters.injectParameters (Parameters.java:796) в org.testng.internal.Invoker.invokeTestMethods (Invoker.internal2) org.98:.TestMethodWorker.invokeTestMethods (TestMethodWorker.java:125) в org.testng.internal.TestMethodWorker.run (TestMethodWorker.java:109) в org.testng.TestRunner.privateRun (TestRunner .48).выполнить (TestRunner.java:505) в org.testng.SuiteRunner.runTest (SuiteRunner.java:455) в org.testng.SuiteRunner.runSequentially (SuiteRunner.java:450) в org.testng.SuiteRunner.privateRun (SuiteRunner.java:415) в org.testng.SuiteRunner.run (SuiteRunner.java:364) в org.testng.SuiteRunnerWorker.runSuite (SuiteRunnerWorker.java:52) в org.un.un.un(SuiteRunnerWorker.java:84) в org.testng.TestNG.runSuitesSequentially (TestNG.java:1208) в org.testng.TestNG.runSuitesLocally (TestNG.java:1137) в org.testng.TestNG.runSuites:1049) по адресу org.testng.TestNG.run (TestNG.java:1017) по адресу org.testng.remote.AbstractRemoteTestNG.run (AbstractRemoteTestNG.java:114) по адресу org.testng.remote.RemoteTestNG.initAndRun.jit1251) at org.testng.remote.RemoteTestNG.main (RemoteTestNG.java:77)
FAILED: test2 org.testng.internal.reflect.MethodMatcherException: несоответствие поставщика данных Метод: test2 ([Параметр {index = 0, type = java.lang.String, DeclaAnnotations = []}]) Аргументы: [(java.lang.String) TESTQA41, (java.lang.String) Ncpdp @ 1234] в org.testng.internal.reflect.DataProviderMethodMatcher.getConformingArguments (DataProviderMethodMatcher.java:45) в org.testng.internal.Parameters.injectParameters (Parameters.java:796) в org.testng.internal.Invoker.invokeTestMethods (Invoker.java:982) в org.testng.internal.TestMethodWorker.invoke(TestMethodWorker.java:125) в org.testng.internal.TestMethodWorker.run (TestMethodWorker.java:109) в org.testng.TestRunner.privateRun (TestRunner.java:648) в org.testng.TestRunner.Java: 505) в org.testng.SuiteRunner.runTest (SuiteRunner.java:455) в org.testng.SuiteRunner.runSequentially (SuiteRunner.java:450) в org.testng.SuiteRunner.privateRun (SuiteRunner.java:4)org.testng.SuiteRunner.run (SuiteRunner.java:364) по адресу org.testng.SuiteRunnerWorker.runSuite (SuiteRunnerWorker.java:52) по адресу org.testng.SuiteRunnerWorker.run (SuiteRunnerWorker.java.ng в atT.Gava :84).runSuitesSequentially (TestNG.java:1208) в org.testng.TestNG.runSuitesLocally (TestNG.java:1137) в org.testng.TestNG.runSuites (TestNG.java:1049) в org.testng.TestNG.run (java: 1017) в орг. тэstng.remote.AbstractRemoteTestNG.run (AbstractRemoteTestNG.java:114) в org.testng.remote.RemoteTestNG.initAndRun (RemoteTestNG.java:251) в org.testng.remote.RemoteTestNG.main (101T2Nest )G*
===============================================Тест по умолчанию
Выполнено тестов: 2, сбоев: 2, пропусков: 0
==================================================== Набор по умолчанию
Всего выполнено тестов: 2, Сбоев: 2, Пропусков: 0