19.appium+python自动化-安装app三种方式

一、adb安装

1.在app自动化之前,首先手机上有要被测试的app,如何把电脑本地上的app安装到手机上呢?可以在运行自动化代码前,在cmd输入adb指令,把电脑app安装到手机上

adb install [apk在电脑上的绝对路径]

2.也可以用python执行adb命令安装app,代码实现如下:

# coding:utf-8

import os

# 安装app,为了方便,把app放到当前脚本同一目录
os.system("adb install baidu.apk")

二、appium本地安装

1.appium也可以实现自动安装app,在工程下单独建个app文件夹,待安装的app放到此文件夹下

2.在工程下再建个case文件夹,写用例时候先获取app的绝对路径

3.为了获取路径方便,可以写个函数去获取,这样方便调用

4.进一步优化代码,用lambda函数更简洁,功能等价于上一步

# coding:utf-8
import os

# 作者:上海-悠悠 QQ交流群:512200893

# 获取项目的根目录路径
p = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)),".."))
print(p)

appPath = lambda x:os.path.join(p, "app", x)
print(appPath("baidu.apk"))

5.运行代码安装指定文件夹下app

# coding:utf-8
from appium import webdriver
import os

# 作者:上海-悠悠 QQ交流群:512200893

# 获取项目的根目录路径
p = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)),".."))
# 获取app路径
appPath = lambda x:os.path.join(p, "app", x)
print(appPath("baidu.apk"))

desired_caps = {
                'platformName': 'Android',
                'deviceName': '127.0.0.1:62001',
                'platformVersion': '4.4.2',
                'app': appPath("baidu.apk"),
                'appPackage': 'com.baidu.yuedu',
                'appActivity': 'com.baidu.yuedu.splash.SplashActivity',
                'noReset': 'true',
                }
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

三、appium在线安装

1.如果没有本地的app包,有个在线下载地址也是可以实现自动安装的。比如打完测试包后上传到一个指定的下载地址,通过这个下载地址也能实现安装

2.以百度阅读app为案例,百度搜索:百度阅读app,从下载页面获取到app的下载地址

http://p.gdown.baidu.com/b8d3f4be0e333cca250c2d3663bd2ba59f87740a58b4288dd0725134e7f455721f254aeb5c678ff9e6aa0d90b7322b1b06c5f3239bd7b726d2b0f2ac187f7c95e08cf4ef572d854a546c1814c9ad9101c58f29b5df2eeb11e751cff1d1a9d6d1e74aab7e8d53a9039a3c5cbea8e461ecb3348cd38123bebedf6a9976c2fa7f1f1df6a6543c6d73124796e97a34cca9792f10878c878d124be5e1582911aea7870e909130f73adfac

3.代码里面只需把app参数后面的本地地址改成在线地址就可以了

"app": "app下载在线地址”

4.代码参考:

# coding:utf-8
from appium import webdriver
import os

# 作者:上海-悠悠 QQ交流群:512200893

appUrl = "http://p.gdown.baidu.com/b8d3f4be0e333cca250c2d3663bd2ba59f87740a58b4288dd0725134e7f455721f254aeb5c678ff9e6aa0d90b7322b1b06c5f3239bd7b726d2b0f2ac187f7c95e08cf4ef572d854a546c1814c9ad9101c58f29b5df2eeb11e751cff1d1a9d6d1e74aab7e8d53a9039a3c5cbea8e461ecb3348cd38123bebedf6a9976c2fa7f1f1df6a6543c6d73124796e97a34cca9792f10878c878d124be5e1582911aea7870e909130f73adfac"

desired_caps = {
                'platformName': 'Android',
                'deviceName': '127.0.0.1:62001',
                'platformVersion': '4.4.2',
                'app': appUrl,
                'appPackage': 'com.baidu.yuedu',
                'appActivity': 'com.baidu.yuedu.splash.SplashActivity',
                'noReset': 'true',
                }
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
app自动化中,自动更新安装apk包是一个常见的需求。通过自动更新安装apk包,可以方便地将新的版本推送给用户,提供更好的用户体验和功能改进。 为了实现自动更新安装apk包,需要以下几个步骤: 1. 检测新版本:首先,需要在服务器端存储apk的最新版本,并提供一个接口供设备端检测更新。设备端可以定时或者在指定条件下向服务器发起请求,检测有无新版本。 2. 下载新版本:如果有新版本,设备端将apk文件下载到本地。可以使用HttpURLConnection等网络库实现下载功能。 3. 安装新版本:下载完毕后,设备端需要对apk文件进行安装。可以通过调用系统提供的安装器进行安装,也可以使用第三方库如Dexposed实现静默安装功能。 需要注意的是,自动更新安装apk包需要用户授权。在安卓系统中,需要获取WRITE_EXTERNAL_STORAGE和REQUEST_INSTALL_PACKAGES权限。 同时,为了保证用户的安全和隐私,自动更新安装apk包需要以下几点注意: 1. 权限控制:只有在用户明确同意的情况下,才能进行自动更新安装apk包,否则可能会引发安全问题。 2. 加密传输:在下载过程中,需要使用HTTPS等加密传输,确保传输的数据不被恶意篡改或窃取。 3. 完整性校验:下载完毕后,需要对下载的apk文件进行完整性校验,防止文件被中间人攻击篡改。 总之,通过自动更新安装apk包,可以方便地将新版本推送给用户,提供更好的用户体验。但在实现过程中需要注意安全和隐私问题,确保用户的授权和数据的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值