APP自动化2-python代码如何造作不同系统,不同版本的手机


一,前言

Android SDK 不同系统和版本差异比较大,不同系统不同版本直接可能用到不同的软件包或者框架,因此需要自动化脚本去执行操作终端的设置参数

二、自动化设置参数项,desired capabilities-appium

appium官方文档地址:https://appium.io/docs/cn/writing-running-appium/caps/

可以自行进入查看官方文档提供的初始化参数,也有安卓独有参数,iOS独有参数,下面讲解下安卓系统常用的几个参数 

1.手机系统 

参数名:platformName

参数值获取路径:设置--系统--关于手机

2. 版本

参数名:platformVersion

参数值获取路径:设置--系统--关于手机

3.设备名称

参数名:deviceName

参数值获取路径:设置--系统--关于手机

4.包名

参数名:appPackage

参数值获取方式:aapt dump badging E:\BaiduNetdiskDownload\tools\Android_8.8.83.7540_537114574_HB.32.apk

5.入口启动页面

参数名:appActivity

参数值获取路径:aapt dump badging E:\BaiduNetdiskDownload\tools\Android_8.8.83.7540_537114574_HB.32.apk

6.noReset,默认false,默认重置,即每次都是重新进入APP 

三、常用adb命令

1.查看终端是否连接成功 ----adb devices

 2.连接模拟器或者真机:

adb connect 127.0.0.1:62001--夜神模拟器

adb connect 127.0.0.1:5555---雷神

3. 查看被测APP包名和入口

app放都电脑端无中文路径下,使用如下命令在cmd窗口进行查看,若提示aapt不是内部命令则在下图路径中输入cmd打开docs窗口

命令:aapt dump badging E:\BaiduNetdiskDownload\tools\Android_8.8.83.7540_537114574_HB.32.apk

结果:

包名关键字:package: name

 启动入口关键字:launchable-activity: name

 四. python如何将上述参数传递给appium

 1 from appium import webdriver
 2 
 3 # 1 设置终端参数
 4 desired_caps = {
 5     "platformName": "Android",
 6     "platformVersion": 9,
 7     "deviceName": "TECNO KC3",
 8     "appPackage": "com.tencent.mobileqq",
 9     "appActivity": "com.tencent.mobileqq.activity.SplashActivity",
10     "noReset": True}
11 
12 # 2 发送指令给appium driver
13 webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
14 # 3 还需要做什么?
15 # 3.1 确保appium server开启
16 # 3.2 确保终端连接,使用adb命令,adb devices查看终端是否连接

观察终端或者模拟器,会自动打开QQ,初步实现了APP自动化