Appium系列分享
Appium自动化(七)通过脚本自动化获取apk的包名和对应启动activity
Appium自动化(八)通过脚本自动化获取设备deviceName和platformVersion
Appium自动化(十二)Appium+unittest组织测试用例
Appium系列(十七)将Appium服务端口号通过参数传递给测试用例
Appium系列(二十一)优化待测apk的传入和desired_caps内容优化
Appium系列(二十一)操作IOS设备利器——tidevice
前言
在前面的分享中,tidevice我们引入了进来,那么我们要干什么用呢,其实就是要用在,获取设备、安装应用上。那么我们看下如何封装。
正文
之前我们分享了Appium系列(二十一)操作IOS设备利器——tidevice,我们利用tidevice来封装获取设备,获取系统版本,是否安装应用,安装卸载操作。方便我们自动化操作。
1.获取链接设备
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.获取设备系统
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.判断是否安装应用
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
def installapk(paknamepath: str, devices: str) -> bool:
cmd = 'tidevice --udid %s install %s' % (devices, paknamepath)
os.system(cmd)
return True
传入app的路径,传入设备的udid即可
5.卸载app
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设备使用它。完整的代码如下
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
如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~