您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
開源應用架構之​Selenium WebDriver
作者:網(wǎng)絡轉(zhuǎn)載 發(fā)布時間:[ 2013/12/9 14:36:50 ] 推薦標簽:

你無需了解一切細節(jié)​​

很少有開發(fā)人員精通各種語言和技術。因此,我們的架構需要幫助開發(fā)人員把他們的才華用于擅長的地方,而無需處理不適合他們的代碼片段。​

降低巴士因素​

在軟件開發(fā)領域存在一種(非正式的)​概念,稱為“巴士因素”。​它指的是關鍵開發(fā)人員的數(shù)量​,如果這些人遇到不幸——被大巴撞傷而離開項目,那 么項目無法繼續(xù)進行。​像瀏覽器自動化這樣復雜的技術特別能夠證明巴士因素的重要性,因此我們的許多架構決策都希望能夠盡可能提高關鍵開發(fā)人員的數(shù)量。 ​

偏愛Javascript實現(xiàn)​

WebDiver在沒有其他方式控制瀏覽器的情況下會使用純Javascript驅(qū)動瀏覽器。這意味著我們添加的所有API都應該傾向于偏愛 Javascript實現(xiàn)。舉一個具體的例子,HTML5引入了LocalStorage,這是在客戶端存儲結(jié)構化數(shù)據(jù)的API。它通常在瀏覽器中使用 SQLite實現(xiàn)。比較自然的實現(xiàn)方式是使用類似JDBC的技術為底層的數(shù)據(jù)存儲提供數(shù)據(jù)庫連接。終,我們決定采用底層Javascript實現(xiàn)的 API,因為通常數(shù)據(jù)庫訪問API與Javascript實現(xiàn)不太兼容。

所有方法調(diào)用都是RPC調(diào)用​​

WebDriver控制運行在其它進程中的瀏覽器。一個很容易忽視的事實是,這意味著所有API調(diào)用都是RPC調(diào)用,因此框架的性能在于網(wǎng)絡延遲 上。在正常操作中,​這未必明顯——大多數(shù)操作系統(tǒng)優(yōu)化了到本機(localhost)的路由——但是隨著瀏覽器和測試代碼之間的網(wǎng)絡延遲增加,對于 API設計者和使用者來說,原本高效的調(diào)用會惡化。​

​這種情況給API的設計帶來了一定壓力。功能粗糙的較大規(guī)模的API可能會通過合并多個調(diào)用幫助減低延遲,但是這需要掌握平衡,時刻保持API的 可讀性和易用性。例如,有時候需要檢測某個元素是不是對終用戶可見。我們不僅需要考慮各種CSS屬性(可能需要通過查看父元素來推斷),也應該檢查元素 的尺寸。低限度情況下,API應該分別執(zhí)行​所有這些檢測。WebDriver把這些功能都合并到一個方法isDisplayed中。​

這是開源項目​​

雖然嚴格意義上說,這不是一種架構觀點,但還是要強調(diào)Selenium是一個開源項目。上面提到的所有觀點聯(lián)系在一起,表達的意思是:​我們希望盡 可能的幫助新的開發(fā)人員易于參與項目。降低參與門檻的措施包括盡可能使所需知識淺顯、使用的語言種類較少、依賴自動化測試驗證。

初該項目被劃分成一系列模塊,每一個模塊​代表了一種特定的瀏覽器,其他的模塊是通用代碼和支持代碼。每一個綁定的代碼樹保存在這些模塊下面。這 種方法對于類似Java和C#​的語言來說非常有用,但是對于Ruby和Python的開發(fā)人員來說很痛苦。這種情況直接導致了有限的參與者,只有一小部 分人參與Python和Ruby的綁定工作。為了解決這個問題,在2010年的十月和十一月,項目源代碼被重新組織,Ruby和Python代碼存放在每 種語言的獨立文件夾中。這種方式符合開源開發(fā)人員的期望,立刻吸引了社區(qū)的廣泛參與。​

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd