热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:Appium环境配置

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Appium环境配置相关的知识,希望对你有一定的参考价值。前言Ap

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Appium 环境配置相关的知识,希望对你有一定的参考价值。




前言

  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.进入元素定位界面,然后获取你想要的元素。

 



推荐阅读
  • RN即ReactNative基于React框架针对移动端的跨平台框架,在学习RN前建议最好熟悉下html,css,js,当然如果比较急,那就直接上手吧,毕竟用学习前面基础的时间,R ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 前言:原本纠结于Web模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中ev ... [详细]
  • 前言:原本纠结于Web 模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中eval函数。虽然eval函 ... [详细]
  • Final关键字的含义及用法详解
    本文详细介绍了Java中final关键字的含义和用法。final关键字可以修饰非抽象类、非抽象类成员方法和变量。final类不能被继承,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。文章还讨论了final类和final方法的应用场景,以及使用final方法的两个原因:锁定方法防止修改和提高执行效率。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • intellij idea的安装与使用(保姆级教程)
    intellijidea的安装与使用(保姆级教程)IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(gi ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 本文介绍了Android平台各个版本的API级别、版本号以及平台亮点,从Android 1.0到Android 10.0,共涵盖了多个版本的特点和发展历程。详细内容请参考https://developer.android.google.cn/guide/topics/manifest/uses-sdk-element.html。 ... [详细]
  • JavaScript和Python是用于构建各种应用程序的两种有影响力的编程语言。尽管JavaScript多年来一直是占主导地位的编程语言,但Python的迅猛发展有 ... [详细]
author-avatar
幸运幸福摩天轮的世界
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有