Python启动Appium 服务
使用Dos命令或者bat批处理来手动启动appium服务,启动效率低下。如何将启动Appium服务也实现自动化呢?
这里需要使用subprocess模块,该模块可以创建新的进程,并且连接到进程的输入、输出、错误等管道信息,并且可以获取进程的返回值。
场景
使用Python启动2台appium服务,端口配置如下:
Appium服务器端口:4723,bp端口为4724
Appium服务器端口:4725,bp端口为4726
说明:bp端口( –bootstrap-port)是appium和设备之间通信的端口,如果不指定到时无法操作多台设备运行脚本
工程文件中新建一个文件夹
新建multi_subprocess.py
# -*- coding: utf-8 -*-#
import subprocess
from time import ctime
def appium_start(host,port):
# bp端口( –bootstrap-port)是appium和设备之间通信的端口
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('../appiumlog/'+str(port)+'.log', 'a'), stderr=subprocess.STDOUT)
if __name__ == '__main__':
host = '127.0.0.1'
port = 4723
appium_start(host,port)
效验是否成功 :
1.cmd中输入netstat -ano | findstr 端口号(4723)
2. 在appiumlog路径中生成4723.log日志文件
终止appium服务
taskkill -f -pid appium进程,如下:
多个appium服务启动
if __name__ == '__main__':
host = '127.0.0.1'
for i in range(2):
port=4723+2*i
appium_start(host,port)
多进程并发启动appium服务
上面还不是并发执行启动appium,因此需要使用多进程来实现并发启动。
同样需要引入multiprocessing多进程模块。
muti_appium_sync.py
import multiprocessing
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) + ' --bootstrap-port ' + str(bootstrap_port)
print('%s at %s' % (cmd, ctime()))
subprocess.Popen(cmd, shell=True,stdout=open('./appiumlog/'+str(port)+'.log', 'a'), stderr=subprocess.STDOUT)
#构建appium进程组
appium_process=[]
#加载appium进程
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__':
#并发启动appium服务
for appium in appium_process:
appium.start()
for appium in appium_process:
appium.join()
下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
软件测试面试小程序
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!
涵盖以下这些面试题板块:
1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux
6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础
资料获取方式 :