appium python unittest_Appium+python+excel+unittest+ddt+多设备进行APP自动化测试

一、环境搭建

Appium+Python3

python第三方库:Appium-Python-Client、ddt、xlrd、xlutils

二、项目结构设计

image

三、代码实现

image

四、具体分析

1、Appium的server封装(多设备)

首先检测电脑已连接设备信息,保存设备信息,Server按设备数量命令行启动多个服务,以下为server类部分代码:

class Server(object):

def __init__(self):

self.project_dir = Tools.get_project_dir()

device_config_path = self.project_dir + '/config/device.ini'

self.cf = ConfigOperate(device_config_path)

def main(self, device_list=None):

"""

多进程启动appium server主程序

:param device_list: 设备列表

:return:

"""

if device_list is None: # 如果设备列表没有传进来,则自动去当前系统里去获取

device_list = self._get_android_devices() # 获取安卓设备列表

if device_list:

appium_port_list = self._create_port_list(4700, len(device_list))

bootstrap_port_list = self._create_port_list(4900, len(device_list))

self.cf.clean() # 先清空device配置文件

for i in range(len(device_list)):

port = appium_port_list[i]

bport = bootstrap_port_list[i]

device = device_list[i]

server_log_path = os.path.join(Tools.get_project_dir(), 'logs', 'servers', '%s_%s.log' % (device, Tools.get_now_date('%Y-%m-%d_%H:%M:%S')))

self.cf.write_config(device, {'port': port, 'bport': bport, 'server_log_path': server_log_path}) # 把设备信息和端口信息写入配置文件

t = multiprocessing.Process(target=self.start_server, args=(port, bport, device, server_log_path))

t.daemon = True # 设置为守护进程,且一定要在t.start()前设置,设置t为守护进程,禁止t创建子进程,并且父进程代码执行结束,t即终止运行

t.start()

else:

raise ValueError('当前没有任何连接设备')

def start_server(self, port, bport, device, log_path=None):

"""

创建子进程运行ap

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值