前言

  Appium 作为移动端自动化测试工具在业界非常流行,特别是在当前移动互联网背景下,很多公司基于此框架来开展自动化测试。但 appium 的环境配置相对 selenium 来说复杂的多,让很多同学望而生畏。本文介绍 appium + python 基于windows 平台来搭建环境。其他平台的搭建大同小异。

环境准备

  • jdk1.8
  • node
  • Appium
  • android-sdk
  • python
  • Appium-Python-Client

一、安装 jdk,配置环境变量

1.下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2.安装过程就不多说了,配置好环境变量后,检查是否成功:

二、安装 Appium

方法一:

1.安装 node.js, 下载地址:http://nodejs.cn/download/

2.检查下是否安装成功

3.然后使用命令安装: npm install -g appium

方法二:

1.下载地址:http://appium.io/

2.安装后配置环境变量:把 Appium 安装主目录 C:\Program Files\Appium 添加到系统变量 Path

3.检查下,能开启 Appium代表成功:

三、安装 android-sdk

1.下载地址:https://www.androiddevtools.cn/  (也可以直接安装 android studio 开发工具,内部集成了android-sdk)

2.解压后运行 SDK Manager.exe

3.下载 build-tool 工具,后面会用到 aapt 命令。

4.配置环境变量:

1)新增系统变量名 ANDROID_HOME ,变量值:D:\android-sdk-windows (android-sdk 主目录)

2)系统变量 Path 添加 adb 和 aapt 变量值。

adb 变量值:D:\android-sdk-windows\platform-tools

aapt 变量值:D:\android-sdk-windows\build-tools\29.0.2

5.检查环境变量配置是否成功:

四、安装 appium-doctor

1.最新版的 Appium 不带 appium-doctor,所以需要自己下载

2.cmd 安装命令:npm install -g appium-doctor (参数 -g 设置 appium-doctor 环境变量)

3.运行 appium-doctor 检查 appium 运行所需的依赖和环境变量(当然比较自信的同学也可以跳过这个步骤,非必要步骤哈!)

五、安装 python

1.下载地址:https://www.python.org/

2.安装过程就不说了,傻瓜式安装。

六、安装 Appium-Python-Client

使用 python 的 类库管理工具 pip,cmd输入:pip3 install Appium-Python-Client

实例运用

一、开启模拟器

1.运行模拟器可以使用 android 自带的,我这里用的是 Genymotion 。我为什么要用Genymotion ,当然是运行速度更快啦,哈哈!如下图

二、运行 Appium

1.cmd 运行命令 appium 。(这里有个问题 ,手动启用 appium,运行脚本的时候会报 Original error: Could not find 'adb.exe' in PATH,但是 adb 环境变量是配置成功的。暂不清楚是什么原因)

2.打开界面后点击“Start Server”,Appium 开始监听。

三、aapt命令 获取apk包名

方法一:

1.aapt 命令可以获取包的详细信息,具体用法:aapt dump badging xxx/xxx/yy.apk      然后找到 PackageName

2.接着上面找到 launcherActivity

方法二:(此方法在appium最新版本 中出现部分非 android 原生页面加载不出来的情况,慎用!)

1.将包安装在模拟器(或真机)上,运行命令:adb shell getprop ro.build.version.release(获取android版本号)

2.获取包名和当前页面信息:adb shell dumpsys window | findstr mCurrentFocus(注意:我这里打开的是首页,下面代码启动app后会直接跳过引导页进入首页。这样比较方便,进入页面直接测试)

四、adb 获取 device name

1.cmd 输入命令:adb devices

五、运行一段脚本

运行如下测试代码,参数中 deviceName、appPackage、appActivity 的值上文已经获取过了。app 首页被调起代表成功:

from appium import webdriver

desired_caps = {

                'platformName': 'Android',

                'deviceName': '192.168.41.101:5555',

                'platformVersion': '9.0',

                # apk包名

                'appPackage': 'com.gem.tastyfood',

                # apk的launcherActivity

                'appActivity': 'com.gem.tastyfood.LaunchActivity'

                }

# Remote 地址在 Appuim 里找
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

六、定位元素

1.定位元素可以通过 appium 工具

2.填写相关上文获取的参数,点击 Start Session

3.进入元素定位界面,然后获取你想要的元素。

Appium 环境配置的更多相关文章

  1. Appium环境配置

    一.JDK下载.安装及其环境配置 1.下载.安装略过…… 2.环境配置,以jdk-8u45为例,默认安装在 C:\Program Files\Java\jdk1.8.0_45\路径下. 下面设置环境变 ...

  2. Appium环境配置(一)

    一:环境准备(Windows 7版本 64位系统) 1.jdk1.6.0 (64位) 2.android-sdk 3.appium 4.Node.js:node-v8.11.1 5.Appium-Py ...

  3. mac下Appium环境配置

    一.Appium环境搭建 1.xcode(需要OS X版本支持): 下载对应版本的xcode(支持对应手机系统),解压,拖入应用程序. xcode下载地址:https://developer.appl ...

  4. Appium 环境配置(sdk)

    1,jdk环境配置 参见jdk环境配置:https://www.cnblogs.com/changpuyi/p/8659545.html 2,sdk环境的配置 前提已经下载,解压adt-bundle- ...

  5. app自动化测试环境配置:adb环境配置、monkey环境配置、appium环境配置大全

    1. 安装jdk 2. 安装配置Andriod sdk 安装Andriod sdk前首先需要安装配置好jdk环境. 然后安装Android sdk 安装完成后需要配置环境变量:ANDROID_HOME ...

  6. 1.python+appium环境配置

    环境部署 本博客以32位的Windows 7操作系统为例介绍Appium+Python的环境搭建步骤 1.安装Node.js 访问 https://nodejs.org/en/download/,下载 ...

  7. appium环境配置和一个例子

    最近觉得appium挺火的,看了一些资料,本来想使用npm在线安装,遇见各种问题,先简单说一下: 在cmd窗口中使用命令:npm install -g appium安装,报无python的error, ...

  8. 移动端UI自动化Appium测试——Windows系统Appium环境配置

    1.安装JDK,官网下载即可,这里用的1.8,环境变量配置 2.安装Android sdk,API >= 17,环境变量配置 3.安装Nodejs,官网http://nodejs.org/dow ...

  9. Appium环境配置(二)

    一.使用Eclipse直接创建案例工程 1.打开Eclipse,[File]-->[New]-->[Project] 2.选择[Java Project]-->[Next] 3.输入 ...

随机推荐

  1. jenkins支持git分支发布

    https://blog.csdn.net/wc1695040842/article/details/102228804 核心就是需要安装一个Git Parameter 的插件结合使用. 如果同时有多 ...

  2. javascript刷新当前页面的几种方式

    这里总结一下JavaScript刷新当前页面的几种方式. 1.history对象. history.go(0); 2.location对象. location.reload(); location = ...

  3. C#数组2(多维数组)

    using System; namespace ConsoleApp3 { struct WuGong { public string Name; public int Attack; } class ...

  4. C#中 ??、 ?、 ?: 、?.、?[ ] 问号各组合含义

    1. 可空类型修饰符(?) 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; 是正确的,int i=null; 编译器就会报错.为了使值类型也 ...

  5. git clone和git pull的区别

    1.需不需要本地文件夹是仓库 git clone是将整个工程复制下来所以,不需要本地是仓库(没有.git文件夹)   git clone git pull需要先初始化本地文件夹文一个仓库   git ...

  6. IOC控制反转、Unity简介

    参考博客地址: Unity系列文章,推荐:http://www.cnblogs.com/qqlin/archive/2012/10/16/2717964.html https://www.cnblog ...

  7. springmvc学习笔记二:重定向,拦截器,参数绑定

    Controller方法返回值 返回ModelAndView controller方法中定义ModelAndView对象并返回,对象中可添加model数据.指定view. 返回void 在Contro ...

  8. uni-app聊天室|vue+uniapp仿微信聊天实例|uniapp仿微信App界面

    一.介绍 运用UniApp+Vue+Vuex+swiper+uniPop等技术开发的仿微信原生App聊天室|仿微信聊天界面实例项目uniapp-chatroom,实现了发送图文消息.表情(gif图), ...

  9. 【转载】Gradle for Android 第六篇( 测试)

    由于现阶段Android开发趋于敏捷开发,再加上国内大大小小的互联网公司都在做app,导致很多这会是一个系列,所以如果你看完这篇文章,请看下列文章: 开发人员对单元测试没有基本的概念,但是本篇博文不会 ...

  10. 【微信小程序】e.currentTarget和e.target

    什么是事件 事件是视图层到逻辑层的通讯方式. 事件可以将用户的行为反馈到逻辑层进行处理. 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数. 事件对象可以携带额外信息,如 id ...