第一节安装Appium
Appium官方网站:http://appium.io/
先安装node.js 。node.js官方网站:https://nodejs.org/
以Windows 7 (64) 为例进行安装,选择Windows installer(.msi) 64-bit 版本进行下载
下载完成,双击进行安装
安装完成,打开Windows命令提示符(CMD 命令),敲入“npm”命令回车。
出现以上信息表示安装成功。
下面通过npm安装Appium 。
使用淘宝源安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install -g [email protected]
安装appium1.6.3版本
安装完成之后配置环境变量,编辑path,例如添加:
C:\Program Files\nodejs\node_modules\.bin;
C:\Program Files\nodejs\;
运行cmd,输入:appium -v,若正常显示版本信息,则appium环境安装成功
第二节安装Android开发环境
安装java 环境
java下载地址:http://www.java.com/zh_CN/download/manual.jsp
双击下载的JDK ,设置安装路径。这里我们选择默认安装在
C:\Program Files (x86)\Java\jdk1.8.0_25目录下。
下面设置环境变量:
“我的电脑”右键菜单--->属性--->高级--->环境变量--->系统变量-->新建..
变量名:JAVA_HOME
变量值:C:\Program Files (x86)\Java\jdk1.8.0_25
变量名:CALSS_PATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
变量名:PATH
变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
在Windows命令提示符下输入java看是否配置成功:
安装android adt & SDK
Android-sdk下载地址:http://dl.google.com/android/installer_r23.0.2-windows.exe
或者 http://dl.google.com/android/android-sdk_r23.0.2-windows.zip
下面设置Android环境变量,方法与java环境变量类似。(我本机的目录为:D:\android\android-sdk-windows)
“我的电脑”右键菜单--->属性--->高级--->环境变量--->系统变量-->新建..
变量名:ANDROID_HOME
变量值:D:\android\android-sdk-windows
变量名:PATH
变量值:;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;
安装SDK Platform-Tools
http://www.androiddevtools.cn/
把解压出来的 platform-tools 文件夹放在 android sdk 根目录下,并把 adb所在的目录添加到系统PATH 路径里,即可在命令行里直接访问了 adb, fastboot 等工具。
安装SDK Build-Tools http://www.androiddevtools.cn/
这是Android开发所需的Build-Tools,下载并解压后,将解压出的整个文件夹复制或者移动到 android sdk 根目录/build-tools 文件夹
打开Windows 命令提示符(CMD),通过“appium-doctor”命令检查appium环境。
如果出现“All Checks were successful”的提示,说明基本环境已经配置完成。
安装Python 和 Appium Client 包
Python下载
Python官网:https://www.python.org/downloads/windows/
下载后,双击下载包,进入Python安装向导,安装非常简单,你只需要使用默认的设置一直点击"下一步"直到安装完成即可。
配置环境变量
在path添加python安装路径即可(我的路径如下:)
C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe
CMD 输入python
表示环境安装成功
集成开发环境PyCharm
PyCharm 下载地址 : https://www.jetbrains.com/pycharm/download/
安装 PIP 命令 (方便以后安装其他三方包)
进入python Scripts 目录
cd C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Scripts
执行 easy_install.exe pip命令
Scripts文件夹下会出现一系列和pip有关的文件,其中有pip.exe。
pip.exe的路径也添加到环境变量PATH中
输入命令pip如果识别成功则配置完成(可以使用pip 来安装三方包了)
安装Appium Client pip install Appium-Python-Client
安装selenium pip install selenium
所有的环境配置结束
启动Appium
appium(按需选择) 通过CMD命令行启动
appium #直接启动appium
appium --no-reset #不重置app
appium --session-override #覆盖登录信息
USB数据线连接手机
先打开手机的开发者选项,打开USB调试模式 (华为:设置—开发者选项—USB调试)
USB数据线连接手机,提示选择访问数据模式
使用命令adb devices 查看手机是否连接成功(如果失败,有可能是手机助手占用端口,结束手机助手进程即可)
如果出现该提示则连接成功
一.编写python脚本
首先要获取app的package name 和 launchable activity name
查看pack name和activity name 方法如下:
1.进入安卓build-tools cd D:\android-sdk-windows\build-tools\
2.输入命令 aapt dump badging C:\Users\Administrator\Desktop\youapp.apk (我这里是把安卓的APK放到了桌面上,如果报错,可能是工具问题,将build-tools替换即可 https://pan.baidu.com/s/1MCNpyo7rlWsixHSqk9wV3Q)
3.找到并记录
获取driver
打开pycharm 新建py文件,并编辑以下代码
from appiumimport webdriver
desired_caps = {}
desired_caps['platformName'] = 'android'
desired_caps['platformVersion'] = '7.0'
desired_caps['deviceName'] = 'Android Emulator'
desired_caps['appPackage'] = ‘app package name’(你的app包名)
desired_caps['appActivity'] = ‘app launchable-activity’(你的app Activity名)
desired_caps['automationName'] = 'uiautomator2'
driver=webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
连接真机并启动appium 命令行输入:appium
在pycharm空白处右击,run运行脚本 如果能成功打开手机app 则表示连接成功
二.使用uiautomatorview 查看定位框架元素
运行D:\android-sdk-windows\tools下的 uiautomatorviewer.bat
打开下图UI界面
点击右上角的手机图标抓取元素(可以先打开你要测试的App然后点图标,获取的就是app的元素了)
在右边可以看到已经成功获取到元素
我们接着在上面连接手机的代码下继续编码
1.获取并操作元素
连接手机后获得一个driver对象,操作drive对象来操作元素
可以通过class,resource-id ,xpath(需要自己编写) 来定位元素 (元素信息在node_detail 即右下角)
driver.find_element_by_id('com.huawei.android.launcher:id/dock_divider')
driver.find_element_by_class_name('com.huawei.android.launcher')
一般方法有click,get_attribute,send_keys
driver.find_element_by_id('com.huawei.android.launcher:id/dock_divider').click()
driver.find_element_by_class_name('com.huawei.android.launcher').send_keys('aaa')
driver.find_element_by_class_name('com.huawei.android.launcher').get_attribute('text')
其他详细的方法可以百度查询
进行断言
通过继承python自带的测试框架 unittest 可以使用它的断言方法
也能自己编写断言例如通过判断页面title来断言页面是否跳转成功
Title=driver.find_element_by_id('title_id').get_attribute('text')
If Title != ‘首页’:
raise print('页面跳转失败')
Else:
Print (‘页面跳转成功’)
后面可以学习python的unitest 框架,数据驱动模式,以及代码封装和对象操作 ,提高代码质量