上一章已经回顾了整个架构分层,这篇就写最关键的识别测试机设备(只写了单个的,双机配合用例暂时直接u2.connnect(sn号)做区分,一个main方法压测,后续再修改到这个架构)
新建devices.py
写一个get_devices_id方法取到adb devices的sn号
- 执行sh命令得到结果
- 截取后通过正则表达式返回座位id号
def get_devices_id(self):
result = subprocess.check_output(['adb','devices']).decode()
pattern = re.compile(r'(?P<id>[^\s]+)\t(?P<state>device)')
devices = pattern.findall(result)[0][0]
return devices
加上初始方法,在加载时就取到sn号
def __init__(self):
self.device_id=self.get_devices_id()
加上未连接的方法做判断
def check_device(self):
if self.device_id:
self.deviceA = BasePage.set_devices(self.device_id)
else:
print('未找到设备')
测试用例中,先判断有无连上设备
deviceA = Devices().check_device()
调用封装的u2api,得到这个设备
@classmethod
def setup_class(cls):
cls.deviceA = BasePage.get_devices(cls)
BasePage中,做一个u2的连接
@classmethod
def set_devices(slef,device_id):
slef.deviceA= u2.connect(device_id)
def get_devices(self):
return self.deviceA
下一篇记载u2一些基本操作的封装,我的想法是将识别不到元素就抛异常,打印log一并写进去,那么每个步骤都有会log,很清晰。 以上就是整个项目的架构了,剩下的就是往框架里面搬砖了。 开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3天