Unable to fetch values from .csv file using QAFDataprovider with filter option

96 views
Skip to first unread message

Rupesh S

unread,
Aug 11, 2021, 3:18:15 AM8/11/21
to qaf users
Hi Team,

Could you help me with below issue.

Unable to fetch values from .csv file using QAFDataprovider with filter option. Below is the code and result.

Code:
@QAFDataProvider(filter = "app=='ultimatQa'")
@Test(description = "Login with csv file and filter option", enabled = true, groups = "smoke,regression")
@MetaData("{'Test-ID':'TC1','channel':['mobile','web'],'author':Infostretch'}")
public void validLogin(Map<String, String> csvData) {
System.out.println(csvData.get("email"));
LoginPage loginPage = new LoginPage();
loginPage.launchPage(null);

loginPage.doLogin(csvData.get("email"), csvData.get("password"));
Reporter.log("Logged in Successfully");
}

csv file data : csvfilename - logincsvdata.csv
TCID,app,email,password
Tc01,ultimatQa,Ross,Ross
Tc02,ultimatQa,Ross,R1oss
Tc03,newtour,Ro1ss,Ross

application.properties:
# Global Test Data
global.testdata.dataFile=resources/testdata/logincsvdata.csv

Result in console :
[RemoteTestNG] detected TestNG version 6.10.0
log4j:WARN No such property [follow] in org.apache.log4j.FileAppender.
Added "QAFMethodSelector"
java.lang.NoSuchFieldException: modifiers
at java.base/java.lang.Class.getDeclaredField(Class.java:2549)
at com.qmetry.qaf.automation.util.ClassUtil.setField(ClassUtil.java:599)
at com.qmetry.qaf.automation.testng.pro.QAFExecutionListener.<init>(QAFExecutionListener.java:52)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:780)
at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:722)
at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1393)
at org.testng.TestNG.addServiceLoaderListeners(TestNG.java:1017)
at org.testng.TestNG.initializeConfiguration(TestNG.java:966)
at org.testng.TestNG.run(TestNG.java:1089)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
[ConfigurationManager] - ISFW build info: {qaf-Type=core, qaf-Revision=0, qaf-Build-Time=26-Jul-2020 22:16:34, qaf-Version=3.0}
[ConfigurationManager] - Resource dir: D:\Users\rupesh.shankarachari\Documents\qaf-blank-project-maven-master\qaf-blank-project-maven-master\resources. Found property files to load: 7
[ConfigurationManager] - Resource dir: D:\Users\rupesh.shankarachari\Documents\qaf-blank-project-maven-master\qaf-blank-project-maven-master\resources. Found property files to load: 1
[CSVUtil] - loading csv data file: resources/testdata/logincsvdata.csv
[QAFInetrceptableDataProvider] - Applying Filter app=='ultimatQa'
[Error] com.qmetry.qaf.automation.testng.DataProviderException: Unable to apply filter on data-set
at com.qmetry.qaf.automation.testng.dataprovider.QAFInetrceptableDataProvider.process(QAFInetrceptableDataProvider.java:230)
at com.qmetry.qaf.automation.testng.dataprovider.QAFInetrceptableDataProvider.interceptedDataProvider(QAFInetrceptableDataProvider.java:119)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:55)
at org.testng.internal.MethodInvocationHelper.invokeMethodNoCheckedException(MethodInvocationHelper.java:45)
at org.testng.internal.MethodInvocationHelper.invokeDataProvider(MethodInvocationHelper.java:111)
at org.testng.internal.Parameters.handleParameters(Parameters.java:509)
at org.testng.internal.Invoker.handleParameters(Invoker.java:1293)
at org.testng.internal.Invoker.createParameters(Invoker.java:1020)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1110)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
at org.testng.TestRunner.privateRun(TestRunner.java:778)
at org.testng.TestRunner.run(TestRunner.java:632)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:387)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
at org.testng.SuiteRunner.run(SuiteRunner.java:289)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1293)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1218)
at org.testng.TestNG.runSuites(TestNG.java:1133)
at org.testng.TestNG.run(TestNG.java:1104)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
Caused by: java.lang.NullPointerException: Cannot invoke &quot;javax.script.ScriptEngine.getBindings(int)&quot; because &quot;jsEngine&quot; is null
at com.qmetry.qaf.automation.util.StringUtil.eval(StringUtil.java:517)
at com.qmetry.qaf.automation.testng.dataprovider.QAFInetrceptableDataProvider.process(QAFInetrceptableDataProvider.java:219)
... 30 more

cjayswal

unread,
Aug 11, 2021, 11:27:07 PM8/11/21
to qaf users
This looks the Java version you are using doesn't have script Engine. Refer answer to similar question.


બુધવાર, 11 ઑગસ્ટ, 2021ના રોજ 12:18:15 AM UTC-7 વાગ્યે sachari...@gmail.com દ્વારા આમ લખવામાં આવ્યું હતું:

cjayswal

unread,
Aug 16, 2021, 1:54:40 AM8/16/21
to qaf users
Hi rupesh,
Will you please confirm that the issue get resolved with JDK<15? Functionality should work with JDK 15 ( or any other without script engine)  with upcoming build 3.0.1, refer qaf#378 If you want to give it try, you can try with 3.0.1-SNAPSHOT

બુધવાર, 11 ઑગસ્ટ, 2021ના રોજ 08:27:07 PM UTC-7 વાગ્યે cjayswal દ્વારા આમ લખવામાં આવ્યું હતું:
Reply all
Reply to author
Forward
0 new messages