使用appium inspector录制生成测试用例,建议入门使用,后续熟练之后,可以脱离这些了就。
adb全程Android Debug Bridge ,用来协助调试android程序。adb工具包含在android sdk工具中,sdk安装完成后,可以直接使用adb命令
➜ ~ adb version
Android Debug Bridge version 1.0.41
Version 29.0.6-6198805
Installed as /usr/local/android-sdk/platform-tools/adb
运行脚本的设备,android真机需要root权限,模拟器可以使用sdk自带的模拟器或genimotion
启动Appium desktop的服务,如下所示,保持默认启动即可
或者在terminal中直接启动也可以:
打开Appium Inspector,添加字典
官网参考文档:官方文档
常用参数:
platformName:脚本运行的平台,如:IOS、Android
deviceName:运行的设备名称,即adb devices查出来的ID
appPackage:包名,可以通过adb logcat查询日志获取
appActivity:页面名称,通常是启动页
日志示例:
执行命令:adb -s “test123” logcat | grep -i displayed
启动目标设备的被测应用(简书为例)
第一部分是包名,第二部分是启动页,分别对应appPackage和appActivity
信息获取完成后,在Appium Inspector中进行填写
填写完成后,点击start Session,会在手机上启动目标应用,启动完成后,显示手机页面,即为成功
功能简介:
1: 元素定位,用于定位页面中的元素
2: 屏幕滑动,指定起始坐标和结束坐标,模拟滑动操作
3: 生成手机屏幕的镜像窗口
4: 回退操作
5: 刷新页面按钮,元素加载失败时可点击重新加载
6: 录制脚本按钮,点击后开始录制操作
7: 元素查找按钮,点击后可对元素定位表达式进行校验
8: DOM复制按钮
步骤1中的json对象,是用来创建driver的,步骤2中为操作代码,完成脚本代码如下:
from time import sleep
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
desired_caps = {
"platformName": "android",
"appium:deviceName": "b1f37e8e",
"appium:appPackage": "com.jianshu.haruki",
"appium:appActivity": "com.baiji.jianshu.ui.splash.SplashScreenActivity"
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
el1 = driver.find_element(by=AppiumBy.ID, value="com.jianshu.haruki:id/tv_ok")
el1.click()
sleep(2)
el2 = driver.find_element(by=AppiumBy.ID, value="com.lbe.security.miui:id/permission_allow_foreground_only_button")
el2.click()
sleep(2)
el3 = driver.find_element(by=AppiumBy.ID, value="com.lbe.security.miui:id/permission_allow_button_1")
el3.click()
sleep(2)
el4 = driver.find_element(by=AppiumBy.ID, value="com.lbe.security.miui:id/permission_allow_button")
el4.click()
sleep(2)
el5 = driver.find_element(by=AppiumBy.ID, value="com.jianshu.haruki:id/et_account")
el5.send_keys("13000000000")
driver.quit()
注:webdriver.Remote
http://localhost:4723/wd/hub:localhost为appiumserver的IP地址,4723位appium服务启动的端口,wd位webdriver,hub表示衷心节点。
desired_caps:为启动driver的配置项,一般包含platformName、deviceName、appPackage、appActivity
# app信息获取,初始化driver时的包信息和初始页面信息都可以用这2个获取
# 获取当前页面的元素,devices位adb device查询的device id
adb -s "devices" shell dumpsys activity top
# 获取任务列表
adb shell dumpsys activity activities
# app入口查看
adb -s "devices" logcat | grep -i displayed
# 应用启动
adb shell am start -W -n com.jianshu.haruki/com.baiji.jianshu.ui.splash.SplashScreenActivity -S