zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    【分布式】SpringCloud(2)--SpringCloud分布式架构思想的理解
    【分布式】SpringCloud(1)--基于RestTemplate构建简易微服务调用框架
    【问题管理】-- MyBatis实体类的属性名和数据库列名不一致解决方法汇总
    【开发工具】-- 一文全面解析 Postman 工具
    【数据库】Redis(4)--Redis进阶Redis配置与持久化
    【数据库】Redis(3)--Redis事务、Jedis、SpringBoot整合Redis
    分享的面试问题,java学习教程
    怎么保证缓存和数据库一致性
    详解一条 SQL 的执行过程
    json字符串{"1-3": 29},{"8-": 50},{"8-": 50},返回 1-3天 29,大于8天 100
  • 原文地址:https://www.cnblogs.com/xiuxiu123456/p/11322195.html
Copyright © 2011-2022 走看看