appium--python启动appium服务
前戏
前面我们都是在cmd下通过输入appium加端口号来启动服务的,在我们做自动化的时候,我们当然不希望我们手动启动appium服务,而是希望通过脚本自动启动appium服务。
我们可以使用subprocess模块,该模块可以创建新的进程,并且连接到进程的输入,输出,错误等管道信息,并且可以获取进程的返回值
使用python启动appium服务,端口配置如下
- appium服务器端口:4723,bp端口为4724
- appium服务器端口:4725,bp端口为4726
说明:bp端口(--bootstrap-port)是appium和设备之间通信的端口,如果不指定到时无法操作多台设备 运行脚本
启动单个服务
import subprocess def appium_start(host, port):
bootstrap_port = str(port + 1)
cmd = 'start /b appium -a '+host+' -p '+str(port)+' -bp '+str(bootstrap_port)
print(cmd)
subprocess.Popen(cmd, shell=True, stdout=open('../test_case/'+str(port)+'.log','a'),stderr=subprocess.STDOUT) if __name__ == '__main__':
host = '127.0.0.1'
port = 4723
appium_start(host, port)
结果:
start /b appium -a 127.0.0.1 -p 4723 -bp 4724
使用os模块启动
注意:如果端口已经启动了,在启动是不会报错的,放心执行吧,但是如果这个端口被其他服务占用了,则会报错
import os def appium_start(host, port):
bootstrap_port = str(port + 1)
cmd = 'appium -a %s -p %s'%(host, port)
os.system(cmd) if __name__ == '__main__':
host = '127.0.0.1'
port = 4723
appium_start(host, port)
启动校验
启动后我们需要校验是否启动成功,校验方法如下
1.查看有没有生成对应的log文件,里面的appium日志
2.使用如下命令来查看
netstat -ano | findstr 端口号

netstat命令是一个监控TCP/IP网络非常有用的工具,它可以显示路由表,实际的网络连接以及每一个网络接口设备的状态信息,输入netstat -ano回车,可以查看本机开放的全部端口,输入命令netstat -h可以查看全部参数含义
关闭appium服务
上面我们启动了appium的服务,但不能一直不关闭,会消耗我们的系统资源,所以我们一般在执行完自动化之后,希望关闭掉appium服务
关闭服务也有两种方式
1.通过netstat命令找到对应的appium进程pid然后在资源管理器中关闭
2.使用命令关闭
taskkill -f -pid appium进程id

启动多个appium服务
上面我们是启动了一个appium服务,启动多个服务很简单,只需要在执行环境中循环调用即可
import subprocess def appium_start(host, port):
bootstrap_port = str(port + 1)
cmd = 'start /b appium -a '+host+' -p '+str(port)+' -bp '+str(bootstrap_port)
print(cmd)
subprocess.Popen(cmd, shell=True, stdout=open('../test_case/'+str(port)+'.log','a'),stderr=subprocess.STDOUT) if __name__ == '__main__':
host = '127.0.0.1'
port = 4723
for i in range(2):
port = 4723+2*i
appium_start(host, port)
多进程启动多个appium服务
import subprocess
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(cmd)
subprocess.Popen(cmd, shell=True, stdout=open('../test_case/'+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()
appium--python启动appium服务的更多相关文章
- appium+Python 启动app(二)
我们上步操作基本完成,下面介绍编写Python脚本启动app 打开我们pycharm新建.py文件 第一步:输入Python脚本代码: #coding=utf-8 from appium import ...
- appium+Python 启动app(一)
当我们appium和Python环境都配置好了,如何启动我们第一个app呢?下面介绍appium+Python启动app的操作步骤,为了能够详细查看,我们这里使用夜游神模拟器进行示范. 测试项目:QQ ...
- appium+python 启动一个app步骤
询问度娘搭好appium和python环境,开启移动app自动化的探索(基于Android),首先来记录下如何启动待测的app吧! 如何启动APP?1.获取包名:2.获取launcherActivit ...
- Windows&Appium&Python自动化测试-Appium安装
一.安装node.js 官方下载地址为:https://nodejs.org/en/download 傻瓜式安装即可,安装完成后,CMD中运行node -v查看版本号 输入npm 出现如上图信息,表示 ...
- Appium + python - 监控appium server start
import osimport time as t def start_appium(port = 4723,udid="4871660c"): a = os.popen(&quo ...
- Python 启动本地服务
在 Linux 服务器上或安装了 Python 的机器上,Python自带了一个WEB服务器 SimpleHTTPServer,我们可以很简单的使用 python -m SimpleHTTPServ ...
- appium+python自动化☞appium python api大全
整理了一些常用的appium python api,供学习使用...
- Appium+python启动虚拟机上的app
查看appPackage和appActivity方法: 1.先在cmd命令行输入 adb logcat ActivityManager:I *:s 2.点击虚拟机启动app即可查看,/前是appPa ...
- appium+Python 启动app(三)登录
我们根据前面的知识点,用uiautomatorviewer工具来获取我们当前的元素 (注:uiautomatorviewer 是 android sdk 自带的) 知识点:appium的webdriv ...
- Appium+python自动化-appium元素定位
前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一.id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性
随机推荐
- vue项目实现路由按需加载的3种方式
vue异步组件技术 ==== 异步加载vue-router配置路由 , 使用vue的异步组件技术 , 可以实现按需加载 .但是,这种情况下一个组件生成一个js文件 /* vue异步组件技术 */ { ...
- 让你的网页"抖起来"?!?
细心的小伙伴可能发现我的左下角有一个抖起来的小按钮,然后页面就开始皮了起来,哈哈好快乐啊 没有利用js,单独的使用了css3的动画就实现了这个效果 css设置 @keyframes shake-it{ ...
- 适合新手:从零开发一个IM服务端(基于Netty,有完整源码)
本文由“yuanrw”分享,博客:juejin.im/user/5cefab8451882510eb758606,收录时内容有改动和修订. 0.引言 站长提示:本文适合IM新手阅读,但最好有一定的网络 ...
- 10-scrapy框架介绍
Scrapy 入门教程 Scrapy 是用 Python 实现的一个为了爬取网站数据.提取结构性数据而编写的应用框架. Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 通 ...
- Oracle中的一些基本操作
关于Oracle中的一些基本操作,包括表空间操作,用户操作,表操作 --创建表空间 create tablespace itheima datafile 'I:\oracle\table\itheim ...
- tinker接入
对于热修复无非就是两大类,一类是tencent代表的classloader模式的,另一类是阿里系代表的底层方面替换. 下面以本人的经验介绍下微信的tinker接入: 命令行接入方式: gradle接入 ...
- Redis for OPS 05:哨兵HA Sentinel
写在前面的话 上一节的主从环境能够解决我们保证数据安全性的问题,但是却无法解决我们在主节点挂掉的时候服务继续使用的问题,同时也不能自动切换新的主. 我们运维的目的肯定是希望即使主库挂掉一个,服务依旧能 ...
- GO的执行原理以及GO命令
Go的执行原理以及Go的命令 一.Go的源码文件 Go 的源码文件分类: 如上图,分为三类: 1.命令源码文件: 声明自己属于 main 代码包.包含无参数声明和结果声明的 main 函数. 命令源码 ...
- 【数字图像分析】基于Python实现 Canny Edge Detection(Canny 边缘检测算法)
Canny 边缘检测算法 Steps: 高斯滤波平滑 计算梯度大小和方向 非极大值抑制 双阈值检测和连接 代码结构: Canny Edge Detection | Gaussian_Smoothing ...
- 2018-2-13-win10-UWP-MessageDialog-和-ContentDialog
原文:2018-2-13-win10-UWP-MessageDialog-和-ContentDialog title author date CreateTime categories win10 U ...