python+appium自動化測試-Appium并發(fā)測試

來自APP Android端自動化測試初學(xué)者的筆記救恨,寫的不對的地方大家多多指教哦

測試環(huán)境

并發(fā)啟動2個appium服務(wù)岩睁,再并發(fā)啟動2臺設(shè)備測試微博APP(V10.12.0)

2個appium服務(wù)吁恍,端口配置如下:

  • Appium服務(wù)器端口:4723,bp端口為4724
  • Appium服務(wù)器端口:4725,bp端口為4726

2臺設(shè)備:

  • U4AIUKFAL7W4MJLR
  • U4AIUKFAL7W4MHUHUDS

測試app:微博APP(V10.12.0)Andriod版

這部分的代碼需要跟前面三篇文章:多設(shè)備啟動蓝纲;python啟動appium服務(wù)抄邀;檢測端口占用和釋放端口整合在一起耘眨,先檢測端口是否占用,再啟動appium服務(wù)境肾,最后分配設(shè)備啟動app剔难。

# Appium并發(fā)測試(多進(jìn)程并發(fā)啟動appium服務(wù),多進(jìn)程并發(fā)啟動設(shè)備奥喻,檢測和釋放端口)
import multiprocessing
import time
from appium import webdriver
from appium_sync.check_port_use import CheckPortUse
from appium_sync.check_port_release import CheckPortRelease
from appium_sync.multi_appium import MultiAppium
from appium_sync.multi_devices import MultiDevices

class AppiumDevices:
    driver: webdriver = None
    devices_list = ['U4AIUKFAL7W4MJLR', 'U4AIUKFAL7W4MHUHUDS']

    """初始化類"""
    def __init__(self):
        self.check_port_use = CheckPortUse()
        self.check_port_release = CheckPortRelease()
        self.multi_appium = MultiAppium()
        self.multi_devices = MultiDevices()

    '''檢測端口是否被占用偶宫,如果沒有被占用則啟動appium服務(wù),被占用則釋放端口'''
    def start_appium_action(self, host, port):
        if self.check_port_use.use_port(host, port):
            time.sleep(0.5)
            self.multi_appium.appium_start(host, port)
            return True
        else:
            self.check_port_release.release_port(port)
            self.start_appium_action(host, port)

    '''先檢測appium服務(wù)端口是否被占用环鲤,占用則啟動APP纯趋,沒有占用則啟動appium服務(wù)'''
    def start_devices_action(self, udid, port):
        host = '127.0.0.1'
        if self.check_port_use.use_port(host, port) is not True:
            self.multi_devices.appium_desire(udid, port)
        else:
            self.multi_appium.appium_start(host, port)

    '''并發(fā)啟動appium服務(wù)'''
    def appium_start_sync(self):
        print('====appium_start_sync=====')
        # 構(gòu)建appium進(jìn)程組
        appium_process = []

        # 加載appium進(jìn)程
        for i in range(len(AppiumDevices.devices_list)):
            host = '127.0.0.1'
            port = 4723 + 2 * i
            appium = multiprocessing.Process(target=self.start_appium_action, args=(host, port))
            appium_process.append(appium)

        # 啟動appium服務(wù)
        for appium in appium_process:
            appium.start()
        for appium in appium_process:
            appium.join()
        time.sleep(5)

    '''并發(fā)啟動設(shè)備'''
    def devices_start_sync(self):
        print('===devices_start_sync===')
        # 定義desired進(jìn)程組
        desired_process = []

        # 加載desired進(jìn)程
        for i in range(len(AppiumDevices.devices_list)):
            port = 4723 + 2 * i
            desired = multiprocessing.Process(target=self.start_devices_action,
                                              args=(AppiumDevices.devices_list[i], port))
            desired_process.append(desired)

        # 并發(fā)啟動App
        for desired in desired_process:
            desired.start()
        for desired in desired_process:
            desired.join()

if __name__ == '__main__':
    appium_devices = AppiumDevices()
    appium_devices.appium_start_sync()
    appium_devices.devices_start_sync()
    appium_devices.check_port_release.release_port('4723')
    appium_devices.check_port_release.release_port('4725')
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市冷离,隨后出現(xiàn)的幾起案子吵冒,更是在濱河造成了極大的恐慌,老刑警劉巖西剥,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痹栖,死亡現(xiàn)場離奇詭異,居然都是意外死亡瞭空,警方通過查閱死者的電腦和手機(jī)结耀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進(jìn)店門留夜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人图甜,你說我怎么就攤上這事碍粥。” “怎么了黑毅?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵嚼摩,是天一觀的道長。 經(jīng)常有香客問我矿瘦,道長枕面,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任缚去,我火速辦了婚禮潮秘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘易结。我一直安慰自己枕荞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布搞动。 她就那樣靜靜地躺著躏精,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鹦肿。 梳的紋絲不亂的頭發(fā)上矗烛,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天,我揣著相機(jī)與錄音箩溃,去河邊找鬼瞭吃。 笑死,一個胖子當(dāng)著我的面吹牛涣旨,可吹牛的內(nèi)容都是我干的虱而。 我是一名探鬼主播,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼开泽,長吁一口氣:“原來是場噩夢啊……” “哼牡拇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起穆律,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤惠呼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后峦耘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體剔蹋,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年辅髓,在試婚紗的時候發(fā)現(xiàn)自己被綠了泣崩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片少梁。...
    茶點(diǎn)故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖矫付,靈堂內(nèi)的尸體忽然破棺而出凯沪,到底是詐尸還是另有隱情,我是刑警寧澤买优,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布妨马,位于F島的核電站,受9級特大地震影響杀赢,放射性物質(zhì)發(fā)生泄漏烘跺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一脂崔、第九天 我趴在偏房一處隱蔽的房頂上張望滤淳。 院中可真熱鬧,春花似錦砌左、人聲如沸脖咐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽文搂。三九已至适刀,卻和暖如春秤朗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背笔喉。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工取视, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人常挚。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓作谭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親奄毡。 傳聞我的和親對象是個殘疾皇子折欠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內(nèi)容