appium+idea一个简单的项目

1、新建项目
appium+idea一个简单的项目
输入项目名称
appium+idea一个简单的项目
2、添加maven依赖



org.seleniumhq.selenium
selenium-java
2.53.1


commons-configuration
commons-configuration
1.9




org.seleniumhq.selenium
selenium-remote-driver
2.53.1


org.apache.poi
poi-ooxml
3.13

    <!-- https://mvnrepository.com/artifact/org.testng/testng -->

    <dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.9.9</version>
</dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <dependency>
        <groupId>net.sourceforge.jexcelapi</groupId>
        <artifactId>jxl</artifactId>
        <version>2.6.12</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>xml-apis</groupId>
        <artifactId>xml-apis</artifactId>
        <version>1.4.01</version>
    </dependency>
    <dependency>
        <groupId>com.codeborne</groupId>
        <artifactId>phantomjsdriver</artifactId>
        <version>1.2.1</version>
    </dependency>
    <dependency>
        <groupId>commons-configuration</groupId>
        <artifactId>commons-configuration</artifactId>
        <version>1.9</version>
    </dependency>
    <dependency>
        <groupId>com.thoughtworks.qdox</groupId>
        <artifactId>qdox</artifactId>
        <version>1.12.1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.google.inject</groupId>
        <artifactId>guice</artifactId>
        <version>3.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <!-- 经过测试 maven-compiler-plugin 插件版本请使用3.3,否则在jenkins上无法执行测试 -->
        <version>3.3</version>
        <type>maven-plugin</type>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.34</version>
    </dependency>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.9.10</version>
        <scope>test</scope>
    </dependency>
    <dependency>
    <groupId>io.appium</groupId>
    <artifactId>java-client</artifactId>
    <version>LATEST</version>
        <exclusions>
            <exclusion>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-java</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
    <groupId>com.saucelabs</groupId>
    <artifactId>sauce_junit</artifactId>
        <version>LATEST</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.141.59</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-remote-driver</artifactId>
        <version>3.141.59</version>
    </dependency>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.11</version>
    </dependency>
    <dependency>
        <groupId>io.appium</groupId>
        <artifactId>java-client</artifactId>
        <version>7.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.11</version>
    </dependency>

</dependencies>
<repositories>
<repository>
<id>saucelabs-repository</id>
<url>https://repository-saucelabs.forge.cloudbees.com/release</url>
<releases>
<enabled>true</enabled>
</releases>
    <snapshots>
        <enabled>true</enabled>
    </snapshots>
</repository>
</repositories>
<build>
    <!-- 新版本maven配合这个标签使用指定代码目录 -->
    <testSourceDirectory>src</testSourceDirectory>
    <resources>
        <resource>
            <directory>src</directory>
            <filtering>true</filtering>
        </resource>

        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>

    </resources>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <!-- 经过测试 maven-compiler-plugin 插件版本请使用3.3,否则在jenkins上无法执行测试 -->
            <version>3.3</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.18.1</version>
            <configuration>
                <!-- 解决用maven执行test时 日志乱码的问题,详见:http://www.cnblogs.com/discuss/archive/2010/10/27/1862225.html -->
                <argLine>-Dfile.encoding=UTF-8</argLine>
                <!-- 解决maven oom问题http://blog.****.net/e5945/article/details/7740904 -->
                <argLine>-Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=128m</argLine>
                <forkCount>0</forkCount>
                <suiteXmlFiles>
                    <suiteXmlFile>testng.xml</suiteXmlFile>
                </suiteXmlFiles>
                <!--定义maven运行测试生成的报表路径 -->
                <reportsDirectory>./result/test-report</reportsDirectory>
            </configuration>
        </plugin>


    </plugins>

</build>
3、测试代码如下:
import io.appium.java_client.AppiumDriver;

import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

public class test {
public AppiumDriver driver;
@BeforeClass
public void startTest() throws MalformedURLException {
File classpathRoot = new File(System.getProperty(“user.dir”));
File appDir = new File(classpathRoot, “src/app”);
File app = new File(appDir, “ContactManager.apk”);
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(“automationName”, “Appium”);
capabilities.setCapability(“platformName”,“Android”);
capabilities.setCapability(“deviceName”,“M95QACPCBDFEX”);
capabilities.setCapability(“platformVersion”, “7.1.1”);
capabilities.setCapability(“app”, app.getAbsolutePath());
capabilities.setCapability(“appPackage”, “com.example.android.contactmanager”);
capabilities.setCapability(“appActivity”, “.ContactManager”);
driver = new AndroidDriver(new URL(“http://127.0.0.1:4723/wd/hub”), capabilities);
}
@Test
public void addContact() {
WebElement el = driver.findElement(By.xpath(".//*[@text=‘Add Contact’]"));
el.click();
List textFieldsList = driver.findElementsByClassName(“android.widget.EditText”);
textFieldsList.get(0).sendKeys(“Some Name”);
textFieldsList.get(2).sendKeys("[email protected]");

    driver.findElementByXPath(".//*[@text='Save']").click();
}
@AfterClass
public void afterClass() {
    driver.quit();
}

}
4、配置Project Structure
appium+idea一个简单的项目
添加android SDK
appium+idea一个简单的项目
选择JDK和sdk
appium+idea一个简单的项目
将要测试的APK放在指定的目录
appium+idea一个简单的项目
5、连接真机运行项目
appium+idea一个简单的项目