CSV 리더를 사용하여 DataProvider를 사용하는 테스트 기능에서 데이터를 가져오고이 데이터를 사용하고 있습니다.
TestNG Method
@Test(dataProvider = "regCSVData", dataProviderClass = LoginData.class)
public void testLoginUsingCSVFile(LoginData loginData){
driver.get(appURL);
Login login = PageFactory.initElements(driver, Login.class);
login.loginToFwbm(loginData);
}
LoginData Class
@DataProvider(name = "regCSVData")
public static Object[][] getCSVData() throws IOException {
CSVReader csvReader = new CSVReader(new FileReader(
LoginData.class.getResource("/regdata.csv").getPath()));
List<String[]>dataList = csvReader.readAll();
Object[][]data = new Object[dataList.size()][1];
List<LoginData> logList = new ArrayList<LoginData>();
for (String[] strArray:dataList){
LoginData loginData = new LoginData();
loginData.setUserName(strArray[0].trim());
loginData.setPassword(strArray[1].trim());
logList.add(loginData);
}
for (int i=0; i<data.length;i++){
for(int j=0;j<data[i].length;j++){
data[i][j] = logList.get(i);
}
}
csvReader.close();
return data;
}
CSV File
asdf, pa2 qwerty, pa2 john, pa2
TestNG를 사용하여이 테스트를 실행하면 Null Pointer 예외가 발생합니다.
java.lang.RuntimeException가 : java.lang.NullPointerException이 org.testng.internal.MethodInvocationHelper.invokeDataProvider (MethodInvocationHelper.java:161)에서 org.testng.internal.Parameters.handleParameters에서 (Parameters.java:429) org.testng에서. internal.Invoker.handleParameters (Invoker.java:1383) org.testng.internal.Invoker.createParameters에서 (Invoker.java:1075) org.testng.internal.Invoker.invokeTestMethods (Invoker.java:1180)에서 org.testng에서 .internal.TestMethodWorker.invokeTestMethods (TestMethodWorker.java:127) at org.testng.internal.TestMethodWorker.run (TestMethodWorker.java:111) at org.testng.TestRunner.privateRun (TestRunner.java:767) at org.testng.TestRunner.run (TestRunner.java:617) , org.testng.SuiteRunner.runTest (SuiteRunner.java:334) , org.testng.SuiteRunner.runSequentially (SuiteRunner.java:329) , org.testng. SuiteRunner.privateRun (SuiteRunner.java:291) org.testng.SuiteRunner.run (SuiteRunner.java:240)에서 org.testng.SuiteRunnerWorker.runSuite (SuiteRunnerWorker.java:52)에서 org.testng.SuiteRunnerWorker.run에서 (SuiteRunnerWorker .java : 86) org.testng.TestNG.runSuitesSequentially (TestNG.java:1224) at org.testng.TestNG.runSuitesLocally (TestNG.java:1149) at org.testng.TestNG.run (TestNG.java:1057) org.testng.remote.RemoteTestNG.run (RemoteTestNG.java:111) at org.testng.internal.MethodInvocationHelper.invokeMethod (MethodInvocationHelper.java:84) at org.testng.remote.RemoteTestNG.initAndRun (RemoteTestNG. java : 204) org.testng.remote.RemoteTestNG.main (RemoteTestNG.java:175) 원인 : com.fwbm.dataobject.LoginData.getCSVData ( LoginData.java:49 )의 java.lang.NullPointerException at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke (Unknown Source) at java.lang.reflect.Method.invoke (Unknown Source) at org.testng.internal.MethodInvocationHelper .invokeDataProvider (MethodInvocationHelper.java:135) ... 20 more
Project Structure Image
"실행 구성"의 classPath에 파일을 추가해야합니다. 그런 다음 getRessource ();를 사용하여 파일을로드 할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다