目录
一、真机配置
1、使用数据线连接真机与电脑。
2、开启开发者模式
3、开启USB调试
二、编写脚本
1、修改deviceName
2、修改platformVersion
3、appPackage和appActivity的获取
4、定位计算器界面元素
5、运行脚本
选择传输文件方式。
举我目前手上的两手机为例,其他的应该大同小异
- 华为手机:手机-->设置-->'关于手机'-->版本号连续点4次,开启之后手机界面会提示你开启了开发者模式了。然后在设置里就会出现'开发人员选项'了,我的是在'关于手机'上方
- 小米手机:手机-->设置-->我的设备-->全部参数-->MIUI版本号连续点5次,就会开启开发者模式了,多点几次会有提示的。开启之后,开发者选项的位置是在手机-->设置-->更多设置-->开发者选项。
如下图以我的小米手机为例:
进入开发者模式选项,打开USB调试、USB安装、USB调试(安全设置),会提示你授权操作,记得同意一下。
同样采用我们上一篇的计算器脚本,将其中模拟器的信息换成真机。脚本使用安卓版本6.0
通过adb devices获取
查看手机安卓版本号
手机端打开计算器,然后电脑端在cmd中输入
安卓8.0以前用:adb shell dumpsys activity activities | findstr mFocusedActivity
安卓8.0以后用:adb shell dumpsys activity activities | findstr mResume
1、首先在手机端打开计算器,使手机界面停留在计算器界面。
2、电脑端打开SDK包里的tool文件夹下的uiautomatorviewer.bat工具,该工具只支持安卓8.0以下,8.0以上可使用Appium inspector。
5、点击第二个按钮,会自动抓取手机端界面。
6、由于我们之前打开了计算器,所以就能直接显示计算器界面了。
7、这时候我们点击界面中想要定位的元素,右边就会显示出相应参数,比如我们想要用id定位,就可以直接复制下面的id信息了。
由于真机连接可能会有延迟,所以可以在元素定位前面加上time.sleep(3)延迟语句。
运行之前记得开启Appium服务器。
运行时手机端会提示安装appium settings,需要同意一下。
代码如下:
# V1.0 实现手机端计算器自动化测试:使用常量进行参数传递
# 导入appium类库
from appium.webdriver.webdriver import WebDriver
from selenium.webdriver.common.by import By
import time
# 定义一个字典类型,存放参数设置
caps = {
'automationName': 'UiAutomator2',
'platformName': 'Android',
'platformVersion': '6.0',
'deviceName': 'VLG4C16C17009881',
'appPackage': 'com.android.calculator2',
'appActivity': '.Calculator'}
# 输入Appium访问路径并传入参数
driver = WebDriver('http://127.0.0.1:4723/wd/hub', caps)
# 传入相关测试数据,实现7+8的步骤
time.sleep(3)
driver.find_element(By.ID, 'com.android.calculator2:id/digit7').click()
driver.find_element(By.ID, 'com.android.calculator2:id/plus').click()
driver.find_element(By.ID, 'com.android.calculator2:id/digit8').click()
driver.find_element(By.ID, 'com.android.calculator2:id/equal').click()
time.sleep(3)
driver.quit()