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í)無法操作多臺設(shè)備運(yùn)行腳本
工程文件中新建一個(gè)文件夾
新建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)程,如下:

多個(gè)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處理結(jié)構(gòu)化數(shù)據(jù)的12個(gè)核心模塊全解析
?在Python數(shù)據(jù)生態(tài)中,JSON模塊因其輕量級和跨語言特性成為最常用的結(jié)構(gòu)化數(shù)據(jù)處理工具,本文將深入探討12個(gè)核心模塊,覆蓋表格數(shù)據(jù)、二進(jìn)制序列化、配置管理、科學(xué)計(jì)算等六大場景,結(jié)合真實(shí)案例解析其技術(shù)特性,快跟隨小編一起了解下吧2025-10-10
Django動態(tài)隨機(jī)生成溫度前端實(shí)時(shí)動態(tài)展示源碼示例
本篇文章主要描述的是在動態(tài)隨機(jī)生成溫度,在前端動態(tài)實(shí)時(shí)展示,主要用到兩個(gè)東西,一個(gè)是APScheduler定時(shí)任務(wù) 和websocket,最后利用echarts將數(shù)據(jù)展示出來,下面對這兩個(gè)分別進(jìn)行詳細(xì)的解說2021-09-09
Python 統(tǒng)計(jì)位數(shù)為偶數(shù)的數(shù)字代碼詳解
這篇文章主要介紹了Python 統(tǒng)計(jì)位數(shù)為偶數(shù)的數(shù)字,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
Python selenium 自動化腳本打包成一個(gè)exe文件(推薦)
這篇文章主要介紹了Python selenium 自動化腳本打包成一個(gè)exe文件,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01
python3 numpy中數(shù)組相乘np.dot(a,b)運(yùn)算的規(guī)則說明
這篇文章主要介紹了python3 numpy中數(shù)組相乘np.dot(a,b)運(yùn)算的規(guī)則說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
python刪除指定目錄下的文件和文件夾的實(shí)現(xiàn)
在日常的辦公中,我們可以利用Python批量刪除文件和文件夾,本文就來介紹一下python刪除指定目錄下的文件和文件夾的實(shí)現(xiàn),感興趣的可以了解一下2024-01-01

