多进程开启appium执行自动化用例
1,启动单进程服务
启动appium服务的命令: appium -a 127.0.0.1 -p 4723 --bootstrap-port 4724
def appium_start(host, port): bootstrap_port = str(port + 1) cmd = 'appium -a' + host + ' -p' + str(port) + ' --bootstrap-port' + str(bootstrap_port) subprocess.Popen(cmd, shell=True, stdout=open('./' + str(port) + '-log', 'a'), stderr=subprocess.STDOUT)
2, 多进程启动服务
def appium_servers(port): # 构建appium进程组 appium_process = [] # 根据手机数量创建进程 watchlist = [] # 加载appium进程 for i in range(2): # len(watchlist) ip = '127.0.0.1' port1 = port + 2 * i if check_port(ip, port): appium = multiprocessing.Process(target=appium_start, args=(ip, port1)) appium_process.append(appium) else: release_port(port1) return appium_process
3,检测端口
def check_port(ip, port): sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: sk.connect((ip, port)) sk.shutdown(2) except OSError as msg: print('port {0} is available'.format(port)) return True else: print('port {0} already be in use !'.format(port)) return False
4,释放端口
# 释放端口 def release_port(port): # 关闭所有已开启的appium服务 cmd_kill = 'taskkill /F /t / IM node.exe' os.popen(cmd_kill)
5,启动多进程测试
def start_appium_server(port): # 并发启动appium服务 servers = appium_servers(port) for appium in servers: appium.start() for appium in servers: appium.join()

浙公网安备 33010602011771号