Selenium 歷史
故事開始於 2004 年
故事開始於 2004 年,當時 ThoughtWorks 的 Jason Huggins 在芝加哥建立核心模式,作為「JavaScriptTestRunner」,用於測試內部時間和費用應用程式(Python、Plone)。自動測試任何應用程式是 ThoughtWork 風格的核心,考量到這家顧問公司的敏捷精實傾向。他獲得 Paul Gross 和 Jie Tina Wang 的協助。對他們來說,這是一份日薪工作。
Jason 開始向各個同事展示測試工具。許多人對其立即且直覺的視覺回饋感到興奮,以及其作為其他網路應用程式的可重複使用測試架構的成長潛力。
2004 年不久後,ThoughtWorker 的同事保羅·哈曼特看到了這個示範,並開始討論 Selenium 的開源,以及定義 Selenium 的「驅動」模式,在這個模式中,你可以透過你選擇的語言,透過網路使用 Selenium,這將會繞過「同源政策」。其他(當時的)同事 Aslak Hellesoy 和 Mike Melia 嘗試了「伺服器」部分的不同想法,包括重新編寫頁面以繞過同源政策。保羅用 Java 編寫了原始的伺服器部分,而 Aslak 和 Obie Fernandez 將客戶端驅動程式移植到 Ruby,為更多語言的驅動程式奠定了基礎。
世界各地各個辦公室的 ThoughtWorkers 採用了 Selenium 來進行商業專案,並根據這些專案中學到的經驗,回饋給 Selenium。Mike Williams、Darrell Deboer 和 Darren Cotterill 都協助提升了 Selenium 的能力和穩健性。
同時,在 ThoughtWorks 之外...
在 Bea,丹·法布利奇和尼爾森·斯普勞爾得出結論,驅動程式/伺服器到瀏覽器的架構並非最有用或最靈活的,因此分叉了驅動程式編碼器,並將其製作成一個獨立的伺服器,利用並捆綁了 MortBay 的 Jetty 作為網路代理。當程式碼合併回來時,它就被稱為「Selenium Remote Control」,而舊的驅動程式碼行和功能則被淘汰。
帕特·萊特巴迪同時參與了這個專案,他有一個商業構想,需要他辭去他的日常工作(Jive Software)。這個構想是「託管 QA」,最後移入了 Gomez 的服務線。帕特與丹和尼爾森合作,讓 Selenium RC 穩定到可以大規模部署。帕特私下為託管 QA 編寫了一個網格,用來擷取瀏覽器在各種狀態下的螢幕截圖,並同時照顧多個客戶。傑森一年前也有相同的託管 QA 構想,但沒有辭去他的日常工作來執行。
2007 年,丹搬到了快速成長的 Redfin,Redfin 也兼職贊助他在 Selenium 上的時間,並鼓勵他安排演講。
Selenium IDE:日本製造
日本的 Shinya Kasatani 對 Selenium 產生興趣,並意識到他可以將核心程式碼包裝成 Firefox 瀏覽器的 IDE 模組,並能夠在同一個外掛程式中記錄測試以及播放測試。這個工具以許多原本未曾想到的方式開啟了視野,因為它不受同源政策的約束。
Mike Williams 在 2006 年夏季再次參與,他領導了 ThoughtWorks 中國團隊,主要成員包括王鵬超、黃亮和熊傑,並在其他人的協助下,他們致力於改善 Selenium Core,目標是讓它更接近 1.0 版。
還有 Google!
Jason Huggins 在 2007 年離開 Thoughtworks,加入 Google 內部(當時保密的)Selenium 支援團隊。
Jennifer Bevan(和其他未具名的 Google 員工)為 Selenium RC 編寫了自己的網格功能,並在內部部署它來測試多個公開的網路應用程式。Google 在紐約舉辦了 GTAC 會議,並首次討論他們使用 Selenium 的情況。Jennifer 不久後成為 Selenium 專案的提交者。
芝加哥的 Haw-bin Chai 提供了 XPath 功能的修補程式,並開發了一個稱為「UI Element」的擴充功能,讓定位器的語法更簡單。他在 2007 年受邀加入 Selenium 開發團隊。
ThoughtWorks 的 Simon Stewart 一直在開發另一種稱為 WebDriver 的網路測試工具。它不依賴 JavaScript 來執行繁重的工作,而是為每個瀏覽器建立一個從頭編寫的客戶端。它還有一個比 Selenium-RC「更高級」的 API,並顯示出很大的前景。Simon 在 GTAC 上展示了這個工具,並開始與 Selenium-RC 相容性的工作,這導致了一個顯而易見的結論:這兩個專案應該合併。Simon 從 2007 年到 2012 年在 Google 任職,現在在 Facebook 任職,他花了一些時間讓這個想法成真。