前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Appium系列(二十二)基于tidevice封装IOS的adb命令

Appium系列(二十二)基于tidevice封装IOS的adb命令

作者头像
雷子
发布2021-04-15 15:03:38
1.2K0
发布2021-04-15 15:03:38
举报

Appium系列分享

Appium自动化(一)常用的API接口

Appium自动化(二)常用的API接口

Appium自动化(三)常用的API接口

Appium自动化(四)常用的API接口

Appium自动化(五)常用的API接口

Appium自动化(六)Appium启动app

Appium自动化(七)通过脚本自动化获取apk的包名和对应启动activity

Appium自动化(八)通过脚本自动化获取设备deviceName和platformVersion

Appium自动化(九)如何处理多设备的启动参数

Appium自动化(十)如何控制多设备并行执行测试用例

Appium自动化(十一)实现一个简单的登陆功能

Appium自动化(十二)Appium+unittest组织测试用例

Appium自动化(十三)引入ddt管理测试用例数据

Appium自动化(十四)引入分层化思想优化代码

Appium系列(十五)继续利用分层化思想优化代码

Appium系列(十六)如何维护用例中定位元素

Appium系列(十七)将Appium服务端口号通过参数传递给测试用例

Appium系列(十八)多设备并行执行测试用例

Appium系列(十九)解决多机并行中的问题

Appium系列(二十)分析现有不足,打造牛逼测试框架

Appium系列(二十一)优化待测apk的传入和desired_caps内容优化

Appium系列(二十一)操作IOS设备利器——tidevice

前言

在前面的分享中,tidevice我们引入了进来,那么我们要干什么用呢,其实就是要用在,获取设备、安装应用上。那么我们看下如何封装。

正文

之前我们分享了Appium系列(二十一)操作IOS设备利器——tidevice,我们利用tidevice来封装获取设备,获取系统版本,是否安装应用,安装卸载操作。方便我们自动化操作。

1.获取链接设备

代码语言:javascript
复制
def getdeviceslist()->list:
    all_devices = []
    cmd = "tidevice list"
    reslut = os.popen(cmd).readlines()
    for item in reslut:
        if item != "\n":
            all_devices.append(str(item).split("\t")[0].split(' ')[0])
    return all_devices

返回给我们所有的设备的列表。

2.获取设备系统

代码语言:javascript
复制
def getplatfoemversion(devices:str) ->str:
    cmd='tidevice --udid %s info'%devices
    reslut = os.popen(cmd).readlines()
    for i in reslut:
        if 'ProductVersion' in i:
            return ((i).split(" ")[-1].split('\\n')[0])
    return  ''

需要我们传入的devices的udid来获取。

3.判断是否安装应用

代码语言:javascript
复制
def isinstallapk(packname: str, devices: str) -> bool:
    cmd = "tidevice  --udid {} applist".format(devices)
    reslut = os.popen(cmd).readlines()
    all_apkname = []
    for i in reslut:
        apkname = str(i).split(' ')[0]
        all_apkname.append(apkname)
    if packname in all_apkname:
        return True
    return False

获取安装的app的列表,然后去查看是否有要安装的app。

4.安装app

代码语言:javascript
复制
def installapk(paknamepath: str, devices: str) -> bool:
    cmd = 'tidevice --udid  %s install %s' % (devices, paknamepath)
    os.system(cmd)
    return True

传入app的路径,传入设备的udid即可

5.卸载app

代码语言:javascript
复制
def uninstallapk(packname: str, devices: str) -> bool:
    reslut=isinstallapk(packname,devices)
    if reslut:
        cmd = 'tidevice  --udid %s uninstall %s ' % (devices, packname)
        os.system(cmd)
        return True
    return False

卸载的包名,安装的设备信息。然后完成来设备的安装。

上面的封装呢,都是在tidevice的命令上进行来封装,在我们利用的时候会更加简单,方便我们日后在正常使用的过程中直接调用,使用即可。

后续,我们将在现有的代码中,适配IOS设备使用它。完整的代码如下

代码语言:javascript
复制
import os

def getdeviceslist()->list:
    all_devices = []
    cmd = "tidevice list"
    reslut = os.popen(cmd).readlines()
    for item in reslut:
        if item != "\n":
            all_devices.append(str(item).split("\t")[0].split(' ')[0])
    return all_devices
def getplatfoemversion(devices:str) ->str:
    cmd='tidevice --udid %s info'%devices
    reslut = os.popen(cmd).readlines()
    for i in reslut:
        if 'ProductVersion' in i:
            return ((i).split(" ")[-1].split('\\n')[0])
    return  ''

def isinstallapk(packname: str, devices: str) -> bool:
    cmd = "tidevice  --udid {} applist".format(devices)
    reslut = os.popen(cmd).readlines()
    all_apkname = []
    for i in reslut:
        apkname = str(i).split(' ')[0]
        all_apkname.append(apkname)
    if packname in all_apkname:
        return True
    return False
def uninstallapk(packname: str, devices: str) -> bool:
    reslut=isinstallapk(packname,devices)
    if reslut:
        cmd = 'tidevice  --udid %s uninstall %s ' % (devices, packname)
        os.system(cmd)
        return True
    return False
def installapk(paknamepath: str, devices: str) -> bool:
    cmd = 'tidevice --udid  %s install %s' % (devices, paknamepath)
    os.system(cmd)
    return True

如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档