appium-python自动开启和关闭服务(win/mac)
后台启动&关闭appium server的命令
启动appium:appium -a 127.0.0.1 -p 4723 --log xxx.log --local-timezone
- 启动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