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实现图书超期提醒

    利用Python实现图书超期提醒

    很多人喜欢逛图书馆,时不时去借本书,但每本书可能只可以借两个月,一旦超期不还就会进行相应的处罚!为什么不写个脚本来通知自己图书超期呢?说了这么多废话,我们就进入主题吧!!!
    2016-08-08
  • Python操作文件与HTML网页的入门指南

    Python操作文件与HTML网页的入门指南

    文章介绍了Python的os和sys库的基本用法,包括os.system命令执行、os.popen获取命令执行结果、sys库查询系统信息和接收命令行参数等,还介绍了HTML基础,包括HTML核心框架、常用标签、多媒体嵌入等,并给出了实战案例,需要的朋友可以参考下
    2026-03-03
  • Python处理结构化数据的12个核心模块全解析

    Python处理结构化数据的12个核心模块全解析

    ​在Python数据生态中,JSON模块因其轻量级和跨语言特性成为最常用的结构化数据处理工具,本文将深入探讨12个核心模块,覆盖表格数据、二进制序列化、配置管理、科学计算等六大场景,结合真实案例解析其技术特性,快跟随小编一起了解下吧
    2025-10-10
  • Flask response响应的具体使用

    Flask response响应的具体使用

    在flask中,想要给前端页面返回数据,必须是Response的对象,本文介绍了Flask response响应的使用,感兴趣的可以了解一下
    2021-07-07
  • Python多线程实例教程

    Python多线程实例教程

    这篇文章主要介绍了Python多线程,对比了新旧版本的Python在实现多线程的特点,并采用threading模块的实例来讲述了多线程的技巧,需要的朋友可以参考下
    2014-09-09
  • Django动态随机生成温度前端实时动态展示源码示例

    Django动态随机生成温度前端实时动态展示源码示例

    本篇文章主要描述的是在动态随机生成温度,在前端动态实时展示,主要用到两个东西,一个是APScheduler定时任务 和websocket,最后利用echarts将数据展示出来,下面对这两个分别进行详细的解说
    2021-09-09
  • Python 统计位数为偶数的数字代码详解

    Python 统计位数为偶数的数字代码详解

    这篇文章主要介绍了Python 统计位数为偶数的数字,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Python selenium 自动化脚本打包成一个exe文件(推荐)

    Python selenium 自动化脚本打包成一个exe文件(推荐)

    这篇文章主要介绍了Python selenium 自动化脚本打包成一个exe文件,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • python3 numpy中数组相乘np.dot(a,b)运算的规则说明

    python3 numpy中数组相乘np.dot(a,b)运算的规则说明

    这篇文章主要介绍了python3 numpy中数组相乘np.dot(a,b)运算的规则说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python删除指定目录下的文件和文件夹的实现

    python删除指定目录下的文件和文件夹的实现

    在日常的办公中,我们可以利用Python批量删除文件和文件夹,本文就来介绍一下python删除指定目录下的文件和文件夹的实现,感兴趣的可以了解一下
    2024-01-01

最新评论