1. Appium介绍
1,appium是开源的移动端自动化测试框架;
2,appium可以测试原生的、混合的、以及移动端的web项目;
3,appium可以测试ios,android应用(当然了,还有firefox os);
4,appium是跨平台的,可以用在osx,windows以及linux桌面系统上;
2. Appium基本原理
在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后通过调⽤用UiAutomator的命令,实现App的自动化测试。
UiAutomator测试框架是Android SDK自带的App UI自动化测试Java库。
另外由于UiAutomator对H5的支持有限,appium引入了chromedriver以及safaridriver等来实现基于H5的自动化。
3.总结:
1) android sdk安装完毕后,需要配置环境变量
新建ANDROID_HOME
在PATH中添加:%ANDROID_HOME%:.....
2) nodejs安装完毕后,需要配置环境变量
在PATH中添加:D:Program Files odejs;
3) appium安装完毕后,需要配置环境变量
D:Program Files (x86)Appium ode_modules.bin;
4) 配置好后,启动cmd
输入node -v,查看node安装版本
输入appium-doctor检查appium的安装环境是否成功
5) 安装Python,配置环境变量
4.通过Python编写自动化测试脚本
#coding:utf-8
from appium import webdriver
#desired_caps是一个字典,负责启动服务端时的参数设置,启动session的时候是必须提供的。
# Desired Capabilities本质上是key value的对象,它告诉appium server这样一些事情,比如:
# 本次测试是启动浏览器还是启动移动设备?
# 是启动andorid还是启动ios?
# 启动android时,app的package是什么?
# 启动android时,app的activity是什么
desired_caps = {}
#你要测试的手机操作系统
desired_caps['platformName'] = 'Android'
#手机操作系统的版本
desired_caps['platformVersion'] = '4.2'
#使用的手机类型或模拟器类型
desired_caps['deviceName'] = 'Android'
#deviceName你的模拟器名字,就是在下载AVD的时候,你填写的,忘了的回头去找,或者在模拟器顶部会显示
#所运行的app包名
desired_caps['appPackage'] = 'com.android.calculator2'
#app运行的事件
desired_caps['appActivity'] = '.Calculator'
#启动打开app
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
#根据元素定位,执行点击操作
driver.find_element_by_name("6").click()
driver.find_element_by_name("5").click()
driver.find_element_by_name("9").click()
driver.find_element_by_name("1").click()
driver.find_element_by_name("5").click()
driver.find_element_by_name("+").click()
driver.find_element_by_name("6").click()
driver.find_element_by_name("=").click()
driver.quit()
5. Appium界面内容解析
5.1. 整体介绍
主页面顶部从左到右依次是:
1、AndroidSettings:android相关的设置
2、 GeneralSettings:全局设置,设置appium相关的内容
3、 DeveloperSettings:开发者设置,一般不用需要关心
4、About:appium相关信息,不需要关心
5、Inspector:查找元素用的,windows无法使用,MAC可以使用,windows可以不用关心。
6、LaunchAppium:启动appium按钮
7、右下角清除日志按钮。
5.2. Android Settings
此页面分为Application、Launch Device、Capabilities、Advanced四部分,先看图之后分析分别有什么作用