appium---多進程啓動app(多設備啓動app)

  上一篇簡單的介紹瞭如何經過多線程進行啓動app,可是後面發現了一個問題,就是app操做必需要等到一臺結束後,下一臺才能進行任務,那麼有沒有辦法讓他們同時運行呢?這個時候咱們能夠了解下多進程。跳轉門:appium---多線程啓動app(多臺設備啓動app)html

進程和線程的區別

線程:計算機的執行單位以線程爲單位。計算機的最小可執行是線程。。線程是可執行的基本單位,是可被調度的基本單位。線程不能夠本身獨立擁有資源。線程的執行,必須依賴於所屬進程中的資源。。android

進程:進程是資源分配的基本單位,進程中必須至少應該有一個線程web

多進程啓動app

繼續上一篇文章的內容,多進程啓動app,在之前的代碼基礎上進行修改線程部分多線程

經過把啓動appium的方法經過多進程的方法進行啓動。app

def main(self):
        '''多進程啓動'''
        multi_list = []
        for i in range(2):
            appium_server = multiprocessing.Process(target=self.get_commad)
            multi_list.append(appium_server)
        for j in multi_list:
            j.start()
        for j in multi_list:
            j.join()

測試用例

上面經過多進程的方法進行了實現了同事啓動appium,可是若是想要繼續啓動webdriver服務,這裏安靜選擇了多線程啓動。post

# coding:utf-8
from pages.login_page import LoginPage
import time
import os
import threading
import multiprocessing
from common.aa import Server
path  =os.path.dirname(os.getcwd())
# 獲取到yaml文件路徑
yaml_path = os.path.join(os.path.join(path,'config'),'element.yaml')
class BaseDriver:
    def login(self,driver):
        page =LoginPage(driver)
        time.sleep(8)
        # 獲取用戶名元素以及輸入內容
        use = page.get_username_element(yaml_path)
        use.send_keys('1111')
        # 獲取密碼元素以及輸入內容
        pas = page.get_password_element(yaml_path)
        pas.send_keys('22222')
        # 進行點擊登陸
        button = page.get_login_button_element(yaml_path)
        button.click()

if __name__ == '__main__':
    x = BaseDriver()
    server = Server()
    dev = Server().get_driver()
    t1 = threading.Thread(target=server.main)
    t1.start()
    time.sleep(10)
    aa = []
    for i in dev:
        devices = server.android_start(i)
        t2 = threading.Thread(target=x.login,args=(devices,))
        aa.append(t2)
    for j in aa:
        j.start()

這裏有安靜執行的結果,動圖有點長。學習

 

 

安靜可能對線程和進程不是很懂的理解,而後寫出來這麼low的代碼,但願有哪位大神看到了,多多指點,共同窗習~測試

相關文章
相關標籤/搜索