Appium+python 多設備自動化測試


1.配置多設備參數:

import multiprocessing
class A(unittest.TestCase):

def android_devices(self, udid, port,systemPort):
capabilities = {
"platformName": "Android",
"udid": udid,
"deviceName": "WCGEL7U899999999",
"appPackage": 'com.xxxxxx.activities',
"systemPort": systemPort,
"appActivity": 'com.xxxxxx.activities.activity.init.InitActivity',
"noReset": True
}
driver = webdriver.Remote("http://127.0.0.1:"+str(port)+"/wd/hub", capabilities)
備注:一定要加udid和systemPort這兩個參數,要不然就算啟動了兩個設備也只有一台設備在跑測試用例。

2.確保當前端口號沒有被占用:
def kill_server(self):
server_list = os.popen('tasklist | find "node.exe"').readlines()
if len(server_list) > 0:
os.system("taskkill -F -PID node.exe")

3.同時啟動多個Appium服務:
def start_appium_server(self, port,devices):
bootstrip = port + 1
os.system("appium -a 127.0.0.1" + " -p " + str(port) + " -bp " + str(bootstrip) + " -U "+str(devices)+" --no-reset")

備注:bootstrip是Appium Server的中間件,bootstrip的端口號是Appium Server的端口號+1


4.導入多進程multiprocessing模塊,通過Process方法同時啟動多台服務並啟動設備:
if __name__ == '__main__':
desired_list = []
devices_list = ["127.0.0.1:62001", "127.0.0.1:62025"]
a= A()
a.kill_server()

for j in range(len(devices_list)):
server_port = 4723 + j * 2
th = multiprocessing.Process(target=a.start_appium_server, args=(server_port, devices_list[j]))
th.start()

for i in range(len(devices_list)):
port = 4723 + i * 2
systemPort = 8200 + i
t = multiprocessing.Process(target=a.android_devices, args=(devices_list[i], port, systemPort))
t.start()



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM