python多線程多并發(fā)啟動appium服務(wù)的實(shí)現(xiàn)
Python啟動Appium 服務(wù)
使用Dos命令或者bat批處理來手動啟動appium服務(wù),啟動效率低下。如何將啟動Appium服務(wù)也實(shí)現(xiàn)自動化呢?
這里需要使用subprocess模塊,該模塊可以創(chuàng)建新的進(jìn)程,并且連接到進(jìn)程的輸入、輸出、錯誤等管道信息,并且可以獲取進(jìn)程的返回值。
場景
使用Python啟動2臺appium服務(wù),端口配置如下:
- Appium服務(wù)器端口:4723,bp端口為4724
- Appium服務(wù)器端口:4725,bp端口為4726
說明:bp端口( –bootstrap-port)是appium和設(shè)備之間通信的端口,如果不指定到時無法操作多臺設(shè)備運(yùn)行腳本
工程文件中新建一個文件夾
新建multi_subprocess.py
# -*- coding: utf-8 -*-#
import subprocess
from time import ctime
def appium_start(host,port):
# bp端口( –bootstrap-port)是appium和設(shè)備之間通信的端口
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('../appiumlog/'+str(port)+'.log', 'a'), stderr=subprocess.STDOUT)
if __name__ == '__main__':
host = '127.0.0.1'
port = 4723
appium_start(host,port)效驗(yàn)是否成功 :
1.cmd中輸入netstat -ano | findstr 端口號(4723)

2. 在appiumlog路徑中生成4723.log日志文件

終止appium服務(wù)
taskkill -f -pid appium進(jìn)程,如下:

多個appium服務(wù)啟動
if __name__ == '__main__':
host = '127.0.0.1'
for i in range(2):
port=4723+2*i
appium_start(host,port)多進(jìn)程并發(fā)啟動appium服務(wù)
上面還不是并發(fā)執(zhí)行啟動appium,因此需要使用多進(jìn)程來實(shí)現(xiàn)并發(fā)啟動。
同樣需要引入multiprocessing多進(jìn)程模塊。
muti_appium_sync.py
import multiprocessing
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) + ' --bootstrap-port ' + str(bootstrap_port)
print('%s at %s' % (cmd, ctime()))
subprocess.Popen(cmd, shell=True,stdout=open('./appiumlog/'+str(port)+'.log', 'a'), stderr=subprocess.STDOUT)
#構(gòu)建appium進(jìn)程組
appium_process=[]
#加載appium進(jìn)程
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__':
#并發(fā)啟動appium服務(wù)
for appium in appium_process:
appium.start()
for appium in appium_process:
appium.join()到此這篇關(guān)于python多線程多并發(fā)啟動appium服務(wù)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python多線程多并發(fā)啟動appium服務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python用于url解碼和中文解析的小腳本(python url decoder)
這篇文章主要介紹了python用于url解碼和中文解析的代碼,需要的朋友可以參考下2013-08-08
python實(shí)現(xiàn)定時提取實(shí)時日志程序
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)定時提取實(shí)時日志程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06
matplotlib實(shí)現(xiàn)矩陣和圖像的可視化表示
這篇文章主要為大家詳細(xì)介紹了如何利用matplotlib實(shí)現(xiàn)矩陣和圖像的可視化表示,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解下2024-03-03

