詳解Python多線程Selenium跨瀏覽器測試
前言
在web測試中,不可避免的一個測試就是瀏覽器兼容性測試,在沒有自動化測試前,我們總是苦逼的在一臺或多臺機器上安裝N種瀏覽器,然后手工在不同的瀏覽器上驗證主業(yè)務(wù)流程和關(guān)鍵功能模塊功能,以檢測不同瀏覽器或不同版本瀏覽器上,我們的web應(yīng)用是否可以正常工作。

下面我們看看怎么利用python selenium進行自動化的跨瀏覽器測試。
什么是跨瀏覽器測試
跨瀏覽器測試是功能測試的一個分支,用以驗證web應(yīng)用能在不同的瀏覽器上正常工作。
為什么需要跨瀏覽器測試
通常情況下,我們都期望web類應(yīng)用能夠被我們的用戶在任何瀏覽器上使用。例如,有的人喜歡用IE來打開開源優(yōu)測web站點http://www.testingunion.com,但有的人喜歡firefox或chrome。
我們期望我們的web系統(tǒng)能在任何瀏覽器上正常的工作,這樣能吸引更多的用戶來使用。
需要跨瀏覽器測試的根源是:
在不同瀏覽器字體大小不匹配
- javascrpit的實現(xiàn)不一樣
- css、html的驗證有所區(qū)別
- 有的瀏覽器或低版本不支持HTML5
- 頁面對齊和div大小問題
- 圖片位置或大小問題
- 瀏覽器和操作系統(tǒng)間的兼容問題
以上幾個方面不僅僅對布局有影響,甚至?xí)?dǎo)致功能不可用,所以我們需要進行跨瀏覽器測試。
如何執(zhí)行跨瀏覽器測試
如果我們使用selenium webdriver,那我們就能夠自動的在IE、firefox、chrome、等不同瀏覽器上運行測試用例。
為了能在同一臺機器上不同瀏覽器上同時執(zhí)行測試用例,我們需要多線程技術(shù)。
下面我們基于python的多線程技術(shù)來嘗試同時啟動多個瀏覽器進行selenium自動化測試。
#-*- coding:utf-8 -*-
__author__ = u'苦葉子'
from selenium import webdriver
import sys
from time import sleep
from threading import Thread
reload(sys)
sys.setdefaultencoding("utf-8")
def test_baidu_search(browser, url):
driver = None
# 你可以自定義這里,添加更多瀏覽器支持進來
if browser == "ie":
driver = webdriver.Ie()
elif browser == "firefox":
driver = webdriver.Firefox()
elif browser == "chrome":
driver = webdriver.Chrome()
if driver == None:
exit()
print u"開始[case_0001]百度搜索"
driver.get(url)
print u"清除搜索中數(shù)據(jù),輸入搜索關(guān)鍵詞"
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys(u"開源優(yōu)測")
print u"單擊 百度一下 按鈕 開始搜索"
driver.find_element_by_id("su").click()
sleep(3)
print u"關(guān)閉瀏覽器,退出webdriver"
driver.quit()
if __name__ == "__main__":
# 瀏覽器和首頁url
data = {
"ie":"http://www.baidu.com",
"firefox":"http://www.baidu.com",
"chrome":"http://www.baidu.com"
}
# 構(gòu)建線程
threads = []
for b, url in data.items():
t = Thread(target=test_baidu_search,args=(b,url))
threads.append(t)
# 啟動所有線程
for thr in threads:
thr.start()
運行上述代碼,你會發(fā)現(xiàn)三個瀏覽器都會啟動開始進行百度搜索,是不是很有意思?當(dāng)然上面只是簡單的演示,更多更實用的能力有待挖掘。
總結(jié)
本文初始演示了利用python多線程技術(shù)來啟動多個瀏覽器同時進行selenium自動化測試,通過這個示例你應(yīng)該要去學(xué)習(xí)更深入的知識,和深入結(jié)合實際業(yè)務(wù)測試梳理出更合適的自動化測試業(yè)務(wù)場景。
至于如何更深入的利用selenium把兼容性測試做好,還有待深入研究挖掘,真正的把selenium的特性用好。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python中的selenium安裝的步驟(瀏覽器自動化測試框架)
- selenium+python自動化測試之使用webdriver操作瀏覽器的方法
- python selenium 對瀏覽器標(biāo)簽頁進行關(guān)閉和切換的方法
- Python+selenium 獲取瀏覽器窗口坐標(biāo)、句柄的方法
- 淺談python爬蟲使用Selenium模擬瀏覽器行為
- python用selenium打開瀏覽器后秒關(guān)閉瀏覽器的解決辦法
- python用selenium打開chrome瀏覽器保持登錄方式
- Python+Selenium實現(xiàn)瀏覽器標(biāo)簽頁的切換
- 如何在Python中引入和使用瀏覽器驅(qū)動
相關(guān)文章
Python?PyJWT庫簡化JSON?Web?Token的生成與驗證
PyJWT庫為Python開發(fā)者提供了簡便的生成和驗證JWT的工具,本文將深入介紹PyJWT庫的核心概念、功能以及實際應(yīng)用,通過豐富的示例代碼,幫助大家更全面地了解和應(yīng)用這一強大的JWT庫2023-12-12
Python基于paramunittest模塊實現(xiàn)excl參數(shù)化
這篇文章主要介紹了Python基于paramunittest模塊實現(xiàn)excl參數(shù)化,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04
python統(tǒng)計函數(shù)庫scipy.stats的用法解析
今天小編就為大家分享一篇python統(tǒng)計函數(shù)庫scipy.stats的用法解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
Django使用paginator插件實現(xiàn)翻頁功能的實例
今天小編就為大家分享一篇關(guān)于Django使用paginator插件實現(xiàn)翻頁功能的實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10
Python3 使用map()批量的轉(zhuǎn)換數(shù)據(jù)類型,如str轉(zhuǎn)float的實現(xiàn)
今天小編就為大家分享一篇Python3 使用map()批量的轉(zhuǎn)換數(shù)據(jù)類型,如str轉(zhuǎn)float的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
Python中獲取當(dāng)前線程名字的方法及多線程編程實踐記錄
本文介紹了在Python中獲取當(dāng)前線程的名字的方法,并探討了其在多線程編程中的重要性和實際應(yīng)用,通過兩個實際的代碼示例,展示了如何利用多線程來并行計算斐波那契數(shù)列和下載文件,以提高程序的性能和效率,感興趣的朋友一起看看吧2024-04-04
Python中functools模塊的常用函數(shù)解析
這篇文章主要介紹了Python中functools模塊的常用函數(shù)解析,分別講解了partial、update_wrapper、wraps、total_ordering的用法,需要的朋友可以參考下2016-06-06
PyTorch實現(xiàn)更新部分網(wǎng)絡(luò),其他不更新
今天小編就為大家分享一篇PyTorch實現(xiàn)更新部分網(wǎng)絡(luò),其他不更新,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12

