Appium并发测试(6)-同时在2个设备上启动APP

Appium并发测试(6)-同时在2个设备上启动APP_第1张图片

脚本设备思路:

  1. 启动单个服务
  2. 启动单个设备并启动应用
  3. 利用多进程并发启动多个服务(具体设计思路如下)

Appium并发测试(6)-同时在2个设备上启动APP_第2张图片

  1. 利用多进程并发启动多个设备并启动应用(具体设计思路如并发启动多个appium服务)

 

 

完整脚本:

from  time import sleep
import multiprocessing
from multi_appium.multi_server_sync import appium_start
from find_element.desired_caps import appium_desire
from multi_appium.check_port import *

devices_list=['127.0.0.1:62001','0483909e']  #启动多个模拟器
def start_appium_action(host,port):
    #检测端口是否被占用,如果没有被占用则启动appium服务
    if check_port(host,port):
        appium_start(host,port)
        return True
    else:
        print("appium %s start failed!" %port)
        return False
def start_devices_action(udid,port):
    #检测appium服务是否启动,启动成功则再启动app,否则释放端口
    host='127.0.0.1'
    if start_appium_action(host,port):
        appium_desire(udid,port)
    else:
        release_port(port)

def appium_start_sync():
    print("=====并发启动appium服务=====")
    appium_process=[]
    # 加载appium进程
    for i in range(len(devices_list)):
        host = '127.0.0.1'
        port = 4723+2*i
        appium = multiprocessing.Process(target=start_appium_action, args=(host, port))
        appium_process.append(appium)
    for appium in appium_process:
            appium.start()
    for appium in appium_process:
            appium.join()
        #appiumq启动后需要等待几秒后才会启动成功
        #sleep(10)


def devices_start_sync():
    print("=====并发启动设备=====")
    desired_process = []
    # 加载desired进程
    for i in range(len(devices_list)):
        port = 4723+2*i  # 第一个端口号是4723,第二个是4725
        desired = multiprocessing.Process(target=start_devices_action, args=(devices_list[i], port))
        desired_process.append(desired)
    # 同时启动多设备执行测试
    for desired in desired_process:
        desired.start()
    for desired in desired_process:
        desired.join()

if __name__ == '__main__':
    appium_start_sync()
    devices_start_sync()


执行结果:

Appium并发测试(6)-同时在2个设备上启动APP_第3张图片

 

你可能感兴趣的:(appium)