[跟著官方文檔學Selenium][學習筆記][一][Selenium介紹]
前言
Selenium是支持Web瀏覽器自動化的一系列工具和庫的綜合項目,是當今軟件測試中必須掌握的技能之一。
Selenium的歷史
The story starts in 2004
在2004年芝加哥的ThoughtWorks公司,Jason Huggins構建了一個核心模式名為"JavaScriptTestRunner",用來測試internal Time和Expense application(Python, Plone)。考慮到該咨詢公司的敏捷傾向,任何應用程序的自動測試都是ThoughtWork風格的核心。他從Paul Gross和Jie Tina Wang得到了幫助,對他們來說,這是一份日常工作。
Jason開始向不同的同事演示測試工具。許多人對其即時直觀的視覺反饋以及作為其他web應用程序的可重用測試框架的發(fā)展?jié)摿Ω械脚d奮。
2004年,Paul Hammant看到這個演示后開始討論Selenium的開源,以及定義一種"驅(qū)動"模式,在這種模式下,你可以通過自己選擇的語言使用Selenium,這將繞過同源政策。其他(當時)同事Aslak Hellesoy和Mike Melia對"服務器"部分嘗試了不同想法,包括重寫頁面及繞過同源策略。Paul用Java寫了原始服務器,Aslak和Obie Fernandez將客戶端驅(qū)動程序移植到Ruby,為更多語言的驅(qū)動程序提供了基礎。
ThoughtWorker在世界各地不同辦公室的人為商業(yè)項目學習Selenium,并從這些項目中吸取經(jīng)驗教訓中為Selenium做出了貢獻。Mike Williams,Darrell Deboer和Darren Cotterill都幫助提高了Selenium的能力和健壯性。
Meanwhile, outside of ThoughtWorks
在Bea,Dan Fabulich和Nelson Sproul得出的結(jié)論是,驅(qū)動程序/服務器到瀏覽器的體系結(jié)構不是最有用或最靈活的,因此將驅(qū)動程序編碼器分叉,并將其制作成一個獨立的服務器,利用并捆綁MortBay的Jetty作為web代理。當代碼被合并回來時,它被稱為“Selenium Remote Control”,舊的驅(qū)動代碼線和功能被廢棄。
Pat Lightbody同時參與了一項商業(yè)計劃,這要求他辭去日常的工作(Jive)。這個想法就是"Hosted QA",最終被轉(zhuǎn)移到Gomez的服務線線。Pat和Dan與Nelson合作,使SeleniumRC能夠在大規(guī)模部署中保持穩(wěn)定。Pat曾私底下為Hosted QA編寫了一個grid,拍攝了各州瀏覽器的截圖,并同時照顧多個用戶。Jason一年前也有同樣想法,但他沒有辭去日常工作去做。
在2007年,Dan搬到了快速發(fā)展的Redfin,并成為Selenium的贊助商。
Selenium IDE: Made in Japan
在日本的Shinya Kasatani對Selenium產(chǎn)生了興趣,并意識到他可以將核心代碼封裝到Firefox的IDE模塊中,并能夠在同一個插件中記錄測試和回放測試。這工具在多方面都令人大開眼界,因為它不受同源政策的約束。
2006年的夏天,Mikes Williams再次參與到項目中,他領導了一個ThoughWorks的中國團隊,主要是Wang Peng Chao,Huang Liang和Xiong Jie,但也得到了其他人的幫助。他們致力于改進Selenium Core,目標是使其更接近1.0版本。
Google Too!
Jason Huggins在2007年離開了ThoughtWorks并加入了(當時是秘密的)谷歌的Selenium支持團隊。
Jennifer Bevan(和其他未具名的谷歌用戶)為Selenium RC編寫了自己的Grid功能,并在內(nèi)部部署該功能,用于測試多個公共web應用程序。谷歌在紐約主辦了一個GTAC會議,并首次討論了他們對Selenium的使用。詹妮弗很快成為Selenium項目的提交人。
芝加哥的Haw-bin Chai為XPath功能提供了補丁,并開發(fā)了一個名為"UI元素"的拓展,使Locators的語法更加簡單。2007年,他受邀加入Selenium開發(fā)團隊。
ThoughtWorks的Simon Stewart一直在開發(fā)另一種名為WebDriver的網(wǎng)絡測試工具。它不需要依賴JavaScript來完成繁重的工作,而是為每個瀏覽器提供了一個從頭開始編寫的客戶端。它還有一個比"Selenium-RC"更改級別的API并展示了很多前景。Simon在GTAC上展示了該工具,并開始研究與Selenium RC的兼容性,這得出一個明顯的結(jié)論-這兩個項目即將合并。Simon從2007年到2012年在谷歌工作,現(xiàn)在在Facebook工作。
Selenium的生態(tài)
Selenium支持的瀏覽器驅(qū)動
Mozilla GeckoDriver
Microsoft EdgeDriver
Google ChromeDriver
Opera ChromiumDriver
Apple SafariDriver\
語言綁定
框架
編程語言通過Selenium驅(qū)動程序支持。這些庫是用各種語言編寫的,命令是來自于Selenium的原生API的方法/函數(shù)。
Selenium經(jīng)常被用于自動化測試Web應用,但它并不包括測試框架。下面列出了一些可以使用Selenium測試的測試框架。
Selenium三大件
Selenium WebDriver
如果你想創(chuàng)建強大的,基于瀏覽器的回歸自動化套件和測試,在許多不同環(huán)境中拓展和分發(fā)腳本,那么你就需要Selenium WebDriver。
Selenium IDE
如果要創(chuàng)建快速錯誤再現(xiàn)腳本,請創(chuàng)建腳本以幫助進行自動化輔助的探索性測試,那么您需要使用Selenium IDE
Selenium Grid
如果您想通過在多臺計算機上分發(fā)和運行測試來擴展,并從一個中心點管理多個環(huán)境,從而可以輕松地針對各種瀏覽器/ OS組合運行測試,那么您需要使用Selenium Grid。
Selenium web前端
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。