Andriod APP自动安装脚本:Appium+Python

Andriod APP自动安装脚本:Appium+Python

这篇,我们开始来一个实战练习,如何通过appium自动把电脑上一个安卓程序包给安装到一台Andriod手机或者Andriod模拟器中。

一、自动化安装apk包到手机脚本:

import os

from appium import webdriver

 

# apk_path = os.path.abspath(os.path.join(os.path.dirname(__file__),"..")) #获取当前项目的根路径

desired_caps ={}

desired_caps['platformName'] = 'Android' #设备系统

desired_caps['platformVersion'] = '5.1.1' #设备系统版本

desired_caps['deviceName'] = 'HUAWEI MLA-AL10' #设备名称

 

# 测试apk包的路径

#desired_caps['app'] = apk_path + '\\app\\shoujibaidu.apk'

desired_caps['app'] = 'C:\\Users\Administrator\\Desktop\\test201911251100_4.6.1(361)_461_jiagu_sign.apk'

 

#driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)#启动app

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

注意:以上代码只在模拟器安装时成功了,Andriod真机安装失败,未修复

       上面的desired_caps是一个字典,一开始定义一个空字典,然后根据键和值,设置了多个参数,这些参数就组成了一个字典对象。为什么需要这个字典参数对象呢?因为,需要手机发送一些手机参数给Appium服务器,这样Appium服务器才能处理请求,才能和手机中的程序联系起来。
       windows上的appium是一个服务器,启动后之后,如果是第一次运行上面脚本,appium会在你手机里安装两个软件,一个是Appium Settings, 一个unlock。Appium Settings是一个client端,负责解释和执行Windows端appium的命令,而unlock只是一个用来唤醒手机屏幕,解锁的功能。第一次运行上面脚本,时间有点慢,因为先要安装Appium Settings和Unlock到你手机上,然后执行ADB命令去安装shoujibaidu.apk包,最后启动这个手机百度。启动过程,安卓上会弹出权限请求,例如sd卡读取权限,地理位置获取权限,这些,你需要手动去点击同意。目前,没有更好方法去自动化处理这个权限弹窗,因为这个不是一个app或者浏览器上的alert弹窗,所以,appium暂时不支持自动化这样操作。

二、查看Appium服务运行日志

       运行脚本结束,我们点击windows上Appium界面的stop server按钮,看到日志文件,当然可以到处到一个xxxx.log文件,用notepad++来看日志。日志太多,这里简单来看一些,我们很容易看懂的内容。

1 Appium创建一个连接session

[info] [Appium] Welcome to Appium v1.6.5
[info] [Appium] Appium REST http interface listener started on 0.0.0.0:4723[info] [HTTP] --> POST /wd/hub/session {"capabilities":{"firstMatch":[],
"alwaysMatch":{"platformName":"Android","platformVersion":"6.0.1","deviceName":"KIW-AL10","app":"C:\\Users\\Administrator\\PycharmProjects\\
appium_android_framework\\app\\shoujibaidu.apk"}},"desiredCapabilities":{"platformName":"Android","platformVersion":"6.0.1",
"deviceName":"KIW-AL10","app":"C:\\Users\\Administrator\\PycharmProjects\\appium_android_framework\\app\\shoujibaidu.apk"}}
[debug] [MJSONWP] Calling AppiumDriver.createSession() with args: [{"platformName":"Android","platformVersion":"6.0.1",
"deviceName":"KIW-AL10","app":"C:\\Users\\Administrator\\PycharmProjects\\appium_android_framework\\app\\shoujibaidu.apk"},null,{"firstMatch":[],
"alwaysMatch":{"platformName":"Android","platformVersion":"6.0.1","deviceName":"KIW-AL10","app":"C:\\Users\\Administrator\\PycharmProjects\\
appium_android_framework\\app\\shoujibaidu.apk"}}]
[debug] [BaseDriver] Event 'newSessionRequested' logged at 1504948606634 (17:16:46 GMT+0800 (中国标准时间))
[info] [Appium] Creating new AndroidDriver (v1.20.0) session
[info] [Appium] Capabilities:
[info] [Appium]   platformName: 'Android'
[info] [Appium]   platformVersion: '6.0.1'
[info] [Appium]   deviceName: 'KIW-AL10'
[info] [Appium]   app: 'C:\\Users\\Administrator\\PycharmProjects\\appium_android_framework\\app\\shoujibaidu.apk'
[debug] [AndroidDriver] AndroidDriver version: 1.20.0
[info] [BaseDriver] Session created with session id: f61bbf84-4eba-4500-b3f3-5a810117e323
[debug] [AndroidDriver] Getting Java version[info] [AndroidDriver] Java version is: 1.8.0_121
[info] [ADB] Checking whether adb is present
[info] [ADB] Using adb.exe from C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe
[info] [AndroidDriver] Retrieving device list
[debug] [ADB] Trying to find a connected android device
[debug] [ADB] Getting connected devices...[debug] [ADB] 1 device(s) connected
[info] [AndroidDriver] Looking for a device with Android '6.0.1'
[debug] [ADB] Setting device id to WPV0216912000686
[info] [ADB] Getting device platform version
[debug] [ADB] Getting connected devices...
[debug] [ADB] 1 device(s) connected
       上面从启动Appium服务,然后读取Capablilities参数,然后验证ADB是否安装,验证apk包是否放在设置的路径下,然后成功连接手机。后面的日志,也是一堆通过ADB命令来获取手机设备信息和安装和卸载apk包。

————————————————
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值