Python启动多个Appium Services

复制代码
#! /usr/bin/env pyhton
# -*- coding:utf-8 -*-
# author:jeff.xie
# datetime:2024/4/12 16:23
# software:PyCharm

import  subprocess
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from time import sleep
import time


def appium_start(host, port):
# 指定bp端口号
bootstrap_root = str(port+1)
# 把cmd弹窗输入的命令,直接些在这里
cmd = 'start /b appium -a ' + host + ' -p ' +str(port)+' -bp ' +str(bootstrap_root)
# 去掉 /b 即可打开cmd弹窗运行
cmd = 'start appium -a ' + host + ' -p ' +str(port)+' -bp ' +str(bootstrap_root)

    #打印输入的cmd命令以及时间
    print('%s at %s' %(cmd, time.ctime()))
    subprocess.Popen(cmd, shell= True, stdout=open('./appium_log/'+str(port)+'.log','a'), stderr=subprocess.STDOUT)

def run_case(host, port):
    print(time.strftime("%H:%M:%S"))
    desired_caps = {}
    # 系统
    desired_caps['platformName'] = 'Android'
    # 手机版本,在手机中:设置--关于手机
    desired_caps['platformVersion'] = '11'
    # 设备号
    desired_caps['deviceName'] = '9b2157cfaedb'
    # 包名
    desired_caps['appPackage'] = 'welab.bank.mobile.stage'
    # desired_caps['appPackage'] = 'welab.bank.sit'
    # # 启动名
    desired_caps['appActivity'] = 'com.welabfrontend.MainActivity'
    # desired_caps["unicodeKeyboard"] = "True"#appium提供的一种输入法,可以传中文。测试时直接用这个输入法
    # desired_caps["resetKeyboard"] = "True"#程序结束时重置原来的输入法
    # desired_caps["noReset"] = "True"#不初始化手机app信息(类似不清除缓存)
    # driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
    driver = webdriver.Remote("http://"+host+":"+str(port)+"/wd/hub", desired_caps)

    driver.wait_activity("com.welabfrontend.MainActivity", 50)
    sleep(5)
    print(time.strftime("%H:%M:%S"))


if __name__ == '__main__':
    host = '127.0.0.1'
    # 运行一个端口
    # port = 4723
for i in range(2):
port = 4723 + 2\* i
appium_start(host, port)

    run_case(host, 4723)
    run_case(host, 4725)



一.端口号设置
Appium服务器端口:4723 bp端口:4724
Appium服务器端口:4725 bp端口:4726
可以看到appium服务器端口和bp端口是相差一位的
什么是bp端口?
bp端口就是bootstrap port,是appium和手机之间的通讯端口,
如果不能指定到,则无法运行多台设备
二.脚本命令写法
在cmd窗口,我们运行设备,是 appium -a host -p 端口号 -bp 端口号
那么我们写在python脚本就是一样的,只不过参数化而已  
/b 是指不打开cmd弹窗运行‘
三.输入到日志
stdout=open('./appium_log/'+str(port)+'.log','a')

启动校验

3.1 通过cmd命令查看

3.1.1查看指定端口号

netstat -ano | findstr 端口号

3.1.2 查看全部端口号

netstat -ano

3.2 通过生成的log文件查看

直接在生成的log文件中,查看即可

3.2.1生成的log文件

3.2.2log文件的内容

相关推荐
databook1 小时前
使用 SciPy 库进行时间序列分析
python·数据分析·scipy
java资料站1 小时前
十一、评估测试
开发语言·人工智能·python
szial2 小时前
网络爬虫与 CDP 实战(二):浏览器能访问,Python 却被拒绝?拆开登录态与 CSRF
爬虫·python·csrf
青少儿编程课堂3 小时前
后缀自动机解析:本质不同子串与最长重复片段统计
c++·python·算法·bfs·信息学竞赛
怕浪猫3 小时前
LLM 面试必问的 8 个问题,答不上来直接淘汰
人工智能·python·面试
老歌老听老掉牙4 小时前
从三维旋转的深度解析到Python实现:绕任意轴旋转的奥秘
python·三维旋转
打工仔折腾 AI4 小时前
工业场景下时序库与实时计算一体化架构选型实践对比
java·开发语言·后端·python·性能优化·架构·ai agent 实战
梦幻精灵_cq5 小时前
sumdir——一个伪python.built-in的“术法”打造
python
weixin_440730506 小时前
函数return、参数、参数组、递归函数、高阶函数等小结
开发语言·python
天赐范式6 小时前
天赐范式第181天:让视图开始切换——PBFT视图切换与从safety到liveness的跨越
python·pbft·数字生命·天赐范式·动态运行时·拜占庭容错