如何获取用于配置AWS设备场的Appium的* -tests.jar?
问题描述:
我在eclipse中创建了一个maven项目。我尝试的一个示例代码是在我的物理设备上正常工作。要将我的测试用例上传到AW控制台,需要这个* -tests.jar文件。但是,这个文件是不是在我的项目创造如何获取用于配置AWS设备场的Appium的* -tests.jar?
项目结构如下
源代码,我想也附在下面
基类
package ********;
import io.appium.java_client.android.AndroidDriver;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.CapabilityType;
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;
public class ************* {
protected AndroidDriver driver;
protected WebDriverWait wait;
//before Test Annotation makes a java function to run every time before a TestNG test case
@BeforeTest
protected void createAppiumDriver() throws MalformedURLException, InterruptedException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "ABCDEF");
capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");
capabilities.setCapability(CapabilityType.VERSION, "5.0");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("appPackage", "**********);
capabilities.setCapability("appActivity", "********");
capabilities.setCapability("unicodekeyboard", true);
capabilities.setCapability("resetkeyboard", true);
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
WebDriverWait wait = new WebDriverWait(driver, 300);
wait.until(ExpectedConditions.elementToBeClickable(By.className("android.widget.FrameLayout")));
}
//After Test Annotation makes a java function to run every time after a TestNG test case
@AfterTest
public void afterTest(){
//quit the driver
driver.quit();
}
}
给出
Screen类
package **********;
import io.appium.java_client.MobileBy;
import org.openqa.selenium.By;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.testng.annotations.Test;
public class QuickPay extends ************ {
/*--------------------------------Enter pin Starts---------------------------------*/
//Enter 4 digit pin to login
@Test
public void T4a_Login() {
driver.findElement(By.xpath("//android.view.View[contains(@resource-id,'ext-button-1')]")).sendKeys("1234");
}
/*--------------------------------Enter pin Ends---------------------------------*/
/*QuickPay Starts*/
/*--------------------------------Quick pay to Federal Bank Account starts---------------------------------*/
//Click on quick pay
@Test
public void T5a_QuickpayF() {
driver.findElement(By.xpath("//android.view.View[contains(@resource-id,'ext-button-30')]")).click();
}
//Enter account number , Amount and click quick pay
@Test
public void T5b_QuickpayF() {
driver.findElement(By.xpath("//android.widget.EditText[contains(@resource-id,'ext-element-229')]")).sendKeys("10015000301404");
driver.findElement(By.xpath("//android.widget.EditText[contains(@resource-id,'ext-element-236')]")).sendKeys("50");
driver.hideKeyboard();
driver.findElement(By.xpath("//android.view.View[contains(@resource-id,'ext-button-34')]")).click();
}
//Click on confirm button
@Test
public void T5c_QuickpayF() {
driver.findElement(By.xpath("//android.view.View[contains(@resource-id,'ext-button-38') and @index='0']")).click();
}
//Enter pin for Quick paya-Federal bank
@Test
public void T5d_QuickpayF() {
driver.findElement(By.xpath("//android.view.View[contains(@resource-id,'ext-button-45') and @index='1']")).click();
driver.findElement(By.xpath("//android.view.View[contains(@resource-id,'ext-button-46') and @index='2']")).click();
driver.findElement(By.xpath("//android.view.View[contains(@resource-id,'ext-button-47') and @index='3']")).click();
driver.findElement(By.xpath("//android.view.View[contains(@resource-id,'ext-button-48') and @index='4']")).click();
}
//Click on home for redirect to Home page
@Test
public void T5e_QuickpayF() {
System.out.println("testtt");
driver.findElement(By.xpath("//android.view.View[contains(@resource-id,'ext-button-60')and @index='0']")).click();
System.out.println("rt");
}
/*--------------------------------Quick pay to Federal Bank Account Ends---------------------------------*/
}
**PoM.xml**
<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>com.aws.appium</groupId>
<artifactId>appium-android-test</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<properties>
<appium.version>3.3.0</appium.version>
<testng.version>6.9.10</testng.version>
</properties>
<dependencies>
<!-- Appium -->
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>${appium.version}</version>
</dependency>
<!-- testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
答
如果键入:
mvn -h
你会得到帮助页面的Maven打印到控制台。重点关注:
usage: mvn [options] [<goal(s)>] [<phase(s)>]
试图在此之后:
mvn -DskipTests package
呀它的工作我尝试以下步骤.. Thankzzzz – APJ
漂亮,开心一点。继续 – Emna
可以请你帮我解释一下关于Appium脚本的疑问 1.我上面试过的脚本是用正确的方式吗? 2.完成quickpay后,我想要做下一个场景,那么如何重定向到下一个课程来做下一个场景? – APJ