Appium+Python3 并发启动Appium服务

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019-07-26 11:27
# @Author : zhouyang
# @File : mulit_appium.py
'''
用python脚本同时启动多个appium服务,不是并发
端口配置如下:
Appium服务器端口:4723 , bp端口:4724
Appium服务器端口:4724 , bp端口:4726
host:127.0.0.1
注:bp端口(--bootstrap-port)是appium和设备之间通信的端口,如果不指定,到时无法操作多台设备运行脚本

校验是否启动成功:netstat -ano |findstr 端口号

关闭服务:1.直接在任务管理器根据pid值进行关闭进程
2.使用命令:taskkill -f -pid appium进程id
'''

import subprocess
from time import ctime

def appium_start(host,port):
    bootstrap_port=str(port+1)
    cmd='start /b appium -a '+ host +' -p '+ str(port) +' -bp '+ str(bootstrap_port)

    print('%s at %s'%(cmd,ctime()))
    subprocess.Popen(cmd,shell=True,stdout=open('./appium_log/'+str(port)+'.log','a'),stderr=subprocess.STDOUT)

if __name__ == '__main__':
    host='127.0.0.1'
    # port=4723
    # appium_start(host,port)

    #启动两个进程
    for i in range(2):
        port=4723+2*i
        appium_start(host,port)

以上是开启多个Appium服务,并非并发
以下案例是并发

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019-07-26 11:27
# @Author : zhouyang
# @File : mulit_appium.py
'''
用python脚本同时启动多个appium服务,  并发
端口配置如下:
Appium服务器端口:4723 , bp端口:4724
Appium服务器端口:4724 , bp端口:4726
host:127.0.0.1
注:bp端口(--bootstrap-port)是appium和设备之间通信的端口,如果不指定,到时无法操作多台设备运行脚本

校验是否启动成功:netstat -ano |findstr 端口号

关闭服务:1.直接在任务管理器根据pid值进行关闭进程
2.使用命令:taskkill -f -pid appium进程id
'''

import subprocess
from time import ctime
import multiprocessing

def appium_start(host,port):
    bootstrap_port=str(port+1)
    cmd='start /b appium -a '+ host +' -p '+ str(port) +' -bp '+ str(bootstrap_port)

    print('%s at %s'%(cmd,ctime()))
    subprocess.Popen(cmd,shell=True,stdout=open('./appium_log/'+str(port)+'.log','a'),stderr=subprocess.STDOUT)

appium_process=[]
for i in range(2):
    host = '127.0.0.1'
    port=4723+2*i
    appium=multiprocessing.Process(target=appium_start,args=(host,port))
    appium_process.append(appium)

if __name__ == '__main__':
    for appium in appium_process:
        appium.start()

    for appium in appium_process:
        appium.join()
原文地址:https://www.cnblogs.com/xiuxiu123456/p/11322195.html