当前位置: 首页 > news >正文

搭建appium的android环境

首先需要准备:

1、jdk(步骤不再啰嗦)

2、android SDK,下载地址:http://developer.android.com/sdk/index.html,下载sdk tools,可能需要FQ,提供一个国内下载地址:http://www.androiddevtools.cn/

3、appium,下载地址:http://appium.io/

4、nodejs,下载地址:https://nodejs.org/en/

5、Genymotion,下载地址:https://www.genymotion.com/#!/download(android模拟器,需要先注册帐号)

6、appium lib,下载地址:http://appium.io/downloads.html

上述软件都准备好后,则进入搭建步骤。

一、安装、配置

将上述软件依次安装。

1. android sdk安装完毕后,需要配置环境变量

新建ANDROID_HOME    D:\Program Files (x86)\Android\android-sdk

在PATH中添加:%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;

2. nodejs安装完毕后,需要配置环境变量

在PATH中添加:D:\Program Files\nodejs;

3.appium安装完毕后,需要配置环境变量

D:\Program Files (x86)\Appium\node_modules\.bin;

4.配置好后,启动cmd,

输入node -v,查看node安装版本

输入appium-doctor检查appium的安装环境是否成功,如下图:

二、使用eclipse

1、启动eclipse分别导入selenium-server-standalone-2.48.2.jar和java-client-3.3.0.jar(即appium jar)

2、就可以编写程序啦。

三、准备Androidsdk所需要工具,下载地址在http://www.androiddevtools.cn/

platform-tools
这是 adb, fastboot 等工具包。把解压出来的 platform-tools 文件夹放在 android sdk 根目录下,并把 adb所在的目录添加到系统 PATH 路径里,即可在命令行里直接访问了 adb, fastboot 等工具

android-5.1
这是Android开发所需的Build-Tools,下载并解压后,将解压出的整个文件夹复制或者移动到 your sdk 路径/build-tools 文件夹即可

android-21
这是Android开发所需的sdk,下载并解压后,将解压出的整个文件夹复制或者移动到 your sdk 路径/platforms文件夹,然后打开SDK Manager,打开 Tools(工具)菜单选择 Options(选项)菜单项打开Android SDK Manager Setting对话框,点击 Clear Cache(清除缓存)按钮,然后重启Eclipse(或Android Studio)和SDK Manager。

system-images
这是在创建模拟器时需要的system image,也就是在创建模拟器时 CPU/ABI项需要选择的,下载并解压后,将解压出的整个文件夹复制或者移动到 your sdk 路径/system-images文件夹下即可, 如果没有 system-images目录就先创建此文件夹,然后打开SDK Manager,打开 Tools(工具)菜单选择 Options(选项)菜单项打开Android SDK Manager Setting对话框,点击 Clear Cache(清除缓存)按钮,然后重启Eclipse(或Android Studio)和SDK Manager。

 

四、利用工具识别待测apk的相关信息

1、启动appium安装目录下的appium.exe,按如下操作

2、启动genymotion,创建一个android模拟器,Android版本根据需要自己选择

3、启动Android模拟器,并启动待测app,如果安装app失败,则需要下载Genymotion-ARM-Translation_v1.1.zip,

4、打开android sdk安装目录下的Android\android-sdk\tools\uiautomatorviewer.bat。

 5、编写测试代码

package com.test;

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

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import io.appium.java_client.android.AndroidDriver;

/** 
 * @author QiaoJiafei 
 * @version 创建时间:2016年1月11日 下午3:19:02 
 * 类说明 
 */
public class FirstTest {
     private  AndroidDriver  driver;
     
        @BeforeMethod(alwaysRun=true)
        public void setUp() throws Exception {
            // set up appium
           File app = new File("appsoft", "ContactManager.apk");
            DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
            capabilities.setCapability("platformName", "Android");
            capabilities.setCapability("deviceName","Android Emulator");
            capabilities.setCapability("platformVersion", "5.0");
            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);
        }
     
        @AfterMethod(alwaysRun=true)
        public void tearDown() throws Exception {
            driver.quit();
        }
     
        @Test
        public void addContact(){
            WebElement el = driver.findElement(By.name("Add Contact"));
            el.click();
            List<WebElement> textFieldsList = driver.findElementsByClassName("android.widget.EditText");
            textFieldsList.get(0).sendKeys("testname");
            textFieldsList.get(1).sendKeys("10010");
            textFieldsList.get(2).sendKeys("test@163.com");
            driver.swipe(100, 500, 100, 100, 2);
            driver.findElementByName("Save").click();
        }
}

6、打开cmd,输入appium,或者打开appium.exe,点击启动

7、运行测试代码即可

转载于:https://www.cnblogs.com/dengshihuang/p/8026494.html

相关文章:

  • six.moves的用法
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • Kotlin的LogUtil
  • DotNetNuke media module使用方法
  • 关于 typedef void * POINTER_64 PVOID64;问题
  • iOS动手做一个直播(代码篇)
  • videoJs实现点击按钮播放切换视频
  • [安卓] 8、VIEW和SURFACEVIEW游戏框架
  • JavaScript经典代码【二】【javascript判断用户点了鼠标左键还是右键】
  • iOS快速集成支付宝
  • Commons.net FTPClient 上传文件
  • AIO - 概述
  • Azure Redis Cache (5) Redis Cache Cluster集群模式
  • 白盒测试
  • SQL Server 2008 部分改变
  • extract-text-webpack-plugin用法
  • flask接收请求并推入栈
  • HomeBrew常规使用教程
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Theano - 导数
  • 给github项目添加CI badge
  • 前端学习笔记之观察者模式
  • 前嗅ForeSpider教程:创建模板
  • 嵌入式文件系统
  • 少走弯路,给Java 1~5 年程序员的建议
  • 树莓派 - 使用须知
  • 原生js练习题---第五课
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • ​Linux·i2c驱动架构​
  • #stm32整理(一)flash读写
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • ${factoryList }后面有空格不影响
  • (pojstep1.3.1)1017(构造法模拟)
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (利用IDEA+Maven)定制属于自己的jar包
  • (四)linux文件内容查看
  • (转)Scala的“=”符号简介
  • (转)重识new
  • .“空心村”成因分析及解决对策122344
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .Net CF下精确的计时器
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET Micro Framework初体验(二)
  • .net连接MySQL的方法
  • @angular/cli项目构建--Dynamic.Form
  • @Not - Empty-Null-Blank
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [ 蓝桥杯Web真题 ]-布局切换
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [Angular] 笔记 20:NgContent
  • [BROADCASTING]tensor的扩散机制
  • [BUUCTF 2018]Online Tool
  • [C#]获取指定文件夹下的所有文件名(递归)
  • [C++数据结构](31)哈夫曼树,哈夫曼编码与解码
  • [DevOps云实践] 彻底删除AWS云资源