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

首頁 > 編程 > Python > 正文

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

2020-02-15 23:57:27
字體:
來源:轉載
供稿:網友

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

多線程執行測試用例

實例:

import threadingfrom time import sleep,ctimefrom selenium import webdriver#測試用例1def test_baidu(browser,search):  print("開始,現在時間是%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("http://*[@id='kw']").send_keys(search)  driver.find_element_by_id("su").click()  sleep(2)  driver.quit()if __name__ =="__main__":  #定義字典存放test_baidu函數的參數  dicts = {"ff": "python", "chrome": "selenium", "ie": "unittest"}  #創建空列表存放線程  threads =[]  #遍歷字典,并把線程append進threads  for browser,search in dicts.items():    t = threading.Thread(target=test_baidu,args=(browser,search))    threads.append(t)  #把字典內容索引替代  file = range(len(dicts))  #啟動線程  for i in file:    threads[i].start()  #守護線程  for i in file:    threads[i].join()

測試結果:

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

多線程結合分布式執行測試用例

Selenium Girl 只是提供了多操作系統、多瀏覽器的執行環境,但不提供并行執行測試用例,Selenium Girl只能現在一個系統或瀏覽器上執行完測試用例外再從另一個操作系統或瀏覽器上執行測試用例。

啟動Selenium server

在本機啟動一個主hub和一個node節點:本機IP地址(192.168.0.101),節點端口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

測試腳本:

'''在不同主機、不同瀏覽器同時執行測試用例,多線程;利用Selenium Girl提供分布式執行測試用例;先啟動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__':  #啟動參數,指定運行主機和瀏覽器  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' #遠程節點node      }  threads =[]  files = range(len(lists))  #創建線程,并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()            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黔江区| 讷河市| 伊川县| 台东市| 康定县| 彝良县| 图木舒克市| 连江县| 阿合奇县| 广西| 昭苏县| 乐陵市| 广元市| 桃园市| 鹤山市| 哈密市| 乌拉特后旗| 孝昌县| 砚山县| 宁都县| 余江县| 汾阳市| 绥宁县| 天台县| 镇雄县| 四川省| 大理市| 阳原县| 湖口县| 阿鲁科尔沁旗| 秦安县| 陇南市| 泽库县| 博白县| 陆丰市| 二连浩特市| 绥阳县| 北安市| 漳平市| 新津县| 宁远县|