Unable to run the appium script using maven test


#1

Hi,
I am trying to run the appium script using maven test but not getting successful.
Below is the eclipse logs:
[INFO] Scanning for projects…
[INFO]
[INFO] ------------------------< GCR:FrameworkGCReddy >------------------------
[INFO] Building FrameworkGCReddy 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[WARNING] The POM for org.apache.maven.doxia:doxia-sink-api:jar:1.0-alpha-10 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[INFO]
[INFO] — maven-resources-plugin:2.6:resources (default-resources) @ FrameworkGCReddy —
[INFO] Using ‘UTF-8’ encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] — maven-compiler-plugin:3.1:compile (default-compile) @ FrameworkGCReddy —
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] — maven-resources-plugin:2.6:testResources (default-testResources) @ FrameworkGCReddy —
[INFO] Using ‘UTF-8’ encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] — maven-compiler-plugin:3.1:testCompile (default-testCompile) @ FrameworkGCReddy —
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 7 source files to D:\Users\kdabbara\Desktop\Kamesh\Testing\workspace\FrameworkGCReddy\FrameworkGCReddy\target\test-classes
[INFO]
[INFO] — maven-surefire-plugin:2.12.4:test (default-test) @ FrameworkGCReddy —
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.350 s
[INFO] Finished at: 2018-08-08T16:51:22+05:30
[INFO] ------------------------------------------------------------------------

POM.XML

4.0.0

<groupId>GCR</groupId>
<artifactId>FrameworkGCReddy</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

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

<properties>
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	<appium.version>3.3.0</appium.version>
	<testng.version>6.9.10</testng.version>
</properties>

<dependencies>

	<!-- https://mvnrepository.com/artifact/org.testng/testng -->
	<dependency>
		<groupId>org.testng</groupId>
		<artifactId>testng</artifactId>
		<version>6.13.1</version>
		<scope>test</scope>
	</dependency>

	<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-server -->
	<dependency>
		<groupId>org.seleniumhq.selenium</groupId>
		<artifactId>selenium-server</artifactId>
		<version>3.11.0</version>
	</dependency>

	<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-surefire-plugin -->
	<dependency>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-surefire-plugin</artifactId>
		<version>2.20</version>
	</dependency>

	<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin -->
	<dependency>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-compiler-plugin</artifactId>
		<version>3.6.0</version>
	</dependency>

	<!-- https://mvnrepository.com/artifact/io.appium/java-client -->
	<dependency>
		<groupId>io.appium</groupId>
		<artifactId>java-client</artifactId>
		<version>6.0.0-BETA1</version>
	</dependency>

	<dependency>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-failsafe-plugin</artifactId>
		<version>2.12</version>
	</dependency>

</dependencies>

Appium script:
package TestScripts;

import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.remote.MobileCapabilityType;

public class SnapItSample
{
public static DesiredCapabilities cap;
public static AndroidDriver driver;
public static WebDriverWait wait;

	@BeforeTest
	public void before() throws MalformedURLException {
		System.out.println("Hello");
		
		cap = new DesiredCapabilities();
		cap.setCapability(MobileCapabilityType.DEVICE_NAME, "VIBE K5 Note");
		//cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Nexus5X");
		cap.setCapability(MobileCapabilityType.PLATFORM_NAME,"Android");	
		cap.setCapability(MobileCapabilityType.PLATFORM_VERSION,"6.0");
		//cap.setCapability(MobileCapabilityType.APP,fs.getAbsolutePath());
		
		cap.setCapability("appPackage","com.orgname.AusPost");
		cap.setCapability("appActivity", "com.orgname.AusPost.SnapIt");
		cap.setCapability(MobileCapabilityType.NO_RESET, true);
		cap.setCapability(MobileCapabilityType.FULL_RESET, false);
			
		driver = new AndroidDriver<AndroidElement>(new URL("http://127.0.0.1:4723/wd/hub"),cap);
		
	}
	@Test
	public void snapItTest() throws MalformedURLException, InterruptedException
	{
	// TODO Auto-generated method stub
				

	
		AndroidElement custEnq = driver.findElement(By.xpath("//android.widget.TextView[@text='Customer enquiry']"));
		WebDriverWait wait = new WebDriverWait(driver,5);
		wait.until(ExpectedConditions.elementToBeClickable(custEnq));      
		Thread.sleep(3000);
		custEnq.click();
	}
	@AfterTest
	  public void afterClass() {
		  	driver.quit();
	  }

}


#2

Make sure to keep your test classes under
src/test/java

To run the tests in the Maven lifecycle, Right-click on the Project folder and select Run As | Maven test. Maven will execute test from the project.

Alternatively, you navigate to the location of the POM.xml in Command Prompt or Terminal and then run
mvn clean test

If you are not able to get the test to work, Please follow this guide
https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html