6.0 实现app登录
6.0 实现app登录
1.0.0:学习ui自动化准备工作
待测app,我这里有准备两个apk,这两个都是我曾经做过的项目,后续的文章都是基于这两个app!
链接:https://pan.baidu.com/s/1I0vR9Ejh8sK8e7PZP9ZtDw 密码:gzbt
1.0.1:打开pycharm新建一个项目 ,名称为【xuexi】
新建一个py文件,名称为Start_App
1.0.2:获取安卓设备信息
platformName #设备型号 android或者ios
platformVersion #安卓设备版本号
deviceName #安卓设备名称
app #设备路径 pc电脑存放apk包的路径
appPackage #包名
appActivity #容器
noReset #是否重新安装app True不重新安装
unicodeKeyboard#是否禁用手机键盘 True禁用手机输入法
resetKeyboard #是否启动appium自带键盘 True开始手机输入法
automationName #可选模式 本教程默认 Uiautomator2
newCommandTimeout #超时时间(s)
platformName : android 即可
platformVersion :手机的安卓版本,可以直接在手机上面看,当然也有高逼格的查询方式,后文会讲到通过py脚本去自动获取一台或者多台设备的信息!
deviceName :设备名称,【adb devices】
补充:1.如果adb devices 找不到设备,这里请自行百度,手机打开usb调试模式
2.如果adb devices 找到设备,但是设备离线,插拔手机,注意看手机屏幕,点击【允许】
3.如果还是找不到设备,拔插手机注意电脑右下角是否在安装手机驱动,每款手机都几乎需要重新安装手机插件,另外如果你有清理过电脑垃圾,很有可能把驱动清理掉,所以这里需要稍微注意一下,不过这个都是小问题!
app : apk的存放路径,这个我们可以在【xuexi】的目录下直接创建一个文件,然后把我们所需要用到的apk全部放进去!然后鼠标左键点击一下我们所需要用到的apk,右键复制路径
appPackage #包名
appActivity #容器
命令行
aapt dump badging %s 备注:%s 是上个步骤复制的路径
如果输入这个报错:则找到 SDK 目录下的这个目录,随便点击一个进去复制路径,加入环境变量path
然后重新启动cmd,再次获取即可!成功后如下图所示!
后面的参数基本固定,记住就好!
Start['platformName']='' #设备型号 android或者ios
Start['platformVersion']='' #安卓设备版本号
Start['deviceName']='' #安卓设备名称
Start['app']='' #设备路径 pc电脑存放apk包的路径
Start['appPackage']='' #包名
Start['appActivity']='' #容器
Start['noReset']='' #是否重新安装app True不重新安装
Start['unicodeKeyboard']='' #是否禁用手机键盘 True禁用手机输入法
Start['resetKeyboard']='' #是否启动appium自带键盘 True开始手机输入法
Start['automationName']='' #可选模式 本教程默认 Uiautomator2
Start['newCommandTimeout']='' #超时时间(s)
一些较为基本参数就是这些东西
1.0.3: 下载python 第三方库!
a.文件-设置-项目
点击右侧加号 下载 Appium-Python-Client, 安装即可
温馨提示:大家会发现我的目录创建了一个 appium_client_jar这个目录!建议大家也创建一个目录,用来存放我们在这里下载的库!后续大家慢慢品味这个文件的作用!
电脑上找到这个目录!吧下图所示的文件复制一份放到 appium_client_jar下面
注意:如果你在下载的库都是放在自己创建的目录下,那么后续调用方式就变为
from appium_client_jar.appium import — 这个方式
这里解释一下原因为什么要这么做:
如果在工作当中你是一个人做自动化项目,那么你所有的库放在默认位置就好!但是往往一个自动化项目是由多名自动化测试工程师完成的,可能每个人每个模块使用的库都不一样, 就会导致别人写的脚本在他自己的环境下可以调用这个库,但是在其他人的环境下却调用不鸟,所以我们需要建立一个公共库! 所有的第三方库都存在在统一的目录下!那么无论谁的库,大家都可以直接调用!
1.0.4:脚本启动app
a.打开appium —命令行输入 appium,出现下图所示,即启动appium
b.执行脚本
from appium_client_jar.appium import webdriver
Start={}
Start['platformName']='android' #设备型号 android或者ios
Start['platformVersion']='7.1.2' #安卓设备版本号
Start['deviceName']='2905bdb6' #安卓设备名称
Start['app']=r'C:\Users\Administrator\Desktop\xuexi\apk\deersteward_phone_2.5.1.apk' #设备路径 pc电脑存放apk包的路径
#上面的路径不推荐这种写法,但是目前先这么写!后续告诉大家正确的写法
Start['appPackage']='com.yce.deerstewardphone' #包名
Start['appActivity']='com.yce.deerstewardphone.activity.SplashActivity' #容器
Start['noReset']='True' #是否重新安装app True不重新安装
Start['unicodeKeyboard']='True' #是否禁用手机键盘 True禁用手机输入法
Start['resetKeyboard']='True' #是否启动appium自带键盘 True开始手机输入法
Start['automationName']='Uiautomator2' #可选模式 本教程默认 Uiautomator2
Start['newCommandTimeout']='400' #超时时间(s)
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', Start)
执行发现:手机安卓版本不是7.1.1,是7.1.2,然后更正即可!注:这个手机是你测试的手机版本,手机版本应该会查看吧,不会的话自行百度!
设备信息填写正确之后,我们只需要盯着手机就会发现,
- 如果你的手机没有安装这个apk包,就会自动安装一个,
- 如过已经安装则会直接启动!
原因:设备信息设置了这个:noReset #是否重新安装app True不重新安装
结果:手机APP已经启动