环境准备:https://blog.csdn.net/weixin_43665351/article/details/113383409?spm=1001.2014.3001.5501
Android自动化依赖
1、adb工具
2、模拟机或者真机
模拟器:网易mumu、genimotion或者sdk自带的模拟器(可以下载Android studio)(注意:mumu的版本是锁死Android 6.0,其他两个 的版本是可以设置的)
真机需要获取root权限
3、Appium Desktop:入门学习工具
Desktop主要功能
1、UI分析
2、录制用例
3、元素查找测试
4、Attach已有session
5、云测试
使用:
1、启动appium
2、开启Insepector session
3、展示说明
使用文档:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
{
"platformName": "iOS", // 对应平台
"platformVersion": "11.0", // 对应版本
"deviceName": "iPhone 7", // 设备名称
"automationName": "XCUITest", // 服务引擎
"app": "/path/to/my.app" // 被测App路径
}
Android设备其他相关配置项
appActivity 对应被测App的页面(标示)
appPackage 对应被测App的包的名字
4、开始链接模拟器,配置设置
1、platformName android 或者 ios
2、deviceName 获取对应设备
使用adb在终端进行查找
xxxxxxxMacBook-Air:~ xxxxxxx$ adb devices
List of devices attached
emulator-5554 device
3、获取被测试app的appActivity ,(先使用adb logcat | grep -i displayed,监听到对应平台的日志,然后打开被测app到对应的页面。查看终端日志下显示的包名和Activity)
adb logcat | grep -i displayed
这里是获取到的是雪球app的首页(提前在模拟器安装了对应app):com.xueqiu.android/.view.WelcomeActivityAlias。
appPackage :com.xueqiu.android
appActivity:.view.WelcomeActivityAlias
5、与模拟器关联成功后,操作说明
6、录制脚本
7、复制脚本到Pycharm中运行(注意这里新建的项目要选择本地环境,因为我们的配置环境是全局本地的,不然估计要重新下载依赖)
注意:下面的用例跑不起来,是因为appActivity信息和我操作的appActivity不是同一个页面,只做流程说明
from appium import webdriver
from time import sleep
desire_cap = {
"platformName": "android",
"deviceName": "emulator-5554",
"appPackage": "com.xueqiu.android",
"appActivity": ".view.WelcomeActivityAlias"
"noReset":True // 热启动,保持上一次的登陆状态,默认是false
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desire_cap) // 驱动appium,http://127.0.0.1:4723 是appium启动的服务,/wd/hub 固定写法,desire_cap信息,是关联对应的模拟器下的测试app信息
// 以下是复制来的脚本,要把driver信息补充完整
driver.implicitly_wait(8)
el1 = driver.find_element_by_id("com.xueqiu.android:id/search_input_text")
el1.click()
el1.send_keys("茅台")
el2 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.FrameLayout/android.widget.LinearLayout/androidx.recyclerview.widget.RecyclerView/android.widget.RelativeLayout[1]/android.widget.LinearLayout/android.widget.TextView[1]")
el2.click()
获取app信息常用语法
app信息
获取当前界面元素:adb shell dumpsys activity top (重点)
获取任务列表:adb shell dumpsys activity activities
app入口
获取设备的日志信息:adb logcat | grep -i displayed (重点)
aapt dump badging mobike.apk | grep launchable-activity
apkanalyzer 最新版本的sdk中才有
启动应用
直接启动到对应应用的页面:adb shell and start -W -n com.xueqiu.android/.view.WelcomeActivityAlias-S (重点)