Appium是一个开源的自动化测试框架,支持跨平台,支持多种编程语言,可用于原生,混合和移动web应用程序,使用webdriver驱动ios,android应用程序、那么为了学习app自动化测试首要任务确定就是搭建测试开发环境, 所以在这里记一次搭建Appium自动化测试环境的完整过程,文章较长,须要花费必定的时间,请耐心阅读,若是文中有什么错误请指正html
JDK环境能够看我以前安装Jenkins时的随笔https://www.cnblogs.com/linuxchao/p/linuxchao-jenkins-setup.html,这里须要注意一点尽可能安装jdk 1.8,防止后面连接手机失败node
安装nodejs以前,咱们须要知道,为何要安装nodejs? 由于appium是nodejs实现的,node至关于appium的解释器python
Node.js下载地址:https://nodejs.org/en/download/current/linux
因为个人电脑是windows 64位的系统,这里我直接下载windows 64位的msi程序文件android
下载完成后直接双击安装便可(傻瓜式的安装),因此我就不说具体步骤了,安装后,检查是否安装成功ios
cmd终端输入第一个命令 node -version,输出下面的信息git
接着再输入 npm 命令,输出下面的信息github
ok, 这说明node.js已经安装成功web
不知道你作过或者学习过selenium没有,这里的appium server 至关于 selenium中的浏览器驱动程序,当启动浏览器驱动时会初始化一个服务器,绑定本机的地址和端口,那么Appium server也同样,当启动appium时一样会初始化一个服务器绑定本地的地址和端口npm
安装server有两种方式
使用命令 npm install -g appium 安装,不过这种安装方式比较慢(我用这种方式没安装成功,可能网速不行,报了一些错误,比较尴尬)
这种安装方式仍是比较快的,可是下载安装包也比较慢,好歹安装没出现什么问题
下载地址
https://bitbucket.org/appium/appium.app/downloads/(modify at: 2019.08.12-这个地址不要用了,我后来才发现里面的版本并非最新的,是很老的版本,对后期定位app中的toast会失败)
https://github.com/appium/appium-desktop/releases (这个是官网的地址,按下图下载最新的安装便可)
下载完成以后,直接双击安装
这里我也不叙述安装过程了,一样的傻瓜式安装,默认安装目录: C:\Users\v-xug\AppData\Local\Programs\Appium
appium安装目录下的node_modules\.bin添加到系统环境变量(添加放看后面吧)
注:老版本的有这个目录,新版的我还真没找到这个目录,因此也不须要配置环境变量了-modify at: 2019.08.12
安装完成后可以成功打开桌面的appium程序,说明安装过程暂时没什么问题
下载地址: https://www.androiddevtools.cn/
下载完成后,直接双击安装便可
安装完成后,找到你的安装目录,并找到SDK-manager工具双击打开
本身根据需求选择对应的sdk build-tools,Android SDK Platform-tools及api,api我选择的API 22(5.1.1)版本
Android SDK Platform-tools, SDK build-tools我这里是直接下载安装的最新版本,若是你下载的版本比较低的话,后面连接模拟器或者真机时可能会连接不上
点击上图中的[Install packages],弹出下面的页面,点击Accept License后安装,等待全部包安装完成(所需时间比较久,请耐心等待)
新建系统变量
ANDROID_HOME=D:\Program Files\Android\android-sdk变量及值(SDK的安装目录)
添加系统变量
把platform-tools及tools添加到系统环境变量,变量值(路径)之间使用分号隔开,两个变量值分别为:%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;或者直接添加绝对路径
配置完环境变量以后,咱们就可使用adb命令了
咱们使用python开发appium的自动化测试脚本,确定离不开appium的一些api库,因此说这里的appium 客户端就是python代码使用的库,用来链接appium server 及操做app
安装appium client 就很是简单了,只要你已经配置好了python环境,就能够直接使用pip安装了,cmd 执行pipi install Appium-Python-Client便可完成安装,输入下图命令不报错,表明已经安装成功
注:这里我只在老版本的appium中找到 appium-doctor这个工具, 新版的并无找到,那怎么办呢?
打开CMD执行命令 npm install -g appium-doctor 安装appium-doctor
如今们就可使用appium-doctor命令检查整个环境是否有问题了
cmd执行 appium-doctor命令,如何你的输出信息和个人同样那么恭喜你环境搭建成功了
全部的环境已经安装完成,接下来就是连接手机模拟器或者真机了,我这里使用的是夜神模拟器,下载地址:https://www.yeshen.com/
下载完成后直接安装,安装完成后,桌面会生成两个图标,夜神模拟器和夜神多开器
点击模拟器的设置-点击关于平板电脑-点击版本号(会有提示点击几回打开开发者模式)
打开CMD终端,切换cmd 的工做目录到夜神模拟器的安装目录的bin目录下(或者你把这个目录添加到环境变量也能够,可是最好不要添加到环境变量,由于bin目录下也存在一个adb.exe会和Android SDK中的adb.exe冲突),执行命令 nox_adb.exe connect 127.0.0.1:62001(不一样模拟器的这个端口号不一样)
若是执行命令时提示相似:abd server version(40) doesn't match this client (36) 这样的失败信息,那么说明你的server(夜神模拟器的adb(nox_adb.exe))和client(Android SDK中的adb)版本不对应
cmd 输入 adb version 查看client版本
cmd切换到夜神安装目录的bin目录下,执行nox_adb.exe version
个人版本是同样的,你的多是两个不一样的版本号, 你须要把Android SDK中的adb拷贝到夜神模拟器安装目录下的bin目录下,并重命名为nox_adb.exe 并替换原来的便可
接下来咱们就能够测试链接是否正常了,输入命令 nox_adb.exe connect 127.0.0.1:62001(这里要注意执行命令的目录,应为夜神模拟器安装目录的bin目录下)
看到上面的提示后,接着再次输入命令 adb devices (注意:不要在上面的目录下继续输入命令,由于bin下一样存在一个adb.exe ,若是你还在这个目录下执行adb命令,那么使用的并非Android SDK中的adb,因此切换到其余任意目录执行命令)
若是你看到的是上图中的信息, 说明已经成功链接上了模拟器, 这里只能说明Android的开发环境没问题了,可是进行自动化时还不必定可以正常控制模拟器
下面咱们经过编写一段简单的代码程序,验证一下程序是否可以成功驱动模拟器打开指定的app,若是没有报错,那么到此为止整个appnium自动化测试环境就已经完成了
打开appium,并启动服务器,保持模拟器开启状态
编写以下测试代码
""" ------------------------------------ @Time : 2019/7/30 19:47 @Auth : linux超 @File : appium_test.py @IDE : PyCharm @Motto: Real warriors,dare to face the bleak warning,dare to face the incisive error! @QQ : 28174043@qq.com @GROUP: 878565760 ------------------------------------ """ from appium import webdriver desired = { "platformName": "Android", "platformVersion": "5.1.1", "deviceName": "e9b768eb7d2a", "appPackage": "com.xxzb.fenwoo", "appActivity": "com.xxzb.fenwoo.activity.addition.WelcomeActivity" } driver = webdriver.Remote( command_executor="http://127.0.0.1:4723/wd/hub", desired_capabilities=desired)
以上代码desired_capabilities参数,暂不作介绍
输出
对应app被成功打开,表示整个环境已经没有任何问题了,接下来就能够愉快的开启咱们的app自动化测试了
最后,回顾一下搭建环境过程当中须要注意的点
1.若是在安装appium的时候提示缺乏.net framework 4.5 那么先下载安装它,再安装appium便可https://www.microsoft.com/zh-cn/download/details.aspx?id=30653
2.下载最新的appium,防止定位app的toast时没法定位
3.注意Android SDK 中adb的版本和模拟器中nox_adb的版本须要相同
4.下载Andorid SDK的时候必定要安装最新的 platform-tools,防止后面链接模拟器或者真机时遇到不可预料的错误(找不到adb命令等)
原文出处:https://www.cnblogs.com/linuxchao/p/linuxchao-appium-environment.html