今天,我们聊一聊如果自动化实现在多台设备上运行脚本。
一、首先我们回忆一下如何在一台设备上运行python脚本,一般分为三步
1、启动appium服务
2、创建驱动
3、运行python脚本
同样的,运行多台设备,也基本是这三个步骤
1、启动多个appium服务(通过设置不同端口,并关联设备)
2、创建驱动,并确保端口号和设备关联,并和步骤1保持一致
3、多线程或多进程运行脚本。
二、步骤分解
我们下面分别看这三个步骤如何实现
1、启动多个appium服务,"appium -p appium_port -bp bootstrap_port -U devicename --no-reset --session-override"
需要解决如下问题
1)如何在python中运行dos命令
2)如何获取设备
3)如何创建可用端口(非占用)
2、创建驱动,难点在于,创建的驱动需要和步骤1中的服务关联起来,确保端口、设备、驱动一一对应
解决思路
1)将步骤1生成命令的同时,将变量(appium_port、 bootstrap_port和devicename)写入文件(具体可以是init文件、yaml文件或其他)
2)创建驱动时,从文件中读取端口和设备名,
3、多线程或多进程运行脚本
实践发现使用多线程运行python脚本,在最新的appium服务下,有时会造成混乱,为了避免这个问题,此处我们使用多进程。
三、思路总结
1、在python中执行dos,获取设备信息,创建可用端口
2、执行dos命令,启动多个appium服务
3、将启动信息(端口和设备)写入yaml文件
4、从yaml文件中读取端口号和设备信息,创建对应的驱动
5、引入多进程,运行脚本