appium-python自动开启和关闭服务(win/mac)

发布时间 2023-12-30 21:20:59作者: yimu-yimu

后台启动&关闭appium server的命令

启动appium:appium -a 127.0.0.1 -p 4723 --log xxx.log --local-timezone

Appium 服务命令行参数

  • 启动appium
  • -p 4723 指定端口
  • --log xxx.log指定日志保存到指定文件内(可以是绝对路径)
  • --local-timezone指定时间为本地时间
  • --log-level error设置日志级别,默认是debug
  • win平台在命令的开始添加start /b,mac平台在命令的末尾添加&:表示后台启动,不加时,后续的程序无法运行(终端单独启动时可以不加)
# win
start /b appium -a 127.0.0.1 -p 4723  --log xxx.log --local-timezone
# mac
appium -a 127.0.0.1 -p 4723  --log xxx.log --local-timezone  &
关闭appium
  • 关闭相应端口对应的进程即可

根据端口号查看进程&关闭相应的进程

win系统

 

  • 根据端口号查找进程号netstat -o -n -a | findstr :端口号
# 命令
netstat -aon|findstr 4723
# 结果
  TCP    127.0.0.1:4723         0.0.0.0:0              LISTENING       3352
  • 终止进程taskkill /F /PID 进程号(PID号)
# 命令
taskkill /f /pid 3352
# 结果
成功: 已终止 PID 为 3352 的进程。
  • 终止所有appium进程taskkill /f /t /im node.exe
mac系统
  • 根据端口号查找进程号:lsof -i tcp: 4723

  • 终止进程:kill 进程号(PID号)

实例代码

pc = input('请输入系统 win or mac:')
def stop_appium(post_num=4723):
    '''关闭appium服务'''
    if pc.upper() =='WIN':
        p = os.popen(f'netstat  -aon|findstr {post_num}')
        p0 = p.read().strip()
        if p0 != '' and 'LISTENING' in p0:
            p1 = int(p0.split('LISTENING')[1].strip()[0:4])  # 获取进程号
            os.popen(f'taskkill /F /PID {p1}')  # 结束进程
            print('appium server已结束')
    elif pc.upper() == 'MAC':
        p = os.popen(f'lsof -i tcp:{post_num}')
        p0 = p.read()
        if p0.strip() != '':
            p1 = int(p0.split('\n')[1].split()[1])  # 获取进程号
            os.popen(f'kill {p1}')  # 结束进程
            print('appium server已结束')

def start_appium(post_num=4723):
    '''开启appium服务'''
    stop_appium(post_num)    # 先判断端口是否被占用,如果被占用则关闭该端口号
    # 根据系统,启动对应的服务
    cmd_dict = {
        'WIN':f' start /b appium -a 127.0.0.1 -p {post_num} --log xxx.log --local-timezone ',
        'MAC':f'appium -a 127.0.0.1 -p {post_num} --log xxx.log --local-timezone  & '
    }
    os.system(cmd_dict[pc.upper()])
    time.sleep(3)  # 等待启动完成
    print('appium启动成功')

 


链接:https://www.jianshu.com/p/83878bc0870c