多进程并发启动APP设备
首先需要启动多个appium,同时连接多个模拟器设备: C:\WINDOWS\system32>appium -p 4723 [Appium] Welcome to Appium v1.7.2 [Appium] Appium REST http interface listener started on 0.0.0.0:4723 C:\WINDOWS\system32>appium -p 4725 [Appium] Welcome to Appium v1.7.2 [Appium] Non-default server args: [Appium] port: 4725 [Appium] Appium REST http interface listener started on 0.0.0.0:4725 C:\WINDOWS\system32>adb connect 127.0.0.1:62001 C:\WINDOWS\system32>adb connect 127.0.0.1:62005
kyb_caps.yaml platformName: Android deviceName: 127.0.0.1 #--这个要写成这样,且不能少 platformVersion: 4 appname: **.apk appPackage: com.** appActivity: com.**.biz.splash.SplashScreenActivity noReset: False unicodeKeyboard: True resetKeyboard: True ip: 127.0.0.1
1 多设备启动 2 from appium import webdriver 3 from appium_practices.common.common_func import * 4 import os 5 import logging.config 6 7 filename = os.path.dirname(os.path.dirname(__file__)) 8 log_filename = os.path.join(filename, 'confg', 'log.conf') 9 logging.config.fileConfig(log_filename) 10 logging = logging.getLogger() 11 12 data = get_yaml() 13 14 device_list=['127.0.0.1:62001','127.0.0.1:62025'] 15 16 def appium_desired(udid,port): 17 desired_caps = {} 18 19 desired_caps['platformName'] = data['platformName'] 20 desired_caps['platformVersion'] = data['platformVersion'] 21 desired_caps['deviceName'] = data['deviceName'] 22 desired_caps['udid'] = udid #需要加上这个udid用来定义设备列表 23 filename = os.path.dirname(os.path.dirname(__file__)) 24 app_filename = os.path.join(filename, 'app', data['appname']) 25 desired_caps['app'] = app_filename 26 desired_caps['appPackage'] = data['appPackage'] 27 desired_caps['appActivity'] = data['appActivity'] 28 desired_caps['noReset'] = data['noReset'] 29 desired_caps['unicodeKeyboard'] = data['unicodeKeyboard'] 30 desired_caps['resetKeyboard'] = data['resetKeyboard'] 31 32 logging.info('启动app') 33 driver = webdriver.Remote('http://{}:{}/wd/hub'.format(data['ip'], port), desired_caps) 34 return driver 35 36 if __name__ == '__main__': 37 appium_desired(device_list[0],4723) 38 appium_desired(device_list[1],4725)
1 多进程并发启动设备 2 from appium import webdriver 3 from appium_practices.common.common_func import * 4 import os 5 import logging.config 6 import multiprocessing 7 8 filename = os.path.dirname(os.path.dirname(__file__)) 9 log_filename = os.path.join(filename, 'confg', 'log.conf') 10 logging.config.fileConfig(log_filename) 11 logging = logging.getLogger() 12 13 data = get_yaml() 14 15 device_list=['127.0.0.1:62001','127.0.0.1:62025'] 16 17 def appium_desired(udid,port): 18 desired_caps = {} 19 20 desired_caps['platformName'] = data['platformName'] 21 desired_caps['platformVersion'] = data['platformVersion'] 22 desired_caps['deviceName'] = data['deviceName'] 23 desired_caps['udid'] = udid 24 filename = os.path.dirname(os.path.dirname(__file__)) 25 app_filename = os.path.join(filename, 'app', data['appname']) 26 desired_caps['app'] = app_filename 27 desired_caps['appPackage'] = data['appPackage'] 28 desired_caps['appActivity'] = data['appActivity'] 29 desired_caps['noReset'] = data['noReset'] 30 desired_caps['unicodeKeyboard'] = data['unicodeKeyboard'] 31 desired_caps['resetKeyboard'] = data['resetKeyboard'] 32 33 logging.info('启动app') 34 driver = webdriver.Remote('http://{}:{}/wd/hub'.format(data['ip'], port), desired_caps) 35 36 return driver 37 38 # 构建desired进程租 39 desired_process = [] 40 41 #加载desied进程 42 for i in range(len(device_list)): 43 port=4723+2*i 44 desired=multiprocessing.Process(target=appium_desired,args=(device_list[i],port)) 45 desired_process.append(desired) 46 47 if __name__ == '__main__': 48 # 同时启动多设备执行测试 49 for desir in desired_process: 50 desir.start() 51 for desir in desired_process: 52 desir.join()
posted on 2019-07-15 20:59 cherry_ning 阅读(348) 评论(0) 收藏 举报
浙公网安备 33010602011771号