; ;

Appuim项目实战—项目运行

  1. 获取app基础的项目

在调用项目时你需要用到序列号和IP,我先罗列出来

.我有用使用无线连接后,所以会显示两个设备都已经连接上了,实际连接的就1个设备,无线通过设备号连接,有线就通过IP连接

  1. Appuim捕获控件

    使用的是sdk下自带的工具uiautomatorviewer工具,使用方法如下

    1.打开app,手机页面停留在要捕获的页面,点击按钮进行捕获需要捕获使用工具

     

     

    2.在重新进行选择的,也还是点击Android的图标

    3.成功后渲染另外一个页面

    右边的id和其他定位方式就是我们需要的

3.代码编写

项目是个maven项目,目录结构是这样

目前主要是在rosewholeAPP.java进行编写

1.POM配置文件如下:

 
  1. <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">  
  2.   <modelVersion>4.0.0</modelVersion>  
  3.   <groupId>appuimtest</groupId>  
  4.   <artifactId>appuimtest</artifactId>  
  5.   <version>0.0.1-SNAPSHOT</version>  
  6.    <dependencies>  
  7.          <dependency>  
  8.             <groupId>io.appium</groupId>  
  9.             <artifactId>java-client</artifactId>  
  10.             <!-- <version>4.9.0</version> -->  
  11.             <version>5.0.0-BETA3</version>  
  12.         </dependency>   
  13.         <!-- 配置selenium依赖 -->  
  14.         <dependency>  
  15.             <groupId>org.seleniumhq.selenium</groupId>  
  16.             <artifactId>selenium-java</artifactId>  
  17.             <version>3.0.1</version>  
  18.         </dependency>  
  19.         <!-- 配置testng依赖 -->  
  20.         <dependency>  
  21.             <groupId>org.testng</groupId>  
  22.             <artifactId>testng</artifactId>  
  23.             <version>6.9.8</version>  
  24.         </dependency>  
  25.         <!-- 配置log4j依赖 -->  
  26.         <dependency>  
  27.             <groupId>log4j</groupId>  
  28.             <artifactId>log4j</artifactId>  
  29.             <version>1.2.17</version>  
  30.         </dependency>  
  31.     </dependencies>  
  32.   <build>  
  33.     <sourceDirectory>src</sourceDirectory>  
  34.     <plugins>  
  35.       <plugin>  
  36.         <artifactId>maven-compiler-plugin</artifactId>  
  37.         <version>3.3</version>  
  38.         <configuration>  
  39.           <source>1.8</source>  
  40.           <target>1.8</target>  
  41.         </configuration>  
  42.       </plugin>  
  43.     </plugins>  
  44.   </build>  
  45. </project>  

2.app启动并进行登录

package com.test.appuimtest;  
import java.net.MalformedURLException;  
import java.net.URL;  
import org.openqa.selenium.WebElement;  
import org.openqa.selenium.remote.DesiredCapabilities;  
import org.testng.Assert;  
import org.testng.annotations.AfterClass;  
import org.testng.annotations.BeforeClass;  
import org.testng.annotations.Test;  
import io.appium.java_client.android.AndroidDriver;  
public class rosewholeAPP {  
     public AndroidDriver driver;     
    @SuppressWarnings("rawtypes")  
    @BeforeClass  
    public void setUp(){      
        //1.启动appuim服务  
        String setserives="cmd /c appium  -p 4788 -bp 4734 --session-override --chromedriver-port 9525 -U 10.37.2.151:5555 >C://aa//4799.txt";  
        try {  
            //启动连接,如果有连接手机可以不用这个连接  
            Runtime.getRuntime().exec("adb connect 10.37.2.151 ");    
                   //执行appuim服务的启动  
            Runtime.getRuntime().exec(setserives);  
            System.out.println("启动appuim成功");  
        } catch (Exception e1) {  
            e1.printStackTrace();  
            System.out.println("启动appuim失败");  
        }   
     DesiredCapabilities capabilities=new DesiredCapabilities();  
      capabilities.setCapability("deviceName", "472306b");//设备名称  
      capabilities.setCapability("automationName","Appium");  //  
         capabilities.setCapability("platformName","Android");  //设备名称  
        capabilities.setCapability("platformVersion","6.0.1"); //手机的Android版本型号  
            
        //配置测试apk    
        capabilities.setCapability("app","E:\\workspace\\appuimtest\\apps\\com.globalegrow.v1.5_release.apk");//app测试地址,目前是写死了app地址  
        capabilities.setCapability("appPackage", "com.globalegrow.app.rosewholesale"); //测试包名 ,包名可以用appt查看呢  
        capabilities.setCapability("appActivity", "com.globalegrow.app.rosegal.view.activity.system.SplashActivity");  //启动的activity  
       // capabilities.setCapability("sessionOverride", true);    //每次启动时覆盖session,否则第二次后运行会报错不能新建session    
        capabilities.setCapability("unicodeKeyboard", true);    //设置键盘    
        capabilities.setCapability("resetKeyboard", true);     //设置默认键盘为appium的键盘    
        System.out.println("capabilities信息:"+capabilities.toString());  
        try {  
            driver = new AndroidDriver(new URL("http://localhost:4788/wd/hub"), capabilities);  
        } catch (MalformedURLException e) {  
            e.printStackTrace();  
        }    
    }  
    @Test    
    public void loginWithMicroBlog() throws InterruptedException {    
        System.out.println("正常执行");    
        Thread.sleep(4000);  
        //使用ID  
        driver.findElementById("com.globalegrow.app.rosewholesale:id/account_text_view").click();    
        driver.findElementById("com.globalegrow.app.rosewholesale:id/email_edittext").sendKeys("zhang@qq.com");    
        driver.findElementById("com.globalegrow.app.rosewholesale:id/password_edittext").sendKeys("123456");    
        driver.findElementById("com.globalegrow.app.rosewholesale:id/sign_in_button").click();    
            
        WebElement count=driver.findElementById("com.globalegrow.app.rosewholesale:id/account_text_view");  
        if(count!=null){  
            Assert.assertTrue(true);  
            System.out.println("登录成功");  
        }  
    }    
      
    @AfterClass    
    public void tearDown() throws Exception {    
        System.out.println("driver关闭");  
         driver.quit();    
    }

  

posted @ 2017-09-13 17:35  做梦的人-  阅读(1062)  评论(0)    收藏  举报