一、环境搭建
1.1 Java环境


1.2 AndroidSDK 环境



1.3 Android模拟器安装

记住不要点击虚拟机上面界面中的【启动】按钮



点击 【NO】之后关闭重启即可

这种情况只需要关闭Genymotion重启即可。





1.4 为虚拟手机设备提供安装apk功能

二、adb调试工具
2.1 adb 工作原理


2.2 adb获取包名和界面名



mac命令:adb shell dumpsys window windows | grep mFocusedApp
windows命令:adb shell dumpsys window windows | findstr mFocusedApp


2.3 adb 文件传输


2.4 adb 获取app启动时间
adb shell am start -W 包名/界面名



2.5 adb 获取手机日志


2.6 adb其他命令

三、appium
3.1 appium的安装



使用pip list验证下appium-python-client是否安装成功

3.2 应用程序启动参数
# 导入模块 from appium import webdriver from time import sleep # 设置appium服务器的连接http地址 appium_server = "http://127.0.0.1:4723/wd/hub" # 定义一个字典,存储应用程序的启动参数 desired_caps = dict() # 需要连接的手机的系统类型,不限制大小写,值只能是iOS 和 Android desired_caps['platformName'] = 'Android' # 需要连接的手机的系统版本号,如5.2.1 可以写为5.2.1 或 5.2 或 5 desired_caps['platformVersion'] = '5.1' # 需要连接的手机的设备号,安卓手机的这个值可以随便写,但是必须有值,不能是空 desired_caps['deviceName'] = '192.168.56.101:5555' # 需要启动的应用程序的包名 desired_caps['appPackage'] = 'com.android.settings' # 需要启动的应用程序的界面名 desired_caps['appActivity'] = '.Settings' # 连接appium服务器,创建驱动对象driver driver = webdriver.Remote(appium_server, desired_caps) sleep(10) # 退出 driver.quit()
3.3 appium基础操作
3.3.1 启动其他的app
场景:在一个应用里面需要跳转到另外一个应用,如在购物app内需要调整到支付app
# 脚本内启动其他app
# 使用方法
driver.start_activity(appPackage, appActivity)
# appPackage 要打开的app的包名
# appActivity 要打开的app的界面名
# 导入模块
from appium import webdriver
from time import sleep
# 设置appium服务器的连接http地址
appium_server = "http://127.0.0.1:4723/wd/hub"
# 定义一个字典,存储应用程序的启动参数
desired_caps = dict()
# 1- 手机的参数
# 需要连接的手机的系统类型,不限制大小写,值只能是iOS 和 Android
desired_caps['platformName'] = 'Android'
# 需要连接的手机的系统版本号,如5.2.1 可以写为5.2.1 或 5.2 或 5
desired_caps['platformVersion'] = '5.1'
# 需要连接的手机的设备号,安卓手机的这个值可以随便写,但是必须有值,不能是空
desired_caps['deviceName'] = '192.168.56.101:5555'
# 2- app的参数
# 需要启动的应用程序的包名
desired_caps['appPackage'] = 'com.android.settings'
# 需要启动的应用程序的界面名
desired_caps['appActivity'] = '.Settings'
# 连接appium服务器,创建driver对象
driver = webdriver.Remote(appium_server, desired_caps)
sleep(10)
# 切换到短信app
# com.android.mms/.ui.ConversationList
driver.start_activity("com.android.mms", ".ui.ConversationList")
sleep(10)
# 退出
driver.quit()
3.3.2 获取app的包名和界面名
应用场景:
当从一个app跳转到另外一个app时,想要输出app的包名和界面名
# 获取app的包名
driver.current_package
# 获取app的界面名
driver.current_activity
# 导入模块
from appium import webdriver
from time import sleep
# 设置appium服务器的连接http地址
appium_server = "http://127.0.0.1:4723/wd/hub"
# 定义一个字典,存储应用程序的启动参数
desired_caps = dict()
# 1- 手机的参数
# 需要连接的手机的系统类型,不限制大小写,值只能是iOS 和 Android
desired_caps['platformName'] = 'Android'
# 需要连接的手机的系统版本号,如5.2.1 可以写为5.2.1 或 5.2 或 5
desired_caps['platformVersion'] = '5.1'
# 需要连接的手机的设备号,安卓手机的这个值可以随便写,但是必须有值,不能是空
desired_caps['deviceName'] = '192.168.56.101:5555'
# 2- app的参数
# 需要启动的应用程序的包名
desired_caps['appPackage'] = 'com.android.settings'
# 需要启动的应用程序的界面名
desired_caps['appActivity'] = '.S

本文详细介绍了如何使用Appium进行UI自动化测试,包括环境搭建、adb调试工具的使用、Appium的安装与操作,以及如何利用UIAutomatorViewer进行元素定位。内容涵盖Java环境、AndroidSDK设置、模拟器安装、adb命令、Appium的基础操作如启动其他app、获取app信息、安装与卸载app,以及高级手势操作等。
最低0.47元/天 解锁文章
6640

被折叠的 条评论
为什么被折叠?



