一、安装jdk
配置环境变量 :
自定义变量JAVA_HOME=C:\Program Files\Java\jdk1.8
C:\Program Files\Java\jdk1.8为
jdk
的安装目录
配置
path :
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
二、安装 Android SDK
配置环境变量 :
自定义变量 ANDROID_HOME=C:\tools\android-sdk
C:\tools\android-sdk是你的解压目录
配置
path
:
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
三、安装 手机模拟器Genymotion和virtualbox
1.安装Genymotion
2.安装virtualbox
3.打开Genymotion,点击add选择系统安装
4.安装genymotion ARM插件(可提供x86运行环境,即可运行apk ):
打开Genymotion,点击start
按钮,启动虚拟机。
拖动ARM_Translation_Lollipop_20160402.zip(不用解压)到已启动的android虚拟机上。
四、Appium
自动化测试环境搭建
1、安装Appium客户端
2、安装Appium-python库
使用管理员运行cmd :
pip install Appium-Python-Client
五、
Appium
基础操作
(1)使用appium打开应用程序
1.打开要测试的应用
2.使用 adb 命令获取包名和界面名
cmd输入
获取包名和界⾯名:adb shell dumpsys window windows | findstr mFocusedApp
获取当前电脑已经连接设备和对应的设备号 :adb devices
3.修改 desired_caps 字典中的 appPackage 和 appActivity 的参数
# 导模块
from appium import webdriver
# 创建一个字典,包装相应的启动参数
desired_caps = dict()
# 需要连接的手机的平台
desired_caps['platformName'] = 'Android'
# 需要连接的手机的版本号
desired_caps['platformVersion'] = '7.0'
# 需要连接的手机的设备号
desired_caps['deviceName'] = '192.168.241.101:5555'
# 需要启动的程序的包名
desired_caps['appPackage'] = 'com.android.settings'
# 需要启动的程序的界面名
desired_caps['appActivity'] = '.Settings'
# 获取driver,连接appium服务器
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 退出
driver.quit()
(2)Appium 基础操作 API
1、
在脚本内启动其他
app
driver
.
start_activity
(
appPackage
,
appActivity
)
appPackage:要打开的程序的包名
appActivity:要打开的程序的界面名
需要先切换到短信应用里,再获取包名和界⾯名:adb shell dumpsys window windows | findstr mFocusedApp
# 打开 设置,等待三秒后跳转到 短信
from time import sleep
from appium import webdriver
# 创建一个字典,包装相应的启动参数
desired_caps = dict()
# 需要连接的手机的平台
desired_caps['platformName'] = 'Android'
# 需要连接的手机的版本号
desired_caps['platformVersion'] = '7.0'
# 需要连接的手机的设备号
desired_caps['deviceName'] = '192.168.241.101:5555'
# 需要启动的程序的包名
desired_caps['appPackage'] = 'com.android.settings'
# 需要启动的程序的界面名
desired_caps['appActivity'] = '.Settings'
# 获取driver,连接appium服务器
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 暂停3秒
sleep(3)
# 跳转到短信
driver.start_activity('com.android.messaging', '.ui.conversationlist.ConversationListActivity')
sleep(3)
# 退出driver
driver.quit()
2、 获取 app 的包名和界面名
获取包名: driver.current_package
获取界面名:driver.current_activity
# 打开 设置,等待三秒后跳转到 短信
from time import sleep
from appium import webdriver
# 创建一个字典,包装相应的启动参数
desired_caps = dict()
# 需要连接的手机的平台
desired_caps['platformName'] = 'Android'
# 需要连接的手机的版本号
desired_caps['platformVersion'] = '7.0'
# 需要连接的手机的设备号
desired_caps['deviceName'] = '192.168.241.101:5555'
# 获取driver,连接appium服务器
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 获取 app 的包名和界面名 并输出
package=driver.current_package
print(package)
activity=driver.current_activity
print(activity)
sleep(3)
# 退出driver
driver.quit()
3、关闭 app 和 驱动对象
关闭当前操作的app,不会关闭驱动对象 :
driver.close_app()
关闭驱动对象,同时关闭所有关联的app:driver.quit()
4 、安装和卸载以及是否安装 app
安装app :driver.install_app("
apk路径
")
卸载app :driver.remove_app("
应用程序包名
")
判断app是否已经安装 :driver.is_app_installed("
应用程序包名
")
返回值: 布尔类型,True为安装,False为没有安装
5、 将应用置于后台
app 会在进入后台一定时间后,如果再回到前台也页面会重新输入密码
app放置到后台一定时间后再回到前台,模拟热启动 :
driver.background_app(seconds)
参数: seconds:后台停留多少秒
# 打开 设置,等待三秒后跳转到 短信
from time import sleep
from appium import webdriver
# 创建一个字典,包装相应的启动参数
desired_caps = dict()
# 需要连接的手机的平台
desired_caps['platformName'] = 'Android'
# 需要连接的手机的版本号
desired_caps['platformVersion'] = '7.0'
# 需要连接的手机的设备号
desired_caps['deviceName'] = '192.168.241.101:5555'
# 需要启动的程序的包名
desired_caps['appPackage'] = 'com.android.settings'
# 需要启动的程序的界面名
desired_caps['appActivity'] = '.Settings'
# 获取driver,连接appium服务器
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
print("----进入后台----")
#进入后台5秒,再回到前台
driver.background_app(5)
print("----回到前台----")
# 暂停3秒
sleep(3)
# 退出driver
driver.quit()
(3)UIAutomatorViewer 获取元素的特征信息
1、进入
SDK
目录下的
tools
目录,打开
uiautomatorviewer.bat