国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python多線程應用于自動化測試操作示例

2020-01-04 13:55:00
字體:
供稿:網(wǎng)友

本文實例講述了Python多線程應用于自動化測試操作。分享給大家供大家參考,具體如下:

多線程執(zhí)行測試用例

實例:

import threadingfrom time import sleep,ctimefrom selenium import webdriver#測試用例1def test_baidu(browser,search):  print("開始,現(xiàn)在時間是%s"%ctime())  print("瀏覽器是%s"%browser)  if browser =="ff":    driver = webdriver.Firefox()  elif browser =="chrome":    driver = webdriver.Chrome()  elif browser =="ie":    driver =webdriver.Ie()  else:    print("瀏覽器輸入錯誤!")  driver.get(r"http://www.baidu.com")  driver.implicitly_wait(5)  driver.find_element_by_xpath("//*[@id='kw']").send_keys(search)  driver.find_element_by_id("su").click()  sleep(2)  driver.quit()if __name__ =="__main__":  #定義字典存放test_baidu函數(shù)的參數(shù)  dicts = {"ff": "python", "chrome": "selenium", "ie": "unittest"}  #創(chuàng)建空列表存放線程  threads =[]  #遍歷字典,并把線程append進threads  for browser,search in dicts.items():    t = threading.Thread(target=test_baidu,args=(browser,search))    threads.append(t)  #把字典內(nèi)容索引替代  file = range(len(dicts))  #啟動線程  for i in file:    threads[i].start()  #守護線程  for i in file:    threads[i].join()

測試結(jié)果:

Python,多線程,自動化測試

由測試結(jié)果得到:多線程同時開始執(zhí)行測試用例,大大縮小測試總時間。

多線程結(jié)合分布式執(zhí)行測試用例

Selenium Girl 只是提供了多操作系統(tǒng)、多瀏覽器的執(zhí)行環(huán)境,但不提供并行執(zhí)行測試用例,Selenium Girl只能現(xiàn)在一個系統(tǒng)或瀏覽器上執(zhí)行完測試用例外再從另一個操作系統(tǒng)或瀏覽器上執(zhí)行測試用例。

啟動Selenium server

在本機啟動一個主hub和一個node節(jié)點:本機IP地址(192.168.0.101),節(jié)點端口4444/5555

java -jar selenium-server-standalone-2.48.0.jar -role hubjava -jar selenium-server-standalone-2.48.0.jar -role node -port 5555

啟動一個遠程node:p(192.168.0.102)在虛擬機里面:端口是6666

java -jar selenium-server-standalone-2.48.0.jar -role node -port 6666 -hub http://192.168.0.101:4444/gird/register

測試腳本

'''在不同主機、不同瀏覽器同時執(zhí)行測試用例,多線程;利用Selenium Girl提供分布式執(zhí)行測試用例;先啟動Selenium server,這里分別在本地主機啟動一個hub和一個node,在其他主機(虛擬機)啟動一個node。'''from selenium.webdriver import Remoteimport threadingfrom time import *#測試用例def test_baidu(host,browser):  print("開始:%s"%ctime())  print(host,browser)  dc ={'browserName':browser}  driver = Remote(          command_executor=host,          desired_capabilities=dc  )  driver.get(r'http://www.baidu.com')  driver.implicitly_wait(10)  driver.find_element_by_link_text("新聞").click()  sleep(2)  driver.get_screenshot_as_file(r'D:/testscreen/baidu.jpg')  driver.quit()if __name__ =='__main__':  #啟動參數(shù),指定運行主機和瀏覽器  lists={'http://127.0.0.1:4444/wd/hub':'chrome',      'http://127.0.0.1:5555/wd/hub':'internet explorer',      'http://192.168.216.128:6666/wd/hub':'firefox' #遠程節(jié)點node      }  threads =[]  files = range(len(lists))  #創(chuàng)建線程,并append進線程組  for host,browser in lists.items():    t = threading.Thread(target=test_baidu,args=(host,browser))    threads.append(t)  #啟動每一個線程  for i in files:    threads[i].start()  #守護每一個線程  for i in files:    threads[i].join()

運行結(jié)果:

Python,多線程,自動化測試

 

希望本文所述對大家Python程序設計有所幫助。


注:相關(guān)教程知識閱讀請移步到python教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 读书| 古浪县| 山东省| 贵州省| 南开区| 西藏| 平江县| 延吉市| 湾仔区| 屏东县| 贵溪市| 辽源市| 扬州市| 武威市| 广东省| 姜堰市| 广安市| 扬中市| 金湖县| 台江县| 蒙阴县| 双柏县| 花莲县| 泗水县| 通许县| 南充市| 建始县| 祁门县| 蛟河市| 皋兰县| 赣州市| 陕西省| 电白县| 安吉县| 永丰县| 比如县| 桃江县| 喀喇沁旗| 临湘市| 永顺县| 舒城县|