Appium UI自动化

本文详细介绍了如何使用Appium进行UI自动化测试,包括环境搭建、adb调试工具的使用、Appium的安装与操作,以及如何利用UIAutomatorViewer进行元素定位。内容涵盖Java环境、AndroidSDK设置、模拟器安装、adb命令、Appium的基础操作如启动其他app、获取app信息、安装与卸载app,以及高级手势操作等。
摘要由CSDN通过智能技术生成

一、环境搭建

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'] = '.Settings'


# 连接appium服务器,创建driver对象
driver = webdriver.Remote(appium_server, desired_caps)
print("app的包名:", driver.current_package)
print("app的界面名:", driver.current_activity)
# app的包名: com.android.settings
# app的界面名: .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甜甜的凉拌苦瓜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值