更正下,上一篇文章应该是系列的第二十六篇。本文是第二十七篇。上一篇Appium系列(二十五)封装操作stf的方法我们对stf的方法进行一次封装,但是这次封装完毕呢,在对于我们的测试代码来说,还是不能一次使用的。中间还得需要处理,那么我们应该怎么办呢。本文带你揭秘。
正文
我们在思考,我们要把方法打造成为一个更加自动化,那么我们申请设备的,我们要做成可以配置的设备。根据配置的,我们可以自动申请设备,进行测试,测试完毕后,我们归还设备即可。那么我们需要对于我们的现有的方法做改造。
01
改造原来的adbtool
1.增加远程连接设备操作
2.增加释放远程设备操作
如何实现呢,很简单,我们可以根据
adb connect **
adb disconnect **
来处理,具体如何实现呢。代码展示
def connectphone(connecturl:str)->bool:
os.popen("adb connect %s" % connecturl)
reslut = os.popen("adb devices").read()
devices = str(reslut).split("\n")
for i in devices[1:]:
if i!="" and i.split("\t")[0].split(" ")[0] ==connecturl:
return True
return False
def unconnectphone(connecturl:str):
os.popen("adb disconnect %s"%connecturl)
02
定义设备连接信息的配置化
我们就是实现如何远程连接设备,操作设备了,为了方便呢,我们把要测试的设备呢,存在json文件中,格式如下:
{
"devices": ["192.168.56.107:5555"]
}
03
实现设备连接释放设备公共方法
有了链接设备,断开设备,测试需要设备配置文件,那么我们接下来就是封装方法。
主要提供:链接测试所需设备,断开测试设备。
注:方法我暂时存放在了StfTestPhoneUntil.py
class OpearPhoneTestPhone(object):
'''操作设备'''
def __init__(self):
self.path=os.path.join(os.path.join(os.getcwd(),'common'),'stfconnect.json')
self.json=json.load(self.path)
self.devices=self.json['devices']
self.stfphone=StfPhoneOpear()
'''申请设备'''
def opearphone(self)->bool:
all_list_phone = self.stfphone.getstflist()
if len(self.devices)>0:
for device in all_list_phone:
if device in self.devices and device['user'] is False :
connect_result=connectphone(device['remoteConnectUrl'])
if connect_result:
continue
return True
else:
return False
'''释放设备'''
def realese(self):
all_list_phone=self.stfphone.getstflist()
if len(self.devices) > 0:
for device in all_list_phone:
if device in self.devices and device['user'] is True:
connecturl = device['remoteConnectUrl']
unconnectphone(connecturl)
self.stfphone.removeroneophen(device['serial'])
封装好了方法,以及可以根据配置文件申请设备,接下来就可以在把这里做进到测试框架。