python多线程多并发启动appium服务的实现

 更新时间:2024年02月26日 14:55:01   作者:咖 啡加剁椒  
使用Dos命令或者bat批处理来手动启动appium服务,启动效率低下,本文主要介绍了python多线程多并发启动appium服务的实现,具有一定的 参考价值,感兴趣的可以了解一下

Python启动Appium 服务

使用Dos命令或者bat批处理来手动启动appium服务,启动效率低下。如何将启动Appium服务也实现自动化呢?

这里需要使用subprocess模块,该模块可以创建新的进程,并且连接到进程的输入、输出、错误等管道信息,并且可以获取进程的返回值。

场景

使用Python启动2台appium服务,端口配置如下:

  • Appium服务器端口:4723,bp端口为4724
  • Appium服务器端口:4725,bp端口为4726

说明:bp端口( –bootstrap-port)是appium和设备之间通信的端口,如果不指定到时无法操作多台设备运行脚本

工程文件中新建一个文件夹

新建multi_subprocess.py

# -*- coding: utf-8 -*-#

import subprocess
from time import ctime

def appium_start(host,port):
    # bp端口( –bootstrap-port)是appium和设备之间通信的端口
    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)

效验是否成功 :

1.cmd中输入netstat -ano | findstr 端口号(4723)

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

终止appium服务

taskkill -f -pid appium进程,如下:

多个appium服务启动

if __name__ == '__main__':
    host = '127.0.0.1'
    for i in range(2):
        port=4723+2*i
        appium_start(host,port)

多进程并发启动appium服务

上面还不是并发执行启动appium,因此需要使用多进程来实现并发启动。
同样需要引入multiprocessing多进程模块。

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)


#构建appium进程组
appium_process=[]

#加载appium进程
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__':
    #并发启动appium服务
    for appium in appium_process:
        appium.start()
    for appium in appium_process:
        appium.join()

到此这篇关于python多线程多并发启动appium服务的实现的文章就介绍到这了,更多相关python多线程多并发启动appium服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • python如何选取excel文件满足特定条件的行

    python如何选取excel文件满足特定条件的行

    这篇文章主要介绍了python如何选取excel文件满足特定条件的行问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • python 第三方库的安装及pip的使用详解

    python 第三方库的安装及pip的使用详解

    下面小编就为大家带来一篇python 第三方库的安装及pip的使用详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Mac下PyCharm快捷键分享

    Mac下PyCharm快捷键分享

    这篇文章主要介绍了Mac下PyCharm快捷键,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • python如何把嵌套列表转变成普通列表

    python如何把嵌套列表转变成普通列表

    这篇文章主要为大家详细介绍了python如何把嵌套列表转变成普通列表,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python 中 Shutil 模块详情

    Python 中 Shutil 模块详情

    这篇文章主要介绍了 Python 中 Shutil 模块,shutil可以简单地理解为sh + util,shell工具的意思。shutil模块是对os模块的补充,主要针对文件的拷贝、删除、移动、压缩和解压操作。下面来看文章详细内容
    2021-11-11
  • python用于url解码和中文解析的小脚本(python url decoder)

    python用于url解码和中文解析的小脚本(python url decoder)

    这篇文章主要介绍了python用于url解码和中文解析的代码,需要的朋友可以参考下
    2013-08-08
  • python实现定时提取实时日志程序

    python实现定时提取实时日志程序

    这篇文章主要为大家详细介绍了python实现定时提取实时日志程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • 如何查看python中安装库的文件位置

    如何查看python中安装库的文件位置

    这篇文章主要介绍了查看python中安装库的文件位置的方法,python自带标准库位置在安装环境的lib文件夹下的.py文件都是,在环境的lib文件夹中,本文给大家详细讲解需要的朋友可以参考下
    2022-11-11
  • Python实现多个Word文档合并

    Python实现多个Word文档合并

    在Python中,可以使用Python-docx库来操作Word文档,所以下面小编就为大家介绍一下如何利用Python-docx实现多个Word文档合并功能吧,需要的可以参考一下
    2023-06-06
  • matplotlib实现矩阵和图像的可视化表示

    matplotlib实现矩阵和图像的可视化表示

    这篇文章主要为大家详细介绍了如何利用matplotlib实现矩阵和图像的可视化表示,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解下
    2024-03-03

最新评论