QAF utilization for pCloudy

40 views
Skip to first unread message

Rohit Vatta

unread,
Apr 11, 2024, 3:03:31 AMApr 11
to qaf users
Hi Folks,

I am great fan of QAF library and trying to use it for another cloud platform called "pCloudy". I am able to see the device connection happens however the driver instance is not getting generated. Getting below exception.
com.qmetry.qaf.automation.core.AutomationError: Unable to Create Driver Instance for appium: java.lang.reflect.InvocationTargetException

The testng.xml has the right capabilities including the additional capabilities related to username, ApiKey, etc etc. Any suggestions or directions why this is happening?

<parameter name="driver.name" value="appiumDriver"/>
<parameter name="appium.capabilities.driverClass" value="io.appium.java_client.android.AndroidDriver"/>
<parameter name="appium.capabilities.newCommandTimeout" value="600"/>
<parameter name="appium.capabilities.launchTimeout" value="90000"/>
<parameter name="appium.capabilities.platformVersion" value="12.0.0"/>
<parameter name="appium.capabilities.platformName" value="Android"/>
<parameter name="appium.capabilities.automationName" value="uiautomator2"/>
<parameter name="appium.capabilities.appPackage" value="com.pcloudy.appiumdemo"/>
<parameter name="appium.capabilities.appActivity" value="com.ba.mobile.LaunchActivity"/>

cjayswal

unread,
Apr 11, 2024, 12:43:53 PMApr 11
to qaf users
Make sure you are using latest QAF. I see Caused by: java.lang.ClassNotFoundException: in the logs provided in github issue it looks like you are missing required dependency. Make sure you had added required dependencies for example, appium for AndrioidDriver.

Rohit Vatta

unread,
Apr 11, 2024, 12:46:01 PMApr 11
to qaf-...@googlegroups.com
I am using latest libraries however the issue is that the application gets opened now on the pCloudy device but throws an exception related to driver initialization.

--
You received this message because you are subscribed to the Google Groups "qaf users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qaf-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/qaf-users/25817577-0b26-4481-a11b-727e42a72287n%40googlegroups.com.

cjayswal

unread,
Apr 11, 2024, 2:45:10 PMApr 11
to qaf users
Will you share more details like exception details, pom file (selenium version, appium version, qaf version), properties used etc...? Make sure the Appium and selenium versions are compatible with each other. Check if it has any session timeout or session limits.

Rohit Vatta

unread,
Apr 17, 2024, 3:06:18 AMApr 17
to qaf-...@googlegroups.com
Hi Chirag,

Here are the details:

Entire Stack Trace:
"C:\Program Files\Java\jdk1.8.0_202\bin\java.exe" -ea -Dorg.uncommons.reportng.xml-dialect=testng -Dorg.uncommons.reportng.escape-output=false -Dlog4j.configuration=src/main/resources/log4j.properties -DoutputDir=test-results/11_Apr_2024_07_55_AM -Dtest.results.dir=test-results/11_Apr_2024_07_55_AM/html -Djson.report.root.dir=test-results -Djson.report.dir=test-results/11_Apr_2024_07_55_AM/json -Dselenium.screenshots.dir=test-results/11_Apr_2024_07_55_AM/img -Dselenium.screenshots.relative.path=../img -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.1.4\lib\idea_rt.jar=53659:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.1.4\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\Rohit.Vatta\AppData\Local\Temp\classpath708105789.jar com.intellij.rt.testng.RemoteTestNGStarter -usedefaultlisteners false -socket53658 @w@C:\Users\Rohit.Vatta\AppData\Local\Temp\idea_working_dirs_testng.tmp -temp C:\Users\Rohit.Vatta\AppData\Local\Temp\idea_testng.tmp
log4j:WARN No appenders could be found for logger (com.qmetry.qaf.automation.testng.pro.QAFAnnotationTransformer2).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Added "QAFMethodSelector"
include groups [@PlynkDemo1]
 exclude groups: [] Scanarios location: src/main/resources/scenarios
Apr 17, 2024 12:21:35 PM io.appium.java_client.remote.AppiumCommandExecutor$1 lambda$0
INFO: Detected dialect: W3C
com.qmetry.qaf.automation.core.AutomationError: Unable to Create Driver Instance for appium: com/qmetry/qaf/automation/ui/webdriver/QAFExtendedWebElement$JsonConvertor
at com.qmetry.qaf.automation.ui.UiDriverFactory$Browsers.standardConnect(UiDriverFactory.java:442)
at com.qmetry.qaf.automation.ui.UiDriverFactory$Browsers.getDriver(UiDriverFactory.java:413)
at com.qmetry.qaf.automation.ui.UiDriverFactory$Browsers.access$300(UiDriverFactory.java:282)
at com.qmetry.qaf.automation.ui.UiDriverFactory.getDriver(UiDriverFactory.java:221)
at com.qmetry.qaf.automation.ui.UiDriverFactory.get(UiDriverFactory.java:89)
at com.qmetry.qaf.automation.core.QAFTestBase$DriverInitExpectedCondition.apply(QAFTestBase.java:567)
at com.qmetry.qaf.automation.core.QAFTestBase$DriverInitExpectedCondition.apply(QAFTestBase.java:1)
at com.qmetry.qaf.automation.ui.util.DynamicWait.until(DynamicWait.java:147)
at com.qmetry.qaf.automation.core.QAFTestBase.init(QAFTestBase.java:477)
at com.qmetry.qaf.automation.core.QAFTestBase.getUiDriver(QAFTestBase.java:252)
at com.qmetry.qaf.automation.ui.WebDriverTestBase.getDriver(WebDriverTestBase.java:44)
at com.qmetry.qaf.automation.ui.WebDriverTestBase.getDriver(WebDriverTestBase.java:1)
at com.qmetry.qaf.automation.ui.AbstractTestPage.<init>(AbstractTestPage.java:81)
at com.qmetry.qaf.automation.ui.AbstractTestPage.<init>(AbstractTestPage.java:88)
at com.qmetry.qaf.automation.ui.WebDriverBaseTestPage.<init>(WebDriverBaseTestPage.java:65)
at com.qmetry.qaf.automation.ui.WebDriverBaseTestPage.<init>(WebDriverBaseTestPage.java:61)
at com.poc.pages.BasePage.<init>(BasePage.java:9)
at com.poc.steps.demoSteps.<init>(demoSteps.java:28)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at com.qmetry.qaf.automation.step.DefaultObjectFactory.createInstance(DefaultObjectFactory.java:83)
at com.qmetry.qaf.automation.step.DefaultObjectFactory.getObject(DefaultObjectFactory.java:60)
at com.qmetry.qaf.automation.step.ObjectFactory$Provider.getObject(ObjectFactory.java:48)
at com.qmetry.qaf.automation.step.JavaStep.getStepProvider(JavaStep.java:173)
at com.qmetry.qaf.automation.step.JavaStep.doExecute(JavaStep.java:137)
at com.qmetry.qaf.automation.step.BaseTestStep.execute(BaseTestStep.java:149)
at com.qmetry.qaf.automation.step.StringTestStep.execute(StringTestStep.java:128)
at com.qmetry.qaf.automation.step.client.Scenario.execute(Scenario.java:174)
at com.qmetry.qaf.automation.step.client.Scenario.scenario(Scenario.java:237)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:645)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1177)
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:756)
at org.testng.TestRunner.run(TestRunner.java:610)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:387)
at org.testng.SuiteRunner.access$000(SuiteRunner.java:39)
at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:421)
at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: com/qmetry/qaf/automation/ui/webdriver/QAFExtendedWebElement$JsonConvertor
at com.qmetry.qaf.automation.ui.UiDriverFactory$Browsers.standardConnect(UiDriverFactory.java:438)
... 51 more
Caused by: java.lang.ClassNotFoundException: com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement$JsonConvertor
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 52 more
Unable to create driver instance in 1st attempt with retry timeout of 0 seconds. You can check/set value of 'driver.init.retry.timeout' appropriately to set retry timeout on driver initialization failure.com/thoughtworks/selenium/CommandProcessor

com.qmetry.qaf.automation.core.AutomationError: Unable to Create Driver Instance for appium: java.lang.reflect.InvocationTargetException
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'AS-HQ5V9V3-L', ip: '192.168.10.82', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_202'
Driver info: driver.version: unknown
at com.qmetry.qaf.automation.ui.UiDriverFactory$Browsers.standardConnect(UiDriverFactory.java:442)
at com.qmetry.qaf.automation.ui.UiDriverFactory$Browsers.getDriver(UiDriverFactory.java:413)
at com.qmetry.qaf.automation.ui.UiDriverFactory$Browsers.access$300(UiDriverFactory.java:282)
at com.qmetry.qaf.automation.ui.UiDriverFactory.getDriver(UiDriverFactory.java:221)
at com.qmetry.qaf.automation.ui.UiDriverFactory.get(UiDriverFactory.java:89)
at com.qmetry.qaf.automation.core.QAFTestBase$DriverInitExpectedCondition.apply(QAFTestBase.java:567)
at com.qmetry.qaf.automation.core.QAFTestBase$DriverInitExpectedCondition.apply(QAFTestBase.java:1)
at com.qmetry.qaf.automation.ui.util.DynamicWait.until(DynamicWait.java:147)
at com.qmetry.qaf.automation.core.QAFTestBase.init(QAFTestBase.java:477)
at com.qmetry.qaf.automation.core.QAFTestBase.getUiDriver(QAFTestBase.java:252)
at com.qmetry.qaf.automation.ui.WebDriverTestBase.getDriver(WebDriverTestBase.java:44)
at com.qmetry.qaf.automation.ui.WebDriverTestBase.getDriver(WebDriverTestBase.java:1)
at com.qmetry.qaf.automation.ui.AbstractTestPage.<init>(AbstractTestPage.java:81)
at com.qmetry.qaf.automation.ui.AbstractTestPage.<init>(AbstractTestPage.java:88)
at com.qmetry.qaf.automation.ui.WebDriverBaseTestPage.<init>(WebDriverBaseTestPage.java:65)
at com.qmetry.qaf.automation.ui.WebDriverBaseTestPage.<init>(WebDriverBaseTestPage.java:61)
at com.poc.pages.BasePage.<init>(BasePage.java:9)
at com.poc.steps.demoSteps.<init>(demoSteps.java:28)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.qmetry.qaf.automation.step.DefaultObjectFactory.createInstance(DefaultObjectFactory.java:93)
at com.qmetry.qaf.automation.step.DefaultObjectFactory.getObject(DefaultObjectFactory.java:60)
at com.qmetry.qaf.automation.step.ObjectFactory$Provider.getObject(ObjectFactory.java:48)
at com.qmetry.qaf.automation.step.JavaStep.getStepProvider(JavaStep.java:173)
at com.qmetry.qaf.automation.step.JavaStep.doExecute(JavaStep.java:137)
at com.qmetry.qaf.automation.step.BaseTestStep.execute(BaseTestStep.java:149)
at com.qmetry.qaf.automation.step.StringTestStep.execute(StringTestStep.java:128)
at com.qmetry.qaf.automation.step.client.Scenario.execute(Scenario.java:174)
at com.qmetry.qaf.automation.step.client.Scenario.scenario(Scenario.java:237)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:645)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1177)
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:756)
at org.testng.TestRunner.run(TestRunner.java:610)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:387)
at org.testng.SuiteRunner.access$000(SuiteRunner.java:39)
at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:421)
at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'AS-HQ5V9V3-L', ip: '192.168.10.82', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_202'
Driver info: driver.version: unknown
at com.qmetry.qaf.automation.ui.UiDriverFactory.getDriverObj(UiDriverFactory.java:263)
at com.qmetry.qaf.automation.ui.UiDriverFactory.access$800(UiDriverFactory.java:73)
at com.qmetry.qaf.automation.ui.UiDriverFactory$Browsers.standardConnect(UiDriverFactory.java:437)
... 50 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.qmetry.qaf.automation.ui.UiDriverFactory.getDriverObj(UiDriverFactory.java:261)
... 52 more
Caused by: org.openqa.selenium.SessionNotCreatedException: Unable to create a new remote session. Please check the server log for more details. Original error: com.ssts.pcloudy.exceptions.DeviceNotBookedException : Requested Device Full 'SAMSUNG_GalaxyF145G_Android_13.0.0_dd226' name not found/already booked. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 787 milliseconds
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'AS-HQ5V9V3-L', ip: '192.168.10.82', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_202'
Driver info: driver.version: AndroidDriver
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'AS-HQ5V9V3-L', ip: '192.168.10.82', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_202'
Driver info: driver.version: AndroidDriver
at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:208)
at io.appium.java_client.remote.AppiumCommandExecutor.createSession(AppiumCommandExecutor.java:217)
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:239)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:41)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
at io.appium.java_client.AppiumDriver.startSession(AppiumDriver.java:336)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
at io.appium.java_client.DefaultGenericMobileDriver.<init>(DefaultGenericMobileDriver.java:37)
at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:88)
at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:98)
at io.appium.java_client.android.AndroidDriver.<init>(AndroidDriver.java:94)
... 57 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:186)
... 70 more
Caused by: org.openqa.selenium.SessionNotCreatedException: com.ssts.pcloudy.exceptions.DeviceNotBookedException : Requested Device Full 'SAMSUNG_GalaxyF145G_Android_13.0.0_dd226' name not found/already booked. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 787 milliseconds
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'AS-HQ5V9V3-L', ip: '192.168.10.82', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_202'
Driver info: driver.version: AndroidDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$errorHandler$0(JsonWireProtocolResponse.java:54)
at org.openqa.selenium.remote.HandshakeResponse.lambda$getResponseFunction$0(HandshakeResponse.java:30)
at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:126)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:128)
... 75 more
Unable to create driver instance in 1st attempt with retry timeout of 0 seconds. You can check/set value of 'driver.init.retry.timeout' appropriately to set retry timeout on driver initialization failure.com/thoughtworks/selenium/CommandProcessor

Test ignored.
Preparing For Shut Down...
Preparing For Shut Down...
Result updator: Completed 1 Remaining 0 result to be update.

Process finished with exit code 0


pCloudy side of the observations:

The App gets opened however it throws the above error right after opening it. I believe some challenge with initiating a driver session and don't know why it again tries to make a new session within the ongoing one. The following is displayed in logs is misleading as I can see the device session happens on the LIVE testing window but as I mentioned above it throws it as it again tries to create a session with this device when an active session is ongoing and successfully created by QAF.

"Caused by: org.openqa.selenium.SessionNotCreatedException: Unable to create a new remote session. Please check the server log for more details. Original error: com.ssts.pcloudy.exceptions.DeviceNotBookedException : Requested Device Full 'SAMSUNG_GalaxyF145G_Android_13.0.0_dd226' name not found/already booked. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 787 milliseconds"

POM.XML
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.example</groupId>
<artifactId>NonPerfectoPOCProject</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>

<name>NonPerfectoPOCProject</name>
<url>http://maven.apache.org</url>


<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<sourceVersion>1.8</sourceVersion>
<targetVersion>1.8</targetVersion>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<testSuiteFile>src/main/resources/config/demo_web.xml</testSuiteFile>
<cukes.version>1.2.5</cukes.version>
<testng.version>6.10</testng.version>
<qaf.version>4.0.0-RC2</qaf.version>
<selenium.version>4.19.0</selenium.version>
<test.results.dir>test-results</test.results.dir>
<run.time>${maven.build.timestamp}</run.time>
<resource.dir>src/main/resources</resource.dir>
<output.dir>${test.results.dir}/${run.time}</output.dir>
<maven.build.timestamp.format>dd_MMM_yyyy_hh_mm_aa</maven.build.timestamp.format>
<testng.report.title>QAF Demo</testng.report.title>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<repositories>
<repository>
<id>qaf</id>
<url>https://qmetry.github.io/qaf/dist</url>
</repository>
<repository>
<id>jai</id>
<url>https://repository.jboss.org/nexus/content/repositories/thirdparty-releases</url>
</repository>
<repository>
<id>repo1.perfectomobile.com</id>
<url>https://repo1.perfectomobile.com/public/repositories/maven</url>
</repository>
</repositories>

<!--<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>-->

<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>${selenium.version}</version>
</dependency>
<dependency>
<groupId>com.quantum</groupId>
<artifactId>quantum-support</artifactId>
<version>1.23.0</version>
</dependency>
<dependency>
<groupId>com.qmetry</groupId>
<artifactId>qaf</artifactId>
<version>${qaf.version}</version>
</dependency>
<dependency>
<groupId>com.qmetry</groupId>
<artifactId>qaf-support</artifactId>
<version>${qaf.version}</version>
<exclusions>
<exclusion>
<groupId>com.qmetry</groupId>
<artifactId>qaf</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
<version>1.4.01</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>${cukes.version}</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.17.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.qmetry/qaf -->
<!-- <dependency>
<groupId>com.qmetry</groupId>
<artifactId>qaf</artifactId>
<version>3.1.0</version>
</dependency>-->
<!-- https://mvnrepository.com/artifact/com.aventstack/extentreports -->
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>4.0.9</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>7.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.17.1</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerVersion>${sourceVersion}</compilerVersion>
<source>${sourceVersion}</source>
<target>${targetVersion}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>test-compile</id>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<configuration>
<source>${sourceVersion}</source>
<target>${targetVersion}</target>
<showWeaveInfo>true</showWeaveInfo>
<complianceLevel>${sourceVersion}</complianceLevel>
<aspectLibraries>
<aspectLibrary>
<groupId>com.qmetry</groupId>
<artifactId>qaf</artifactId>
</aspectLibrary>
</aspectLibraries>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>${testSuiteFile}</suiteXmlFile>
</suiteXmlFiles>
<reportsDirectory>${test.results.dir}/${run.time}</reportsDirectory>
<systemPropertyVariables>
<org.uncommons.reportng.xml-dialect>testng</org.uncommons.reportng.xml-dialect>
<org.uncommons.reportng.escape-output>false</org.uncommons.reportng.escape-output>
<log4j.configuration>src/main/resources/log4j.properties</log4j.configuration>
<outputDir>${output.dir}</outputDir>
<test.results.dir>${output.dir}/html</test.results.dir>
<json.report.root.dir>${test.results.dir}</json.report.root.dir>
<json.report.dir>${output.dir}/json</json.report.dir>
<selenium.screenshots.dir>${output.dir}/img</selenium.screenshots.dir>
<selenium.screenshots.relative.path>../img</selenium.screenshots.relative.path>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
</project>


Happy to share the codebase and can jump on a call to discuss this further.

cjayswal

unread,
Apr 17, 2024, 2:08:10 PMApr 17
to qaf users
Refer exception:

Original error: com.ssts.pcloudy.exceptions.DeviceNotBookedException : Requested Device Full 'SAMSUNG_GalaxyF145G_Android_13.0.0_dd226' name not found/already booked

Rohit Vatta

unread,
Apr 17, 2024, 2:12:09 PMApr 17
to qaf-...@googlegroups.com
Yes I did mention in the email that it is not an error on pCloudy part as the device was available and we can see it running in live session. The exception came when the initial connection with the device happened and app got opened and right after that it throws this exception within same running execution. My assumption is that it agin tries to instantiate driver or getDriver but don’t know why?

You received this message because you are subscribed to a topic in the Google Groups "qaf users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/qaf-users/OtRw69KQbXI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to qaf-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/qaf-users/108c7bba-615a-415b-b019-c6f4ce4a2d43n%40googlegroups.com.

cjayswal

unread,
Apr 17, 2024, 2:36:46 PMApr 17
to qaf users
Quick question, if you are not using perfecto, why you have added quantum support dependency? you can try removing it.

Rohit Vatta

unread,
Apr 17, 2024, 3:17:18 PMApr 17
to qaf-...@googlegroups.com
Oh yes! Good catch, I will try tomorrow morning and will let you know.

Thanks for looking into this Chirag.

Reply all
Reply to author
Forward
0 new messages